ابزارگذاری خودکار Python FastAPI و مانیتورینگ با Azure Application Insights — خیلی راحت!


۰


از پس‌زمینه‌ی سی‌شارپ (C#) می‌آیم و وقتی می‌خواستم اپلیکیشن FastAPI با پایتونم را با Azure Application Insights مانیتور کنم، کار واقعاً «نابخردانه سخت» بود. دلیل اصلی هم نبود پشتیبانی مستقیم در Azure و نبود مستندات مناسب برای انجام این کار به صورت دستی بود.

در C# شما می‌توانید بدون نوشتن حتی یک خط کد، اپلیکیشن خود را به‌صورت خودکار روی App Insights ایسترومنت کنید. اما برای پایتون گزینه مشابهی وجود ندارد.

با این حال می‌توانید یک شروع خوب برای ایسترومنت خودکار اپ پایتونیتان داشته باشید با استفاده از OpenTelemetry، چند خط کد ساده و چند متغیر محیطی. اینجوری…


بسته‌های مورد نیاز

1opentelemetry-api >= 1.10.0  
2opentelemetry-sdk >= 1.10.0  
3azure-monitor-opentelemetry >= 1.1.1

کد نمونه

1from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor  
2from azure.monitor.opentelemetry import configure_azure_monitor  
3from opentelemetry import trace  
4from opentelemetry.trace import get_tracer_provider  
5from opentelemetry.propagate import extract  
6from logging import getLogger, INFO  
7import os
8from fastapi import FastAPI
9
10if os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"):  
11    configure_azure_monitor()
12
13tracer = trace.get_tracer(__name__, tracer_provider=get_tracer_provider())
14
15logger = getLogger(__name__)
16
17app = FastAPI()
18
19FastAPIInstrumentor.instrument_app(app)

متغیرهای محیطی مورد نیاز

1APPLICATIONINSIGHTS_CONNECTION_STRING="---your connection string---"
2OTEL_EXPERIMENTAL_RESOURCE_DETECTORS="azure_app_service"

من یک راه‌حل کامل و عملی روی اینترنت یا حتی ChatGPT پیدا نکردم که کاملاً کار کند. پس امیدوارم این راهنمایی به دردتون بخوره. اعتبارش بیشتر به خاطر این مقاله هست که برای من دقیقاً کار نکرد اما خیلی از کدها را از اون گرفتم.


ضمناً، این هم یه عکس سهامیه از یه سگ که کنار کروسانته!


خودِ کد بسیار خلاصه و ساده‌س و بهتون این امکان را می‌دهد که FastAPI را با Azure Application Insights به‌صورت خودکار ایسترومنت کنید. با اضافه کردن فقط چند خط کد و تنظیم متغیرهای محیطی، می‌توانید مانیتورینگ و تله‌متری برنامه‌تان را به راحتی فراهم کنید.
لذت ببرید!

fastapi
پایتون
opentelemetry
azure-application-insight
نظارت

۰


نظرات


author
نویسنده مقاله: حمید فیض آبادی

کد با می متعهد است که بالاترین سطح کیفی آموزش را در اختیار شما بگذارد. هدف به اشتراک گذاشتن دانش فناوری اطلاعات و توسعه نرم افزار در بالاترین سطح ممکن برای درستیابی به جامعه ای توانمند و قدرتمند است. ما باور داریم هر کسی میتواند با استمرار در یادگیری برنامه نویسی چالش های خود و جهان پیرامون خود را بر طرف کند و به موفقیت های چشم گیر برسد. با ما در این مسیر همراه باشید. کد با می اجتماع حرفه ای برنامه نویسان ایرانی.

تمام حقوق این سایت متعلق به وبسایتcodebymeمیباشد.