إعداد Azure Monitor لتطبيق Python الخاص بك
تنبيه
تم إيقاف OpenCensus Python SDK. نوصي بعرض Python المستند إلى OpenTelemetry وتوفير إرشادات الترحيل.
يدعم Azure Monitor التتبع الموزع، وجمع المقاييس، وتسجيل تطبيقات Python.
الحل المدعوم من Microsoft لتعقب البيانات وتصديرها لتطبيقات Python الخاصة بك هو من خلال OpenCensus Python SDK عبر مصدري Azure Monitor.
لا توصي Microsoft باستخدام أي حزم SDK أخرى لبيانات تتبع الاستخدام ل Python كحل لبيانات تتبع الاستخدام لأنها غير مدعومة.
يتقارب OpenCensus في OpenTelemetry. نستمر في التوصية ب OpenCensus بينما ينضج OpenTelemetry تدريجيا.
المتطلبات الأساسية
تحتاج إلى شتراك Azure. في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
إشعار
في 31 مارس 2025، سينتهي دعم إدخال مفاتيح الأجهزة. سيستمر استيعاب مفتاح الأجهزة في العمل ولكننا لن نقوم بتوفير تحديثات أو أي دعم للميزة. الانتقال إلى سلاسل الاتصال للاستفادة من الإمكانات الجديدة.
تقديم OpenCensus Python SDK
OpenCensus هي مجموعة من المكتبات مفتوحة المصدر للسماح بجمع التتبع الموزع والمقاييس وبيانات تتبع الاستخدام للتسجيل. باستخدام مصدري Azure Monitor، يمكنك إرسال بيانات تتبع الاستخدام المجمعة هذه إلى Application Insights. ترشدك هذه المقالة خلال عملية إعداد مصدري OpenCensus وAzure Monitor ل Python لإرسال بيانات المراقبة إلى Azure Monitor.
أداة مع OpenCensus Python SDK مع مصدّري Azure Monitor
تثبيت مصدّري OpenCensus Azure Monitor:
python -m pip install opencensus-ext-azure
تستخدم SDK ثلاثة من مصدري Azure Monitor لإرسال أنواع مختلفة من بيانات تتبع الاستخدام إلى Azure Monitor. إنها trace
و metrics
و.logs
لمزيد من المعلومات حول أنواع بيانات تتبع الاستخدام هذه، راجع نظرة عامة على النظام الأساسي للبيانات. استخدم التعليمات التالية لإرسال بيانات تتبع الاستخدام هذه عبر المصدرين الثلاثة.
تعيينات نوع بيانات تتبع الاستخدام
يقوم OpenCensus بتعيين المصدرين التاليين إلى أنواع بيانات تتبع الاستخدام التي تراها في Azure Monitor.
ركيزة الملاحظة | نوع بيانات تتبع الاستخدام في Azure Monitor | الشرح |
---|---|---|
السجلات | التتبعات، والاستثناءات، والأحداث المخصصة | سجل القياس عن بعد والاستثناءات والقياس عن بعد للأحداث |
المقاييس | customMetrics، performanceCounters | عدادات أداء المقاييس المخصصة |
التعقب | تبعيات الطلبات | الطلبات الواردة، والطلبات الصادرة |
السجلات
أولًا، دعونا ننشئ بعض بيانات السجل المحلي.
import logging logger = logging.getLogger(__name__) def main(): """Generate random log data.""" for num in range(5): logger.warning(f"Log Entry - {num}") if __name__ == "__main__": main()
يتم إصدار إدخال سجل لكل رقم في النطاق.
Log Entry - 0 Log Entry - 1 Log Entry - 2 Log Entry - 3 Log Entry - 4
نريد أن نرى بيانات السجل هذه إلى Azure Monitor. يمكنك تحديده في متغير بيئة،
APPLICATIONINSIGHTS_CONNECTION_STRING
. يمكنك أيضا تمرير connection_string مباشرة إلىAzureLogHandler
، ولكن لا ينبغي إضافة سلسلة الاتصال إلى التحكم بالإصدار.APPLICATIONINSIGHTS_CONNECTION_STRING=<appinsights-connection-string>
نوصي باستخدام سلسلة الاتصال لإنشاء مثيل للمصدرين الذين يتم استخدامهم لإرسال بيانات تتبع الاستخدام إلى Application Insights. تعديل تعليمتك البرمجية من الخطوة السابقة استنادًا إلى نموذج التعليمات البرمجية التالية:
import logging from opencensus.ext.azure.log_exporter import AzureLogHandler logger = logging.getLogger(__name__) logger.addHandler(AzureLogHandler()) # Alternatively manually pass in the connection_string # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>)) """Generate random log data.""" for num in range(5): logger.warning(f"Log Entry - {num}")
يرسل المصدّر بيانات السجل إلى مراقب Azure. يمكنك العثور على البيانات ضمن
traces
.في هذا السياق،
traces
ليست هي نفسهاtracing
. هنا،traces
يشير إلى نوع بيانات تتبع الاستخدام التي تراها في Azure Monitor عند استخدامAzureLogHandler
. ولكنtracing
يشير إلى مفهوم في OpenCensus ويتعلق بـالتتبع الموزع.إشعار
تم تكوين مسجل الجذر بمستوى
warning
. وهذا يعني أنه يتم تجاهل أي سجلات ترسلها تكون أقل خطورة، وفي المقابل، لن يتم إرسالها إلى Azure Monitor. لمزيد من المعلومات، راجع وثائق التسجيل.يمكنك أيضا إضافة خصائص مخصصة إلى رسائل السجل في وسيطة
extra
الكلمة الأساسية باستخدامcustom_dimensions
الحقل . تظهر هذه الخصائص كأزواج قيم رئيسية فيcustomDimensions
Azure Monitor.إشعار
لكي تعمل هذه الميزة، تحتاج إلى تمرير قاموس إلى
custom_dimensions
الحقل. يتجاهل المسجل أي وسيطات من أي نوع آخر.import logging from opencensus.ext.azure.log_exporter import AzureLogHandler logger = logging.getLogger(__name__) logger.addHandler(AzureLogHandler()) # Alternatively manually pass in the connection_string # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>)) properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}} # Use properties in logging statements logger.warning('action', extra=properties)
إشعار
كجزء من استخدام تقرير عن حالة النظام لدى Application Insights، نقوم بجمع بيانات التشخيص وإرسالها إلى Microsoft. تساعدنا هذه البيانات على تشغيل وتحسين تطبيق رؤى. لديك الخيار لتعطيل مجموعة البيانات غير الضرورية. لمعرفة المزيد، راجع Statsbeat في Application Insights.
تكوين التسجيل لتطبيقات Django
يمكنك تكوين التسجيل بشكل صريح في التعليمات البرمجية للتطبيق الخاص بك مثل السابق لتطبيقات Django الخاصة بك، أو يمكنك تحديده في تكوين تسجيل Django. يمكن لهذه التعليمة البرمجية الانتقال إلى أي ملف تستخدمه لتكوين إعدادات موقع Django، عادة settings.py
.
للحصول على معلومات حول كيفية تكوين إعدادات Django، راجع إعدادات Django. لمزيد من المعلومات حول كيفية تكوين التسجيل، راجع تسجيل Django.
LOGGING = {
"handlers": {
"azure": {
"level": "DEBUG",
"class": "opencensus.ext.azure.log_exporter.AzureLogHandler",
"connection_string": "<appinsights-connection-string>",
},
"console": {
"level": "DEBUG",
"class": "logging.StreamHandler",
"stream": sys.stdout,
},
},
"loggers": {
"logger_name": {"handlers": ["azure", "console"]},
},
}
تأكد من استخدام المسجل بنفس الاسم المحدد في التكوين الخاص بك.
# views.py
import logging
from django.shortcuts import request
logger = logging.getLogger("logger_name")
logger.warning("this will be tracked")
إرسال الاستثناءات
لا يقوم OpenCensus Python بتتبع exception
بيانات تتبع الاستخدام وإرسالها تلقائيًا. يتم إرسالها AzureLogHandler
باستخدام الاستثناءات من خلال مكتبة تسجيل Python. يمكنك إضافة خصائص مخصصة كما تفعل مع التسجيل العادي.
import logging
from opencensus.ext.azure.log_exporter import AzureLogHandler
logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler())
# Alternatively, manually pass in the connection_string
# logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))
properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}
# Use properties in exception logs
try:
result = 1 / 0 # generate a ZeroDivisionError
except Exception:
logger.exception('Captured an exception.', extra=properties)
نظرا لأنه يجب عليك تسجيل الاستثناءات بشكل صريح، فإن الأمر متروك لك كيفية تسجيل الاستثناءات غير المعالجة. لا يضع OpenCensus قيودا على كيفية إجراء هذا التسجيل، ولكن يجب عليك تسجيل بيانات تتبع الاستخدام للاستثناء بشكل صريح.
إرسال الأحداث
يمكنك إرسال customEvent
بيانات تتبع الاستخدام بنفس الطريقة التي ترسل trace
بها بيانات تتبع الاستخدام، إلا باستخدام AzureEventHandler
بدلا من ذلك.
import logging
from opencensus.ext.azure.log_exporter import AzureEventHandler
logger = logging.getLogger(__name__)
logger.addHandler(AzureEventHandler())
# Alternatively manually pass in the connection_string
# logger.addHandler(AzureEventHandler(connection_string=<appinsights-connection-string>))
logger.setLevel(logging.INFO)
logger.info('Hello, World!')
أخذ عينات
للحصول على معلومات حول أخذ العينات في OpenCensus، راجع أخذ العينات في OpenCensus.
ارتباط السجل
للحصول على معلومات حول كيفية إثراء سجلاتك ببيانات سياق التتبع، راجع تكامل سجلات OpenCensus Python.
تعديل القياس عن بُعد
للحصول على تفاصيل حول كيفية تعديل بيانات تتبع الاستخدام المتبعة قبل الإرسال إلى Azure Monitor، راجع معالجات بيانات تتبع الاستخدام في OpenCensus Python.
المقاييس
يدعم OpenCensus.stats أربع طرق تجميع ولكنه يوفر دعما جزئيا ل Azure Monitor:
- العدد: العدد هو عدد نقاط القياس. القيمة تراكمية، ويمكن زيادتها فقط، وإعادة تعيينها إلى 0 عند إعادة التشغيل.
- المجموع: مجموع نقاط القياس. القيمة تراكمية، ويمكن زيادتها فقط، وإعادة تعيينها إلى 0 عند إعادة التشغيل.
- LastValue: يحتفظ بالقيمة المسجلة الأخيرة ويسقط كل شيء آخر.
- التوزيع: لا يدعم مصدر Azure توزيع المدرج التكراري لنقاط القياس.
مثال على تجميع العد
أولًا، دعونا نولد بعض بيانات القياس المحلية. نقوم بإنشاء مقياس لتتبع عدد المرات التي يحدد فيها المستخدم المفتاح Enter .
from datetime import datetime from opencensus.stats import aggregation as aggregation_module from opencensus.stats import measure as measure_module from opencensus.stats import stats as stats_module from opencensus.stats import view as view_module from opencensus.tags import tag_map as tag_map_module stats = stats_module.stats view_manager = stats.view_manager stats_recorder = stats.stats_recorder prompt_measure = measure_module.MeasureInt("prompts", "number of prompts", "prompts") prompt_view = view_module.View("prompt view", "number of prompts", [], prompt_measure, aggregation_module.CountAggregation()) view_manager.register_view(prompt_view) mmap = stats_recorder.new_measurement_map() tmap = tag_map_module.TagMap() def main(): for _ in range(4): mmap.measure_int_put(prompt_measure, 1) mmap.record(tmap) metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow())) print(metrics[0].time_series[0].points[0]) if __name__ == "__main__": main()
يتم إنشاء المقاييس لتتبع عدة مرات. مع كل إدخال، يتم زيادة القيمة وتظهر معلومات القياس في وحدة التحكم. تتضمن المعلومات القيمة الحالية والطابع الزمني الحالي عند تحديث المقياس.
Point(value=ValueLong(5), timestamp=2019-10-09 20:58:04.930426) Point(value=ValueLong(6), timestamp=2019-10-09 20:58:05.170167) Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.438614) Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.834216)
يعد إدخال القيم مفيدا لأغراض العرض التوضيحي، لكننا نريد إرسال البيانات القياسية إلى Azure Monitor. تمرير سلسلة الاتصال مباشرة إلى المصدّر. أو يمكنك تحديده في متغير بيئة،
APPLICATIONINSIGHTS_CONNECTION_STRING
. نوصي باستخدام سلسلة الاتصال لإنشاء مثيل للمصدرين الذين يتم استخدامهم لإرسال بيانات تتبع الاستخدام إلى Application Insights. تعديل تعليمتك البرمجية من الخطوة السابقة استنادًا إلى نموذج التعليمات البرمجية التالية:from datetime import datetime from opencensus.ext.azure import metrics_exporter from opencensus.stats import aggregation as aggregation_module from opencensus.stats import measure as measure_module from opencensus.stats import stats as stats_module from opencensus.stats import view as view_module from opencensus.tags import tag_map as tag_map_module stats = stats_module.stats view_manager = stats.view_manager stats_recorder = stats.stats_recorder prompt_measure = measure_module.MeasureInt("prompts", "number of prompts", "prompts") prompt_view = view_module.View("prompt view", "number of prompts", [], prompt_measure, aggregation_module.CountAggregation()) view_manager.register_view(prompt_view) mmap = stats_recorder.new_measurement_map() tmap = tag_map_module.TagMap() exporter = metrics_exporter.new_metrics_exporter() # Alternatively manually pass in the connection_string # exporter = metrics_exporter.new_metrics_exporter(connection_string='<appinsights-connection-string>') view_manager.register_exporter(exporter) def main(): for _ in range(10): input("Press enter.") mmap.measure_int_put(prompt_measure, 1) mmap.record(tmap) metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow())) print(metrics[0].time_series[0].points[0]) if __name__ == "__main__": main()
يرسل المصدّر بيانات القياس إلى Azure Monitor على فواصل زمنية ثابتة. يجب تعيين هذه القيمة إلى 60 ثانية حيث تفترض الواجهة الخلفية ل Application Insights تجميع نقاط المقاييس على فاصل زمني مدته 60 ثانية. نحن نتتبع مقياسًا واحدًا، لذا يتم إرسال بيانات القياس هذه، مهما كانت قيمتها وطوابعها الزمنية، كل فترة زمنية. البيانات تراكمية، ويمكن زيادتها فقط، وإعادة تعيينها إلى 0 عند إعادة التشغيل.
يمكنك العثور على البيانات ضمن
customMetrics
، ولكن لا يتم استخدام الخصائصvalueMin
valueSum
valueMax
customMetrics
valueCount
وvalueStdDev
بشكل فعال.
تعيين أبعاد مخصصة في المقاييس
يسمح لك OpenCensus Python SDK بإضافة أبعاد مخصصة إلى القياسات عن بعد باستخدام tags
، والتي تشبه قاموس أزواج قيم المفاتيح.
أدرج العلامات التي تريد استخدامها في مخطط العلامة. يعمل مخطط العلامة كنوع من "تجمع" جميع العلامات المتوفرة التي يمكنك استخدامها.
... tmap = tag_map_module.TagMap() tmap.insert("url", "http://example.com") ...
بالنسبة إلى معين
View
، حدد العلامات التي تريد استخدامها عند تسجيل المقاييس باستخدام طريقة العرض هذه عبر مفتاح العلامة.... prompt_view = view_module.View("prompt view", "number of prompts", ["url"], # <-- A sequence of tag keys used to specify which tag key/value to use from the tag map prompt_measure, aggregation_module.CountAggregation()) ...
تأكد من استخدام خريطة العلامة عند التسجيل في خريطة القياس. يجب العثور على مفاتيح العلامة المحددة في
View
مخطط العلامة المستخدم للتسجيل.... mmap = stats_recorder.new_measurement_map() mmap.measure_int_put(prompt_measure, 1) mmap.record(tmap) # <-- pass the tag map in here ...
customMetrics
ضمن الجدول، تحتوي جميع سجلات القياس المنبعثة باستخدامprompt_view
على أبعاد{"url":"http://example.com"}
مخصصة .لإنتاج علامات ذات قيم مختلفة باستخدام نفس المفاتيح، قم بإنشاء خرائط علامات جديدة لها.
... tmap = tag_map_module.TagMap() tmap2 = tag_map_module.TagMap() tmap.insert("url", "http://example.com") tmap2.insert("url", "https://www.wikipedia.org/wiki/") ...
عدادات الأداء
بشكل افتراضي، يرسل مصدر المقاييس مجموعة من عدادات الأداء إلى Azure Monitor. يمكنك تعطيل هذه الإمكانية عن طريق تعيين العلامة enable_standard_metrics
إلى False
في الدالة الإنشائية لمصدر المقاييس.
...
exporter = metrics_exporter.new_metrics_exporter(
enable_standard_metrics=False,
)
...
يتم حاليا إرسال عدادات الأداء التالية:
- الذاكرة المتوفرة (بايت)
- وقت معالج وحدة المعالجة المركزية (النسبة المئوية)
- معدل الطلب الوارد (في الثانية)
- متوسط وقت تنفيذ الطلب الوارد (مللي ثانية)
- معالجة استخدام وحدة المعالجة المركزية (النسبة المئوية)
- معالجة وحدات البايت الخاصة (بايت)
يجب أن تكون قادرًا على رؤية هذه المقاييس في performanceCounters
. لمزيد من المعلومات، راجع عدادات الأداء.
تعديل القياس عن بُعد
للحصول على تفاصيل حول كيفية تعديل بيانات تتبع الاستخدام المتبعة قبل الإرسال إلى Azure Monitor، راجع معالجات بيانات تتبع الاستخدام في OpenCensus Python.
التعقب
إشعار
في OpenCensus، tracing
يشير إلى التتبع الموزع. AzureExporter
ترسل المعلمة requests
بيانات تتبع الاستخدام إلى dependency
Azure Monitor.
أولًا، دعونا ننشئ بعض بيانات التتبع محليًا. في Python IDLE، أو المحرر الذي تختاره، أدخل الرمز التالي:
from opencensus.trace.samplers import ProbabilitySampler from opencensus.trace.tracer import Tracer tracer = Tracer(sampler=ProbabilitySampler(1.0)) def main(): with tracer.span(name="test") as span: for value in range(5): print(value) if __name__ == "__main__": main()
مع كل إدخال، تتم طباعة القيمة إلى shell. تنشئ الوحدة النمطية OpenCensus Python قطعة مقابلة من
SpanData
. يعرف مشروع OpenCensus التتبع كشجرة من الامتدادات.0 [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='15ac5123ac1f6847', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:22.805429Z', end_time='2019-06-27T18:21:44.933405Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)] 1 [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='2e512f846ba342de', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:44.933405Z', end_time='2019-06-27T18:21:46.156787Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)] 2 [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='f3f9f9ee6db4740a', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:46.157732Z', end_time='2019-06-27T18:21:47.269583Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
يعد عرض الإخراج مفيدا لأغراض العرض التوضيحي، لكننا نريد إرساله
SpanData
إلى Azure Monitor. تمرير سلسلة الاتصال مباشرة إلى المصدّر. أو يمكنك تحديده في متغير بيئة،APPLICATIONINSIGHTS_CONNECTION_STRING
. نوصي باستخدام سلسلة الاتصال لإنشاء مثيل للمصدرين الذين يتم استخدامهم لإرسال بيانات تتبع الاستخدام إلى Application Insights. تعديل تعليمتك البرمجية من الخطوة السابقة استنادًا إلى نموذج التعليمات البرمجية التالية:from opencensus.ext.azure.trace_exporter import AzureExporter from opencensus.trace.samplers import ProbabilitySampler from opencensus.trace.tracer import Tracer tracer = Tracer( exporter=AzureExporter(), sampler=ProbabilitySampler(1.0), ) # Alternatively manually pass in the connection_string # exporter = AzureExporter( # connection_string='<appinsights-connection-string>', # ... # ) def main(): with tracer.span(name="test") as span: for value in range(5): print(value) if __name__ == "__main__": main()
الآن عند تشغيل البرنامج النصي Python، تتم طباعة القيمة فقط في shell. يتم إرسال
SpanData
إلى Azure Monitor. يمكنك العثور على بيانات النطاق المرسلة ضمنdependencies
لمزيد من المعلومات حول الطلبات الصادرة، راجع التبعيات في OpenCensus Python. لمزيد من المعلومات حول الطلبات الصادرة، راجع الطلبات في OpenCensus Python.
أخذ عينات
للحصول على معلومات حول أخذ العينات في OpenCensus، راجع أخذ العينات في OpenCensus.
تتبع الارتباط
لمزيد من المعلومات حول ارتباط بيانات تتبع الاستخدام في بيانات التتبع، راجع ارتباط بيانات تتبع الاستخدام OpenCensus Python.
تعديل القياس عن بُعد
لمزيد من المعلومات حول كيفية تعديل بيانات تتبع الاستخدام المتبعة قبل الإرسال إلى Azure Monitor، راجع معالجات بيانات تتبع الاستخدام في OpenCensus Python.
تكوين مصدري Azure Monitor
كما هو موضح، هناك ثلاثة مصدرين مختلفين لـAzure Monitor يدعمون OpenCensus. يرسل كل واحد أنواعًا مختلفة من بيانات تتبع الاستخدام إلى Azure Monitor. لمعرفة أنواع بيانات تتبع الاستخدام التي يرسلها كل مصدر، راجع الجدول التالي.
يقبل كل مصدر نفس الوسيطات للتكوين التي تم تمريرها من خلال المنشئين. يمكنك الاطلاع على معلومات حول كل منها هنا:
بيانات تتبع الاستخدام للمصدر | الوصف |
---|---|
connection_string |
سلسلة الاتصال المستخدمة للاتصال بمورد Azure Monitor. لها الأولوية على instrumentation_key . |
credential |
فئة بيانات الاعتماد المستخدمة من قبل مصادقة Azure Active Directory. راجع قسم "المصادقة" التالي. |
enable_standard_metrics |
يستخدم ل AzureMetricsExporter . إشارات المصدر لإرسال مقاييس عداد الأداء تلقائيًا إلى Azure Monitor. الإعدادات الافتراضية لـ True . |
export_interval |
يستخدم لتحديد التردد في ثوان من التصدير. الإعدادات الافتراضية لـ 15s . بالنسبة للمقاييس، يجب تعيينه إلى 60 ثانية وإلا فإن تجميعات المقاييس الخاصة بك لا معنى لها في مستكشف المقاييس. |
grace_period |
يستخدم لتحديد مهلة إيقاف تشغيل المصدرين بالثوان. الإعدادات الافتراضية لـ 5s . |
instrumentation_key |
مفتاح الأجهزة المستخدم للاتصال بمورد Azure Monitor. |
logging_sampling_rate |
يستخدم ل AzureLogHandler و AzureEventHandler . يوفر معدل أخذ عينات [0،1.0] لتصدير السجلات/الأحداث. الإعدادات الافتراضية لـ 1.0 . |
max_batch_size |
تحديد الحد الأقصى لحجم بيانات تتبع الاستخدام التي يتم تصديرها في وقت واحد. |
proxies |
يحدد سلسلة من الوكلاء لاستخدامها لإرسال البيانات إلى Azure Monitor. لمزيد من المعلومات، انظر الوكلاء. |
storage_path |
مسار إلى مكان وجود مجلد التخزين المحلي (بيانات تتبع الاستخدام غير الممرضة). اعتبارًا من opencensus-ext-azure v1.0.3، المسار الافتراضي هو دليل مؤقت نظام التشغيل + opencensus-python + your-ikey . قبل الإصدار 1.0.3، يكون المسار الافتراضي هو $USER .azure + python-file-name .opencensus + + . |
timeout |
تحديد مهلة الشبكة لإرسال بيانات تتبع الاستخدام إلى خدمة الاستيعاب في ثوان. الإعدادات الافتراضية لـ 10s . |
التكامل مع Azure Functions
لالتقاط بيانات تتبع الاستخدام المخصصة في بيئات Azure Functions، استخدم ملحق OpenCensus Python Azure Functions. لمزيد من المعلومات، راجع دليل مطور Azure Functions Python.
المصادقة (إصدار أولي)
إشعار
تتوفر ميزة المصادقة بدءا من opencensus-ext-azure
الإصدار 1.1b0.
يدعم كل مصدر من مصدري Azure Monitor تكوين إرسال حمولات بيانات تتبع الاستخدام بأمان عبر مصادقة OAuth باستخدام Azure Active Directory. لمزيد من المعلومات، راجع وثائق المصادقة.
عرض بياناتك باستخدام الاستعلامات
يمكنك عرض بيانات تتبع الاستخدام التي تم إرسالها من التطبيق الخاص بك من خلال علامة التبويب سجلات (تحليلات).
في القائمة ضمن نشط:
- بالنسبة لبيانات تتبع الاستخدام مع مصدر تتبع Azure Monitor، تظهر الطلبات الواردة ضمن
requests
. تظهر الطلبات الصادرة أو قيد التنفيذ ضمنdependencies
. - بالنسبة لبيانات تتبع الاستخدام مع مصدر مقاييس Azure Monitor، تظهر المقاييس المرسلة ضمن
customMetrics
. - بالنسبة لبيانات تتبع الاستخدام المرسلة مع مصدر سجلات Azure Monitor، تظهر السجلات
traces
. تظهر الاستثناءات ضمنexceptions
.
لمزيد من المعلومات حول كيفية استخدام الاستعلامات والسجلات، راجع السجلات في Azure Monitor.
تكوين وتمكين المصادقة المستندة إلى معرف Microsoft Entra
إشعار
تتوفر مصادقة Microsoft Entra فقط ل Python v2.7 وv3.6 وv3.7. يتم تضمين دعم معرف Microsoft Entra في Application Insights OpenCensus Python SDK بدءا من الإصدار التجريبي opencensus-ext-azure 1.1b0.
إشعار
تم إهمال OpenCensus Python SDK، ولكن Microsoft تدعمه حتى الإيقاف في 30 سبتمبر 2024. نوصي الآن بعرض Python المستند إلى OpenTelemetry وتقديم إرشادات الترحيل.
إنشاء بيانات الاعتماد المناسبة وتمريرها إلى الدالة الإنشائية لمصدر Azure Monitor. تأكد من إعداد سلسلة الاتصال باستخدام مفتاح الأجهزة ونقطة نهاية الاستيعاب لموردك.
OpenCensus
يدعم مصدرو Azure Monitor أنواع المصادقة هذه. نوصي باستخدام الهويات المدارة في بيئات الإنتاج.
الهوية المُدارة التي يُعيّنها النظام
from azure.identity import ManagedIdentityCredential
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
credential = ManagedIdentityCredential()
tracer = Tracer(
exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
sampler=ProbabilitySampler(1.0)
)
...
الهوية المُدارة التي يعيّنها المُستخدم
from azure.identity import ManagedIdentityCredential
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
credential = ManagedIdentityCredential(client_id="<client-id>")
tracer = Tracer(
exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
sampler=ProbabilitySampler(1.0)
)
...
تعرف على المزيد حول OpenCensus لـ Python
- OpenCensus Python على GitHub
- التخصيص
- مصدرو Azure Monitor على GitHub
- تكاملات OpenCensus
- تطبيقات عينة Azure Monitor
استكشاف الأخطاء وإصلاحها
اختبار الاتصال بين مضيف التطبيق وخدمة الاستيعاب
ترسل Application Insights SDKs والوكلاء بيانات تتبع الاستخدام للحصول على استيعابها كمكالمات REST إلى نقاط نهاية الاستيعاب الخاصة بنا. يمكنك اختبار الاتصال من خادم الويب أو الجهاز المضيف للتطبيق إلى نقاط نهاية خدمة الاستيعاب باستخدام عملاء REST الخام من أوامر PowerShell أو curl. راجع استكشاف أخطاء بيانات تتبع استخدام التطبيق المفقودة وإصلاحها في Azure Monitor Application Insights.
ملاحظات الإصدار
للحصول على أحدث ملاحظات الإصدار، راجع مصدر Python Azure Monitor
كما تلخص تحديثات الخدمة تحسينات Application Insights الرئيسية.
الخطوات التالية
- لتمكين تجارب الاستخدام، قم بتمكين مراقبة مستخدم الويب أو المستعرض
- تعقب الطلبات الواردة.
- تعقب الطلبات الصادرة.
- تحقق من خريطة التطبيق.
- تعرف على كيفية القيام بمراقبة الأداء من طرف إلى طرف.
التنبيهات
- نظرة عامة على التوفر: قم بإنشاء اختبارات للتأكد من أن موقعك مرئي على الويب.
- التشخيص الذكي: يتم تشغيل هذه الاختبارات تلقائيًا، لذلك ليس عليك القيام بأي شيء لإعدادها. يخبرونك إذا كان تطبيقك يحتوي على معدل غير عادي من الطلبات الفاشلة.
- التنبيهات القياسية: قم بتعيين التنبيهات لتحذيرك إذا تجاوز القياس الحد الأدنى. يمكنك تعيينها على مقاييس مخصصة تقوم بترميزها في تطبيقك.