تعليمات القياس المفتوح والدعم والملاحظات

توفر هذه المقالة خيارات التعليمات والدعم والملاحظات ل OpenTelemetry على Azure Monitor Application Insights لتطبيقات .NET وJava Node.js وPython.

الأسئلة الشائعة

ما هو OpenTelemetry؟

إنه معيار مفتوح المصدر جديد لقابلية الملاحظة. تعرف على المزيد في OpenTelemetry.

لماذا تستثمر Microsoft Azure Monitor في OpenTelemetry؟

تستثمر Microsoft في OpenTelemetry للأسباب التالية:

  • إنه محايد للمورد ويوفر واجهات برمجة تطبيقات/SDKs متسقة عبر اللغات.
  • مع مرور الوقت، نعتقد أن OpenTelemetry سيمكن عملاء Azure Monitor من مراقبة التطبيقات المكتوبة بلغات تتجاوز لغاتنا المدعومة.
  • فهو يوسع أنواع البيانات التي يمكنك جمعها من خلال مجموعة غنية من مكتبات الأجهزة.
  • تميل مجموعات تطوير برامج OpenTelemetry (SDKs) إلى أن تكون أكثر أداء على نطاق واسع من أسلافها، وهي Application Insights SDKs.
  • يتوافق OpenTelemetry مع استراتيجية Microsoft لتبني مصدر مفتوح.

ما هي حالة OpenTelemetry؟

راجع حالة OpenTelemetry.

ما هو Azure Monitor OpenTelemetry Distro؟

يمكنك التفكير في الأمر على أنه برنامج تضمين رفيع يجمع معا جميع مكونات OpenTelemetry للحصول على تجربة من الدرجة الأولى على Azure. يسمى هذا التضمين أيضا التوزيع في OpenTelemetry.

لماذا يجب استخدام Azure Monitor OpenTelemetry Distro؟

هناك العديد من المزايا لاستخدام Azure Monitor OpenTelemetry Distro على OpenTelemetry الأصلي من المجتمع:

بروح OpenTelemetry، صممنا توزيعة لتكون مفتوحة وقابلة للتوسعة. على سبيل المثال، يمكنك إضافة:

  • مصدر بروتوكول القياس المفتوح (OTLP) وإرساله إلى وجهة ثانية في وقت واحد
  • مكتبات الأجهزة الأخرى غير المضمنة في توزيعة الأجهزة

نظرا لأن Distro يوفر توزيع OpenTelemetry، يدعم Distro أي شيء يدعمه OpenTelemetry. على سبيل المثال، يمكنك إضافة المزيد من معالجات بيانات تتبع الاستخدام أو المصدرين أو مكتبات الأجهزة، إذا كان OpenTelemetry يدعمها.

إشعار

يقوم Distro بتعيين العينة إلى عينة مخصصة ذات معدل ثابت ل Application Insights. يمكنك تغيير هذا إلى عينة مختلفة، ولكن القيام بذلك قد يعطل بعض القدرات المضمنة في Distro. لمزيد من المعلومات حول أداة أخذ العينات المدعومة، راجع قسم تمكين أخذ العينات في تكوين القياس المفتوح ل Azure Monitor.

بالنسبة للغات التي لا تحتوي على مصدر OpenTelemetry مستقل معتمد، فإن Azure Monitor OpenTelemetry Distro هو الطريقة الوحيدة المدعومة حاليا لاستخدام OpenTelemetry مع Azure Monitor. بالنسبة للغات التي لديها مصدر OpenTelemetry مستقل معتمد، لديك خيار استخدام إما Azure Monitor OpenTelemetry Distro أو مصدر OpenTelemetry المستقل المناسب اعتمادا على سيناريو القياس عن بعد. لمزيد من المعلومات، راجع متى يجب استخدام مصدر Azure Monitor OpenTelemetry؟.

كيف يمكنني اختبار Azure Monitor OpenTelemetry Distro؟

تحقق من مستندات التمكين الخاصة بنا ل .NET وJava وJavaScript (Node.js) وPython.

هل يجب استخدام OpenTelemetry أو Application Insights SDK؟

نوصي باستخدام OpenTelemetry Distro ما لم تكن بحاجة إلى ميزة متوفرة فقط مع الدعم الرسمي في Application Insights SDK.

يؤدي اعتماد OpenTelemetry الآن إلى منع الاضطرار إلى الترحيل في وقت لاحق.

متى يجب استخدام مصدر Azure Monitor OpenTelemetry؟

بالنسبة إلى ASP.NET Core وJava Node.js وPython، نوصي باستخدام Azure Monitor OpenTelemetry Distro. إنه سطر واحد من التعليمات البرمجية للبدء.

بالنسبة لجميع سيناريوهات .NET الأخرى، بما في ذلك ASP.NET الكلاسيكية وتطبيقات وحدة التحكم وWindows Forms (WinForms) وما إلى ذلك، نوصي باستخدام مصدر .NET Azure Monitor OpenTelemetry: Azure.Monitor.OpenTelemetry.Exporter.

بالنسبة لسيناريوهات بيانات تتبع الاستخدام Python الأكثر تعقيدا التي تتطلب تكوينا متقدما، نوصي باستخدام مصدر بيانات تتبع الاستخدام المفتوح ل Python Azure Monitor.

ما هي حالة الإصدار الحالية للميزات داخل Azure Monitor OpenTelemetry Distro؟

يقسم المخطط التالي دعم ميزة OpenTelemetry لكل لغة.

ميزة .NET Node.js Python Java
التتبع الموزع
مقاييس مخصصة
المقاييس القياسية
أخذ العينات بمعدل ثابت
التخزين دون اتصال وإعادة المحاولة التلقائية
الإبلاغ عن الاستثناء
مجموعة السجلات ⚠️
أحداث مخصصة ⚠️ ⚠️ ⚠️
مصادقة Microsoft Entra
المقاييس المباشرة
تصفية المقاييس المباشرة
الكشف عن سياق الموارد ل VM/VMSS وخدمة التطبيقات
الكشف عن سياق الموارد لخدمة Azure Kubernetes (AKS) والوظائف
أحداث اختبار التوفر التي تم إنشاؤها باستخدام واجهة برمجة تطبيقات تتبع التوفر
تصفية الطلبات والتبعيات والسجلات والاستثناءات حسب معرف المستخدم المجهول والمصدر الاصطناعي
تصفية التبعيات والسجلات والاستثناءات حسب اسم العملية
أخذ العينات التكيفية
منشئ ملفات التعريف ⚠️
Snapshot Debugger

المفتاح

  • ✅ تتوفر هذه الميزة لجميع العملاء الذين لديهم دعم رسمي.
  • ⚠️ تتوفر هذه الميزة كمعاينة عامة. راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
  • ❌ هذه الميزة غير متوفرة أو غير قابلة للتطبيق.

هل يمكن استخدام OpenTelemetry لمستعرضات الويب؟

نعم، لكننا لا نوصي به ولا يدعمه Azure. تم تحسين OpenTelemetry JavaScript بشكل كبير Node.js. بدلا من ذلك، نوصي باستخدام Application Insights JavaScript SDK.

متى يمكننا توقع توفر OpenTelemetry SDK للاستخدام في مستعرضات الويب؟

لا يحتوي OpenTelemetry web SDK على مخطط زمني محدد للتوفر. من المحتمل أن نكون على بعد عدة سنوات من متصفح SDK الذي يعد بديلا قابلا للتطبيق Insights JavaScript SDK.

هل يمكنني اختبار OpenTelemetry في مستعرض ويب اليوم؟

تعد بيئة الاختبار المعزولة للويب OpenTelemetry نسخة المستودع المصممة لجعل OpenTelemetry تعمل في مستعرض. لا يمكن بعد إرسال بيانات تتبع الاستخدام إلى Application Insights. لا تحدد SDK أحداث العميل العامة.

هل يتم دعم تشغيل Application Insights جنبا إلى جنب مع وكلاء منافسين مثل AppDynamics وDataDog و NewRelic؟

هذه الممارسة ليست شيئا نخطط لاختباره أو دعمه، على الرغم من أن Distros الخاصة بنا تسمح لك بالتصدير إلى نقطة نهاية OTLP جنبا إلى جنب مع Azure Monitor في وقت واحد.

هل يمكنني استخدام ميزات المعاينة في بيئات الإنتاج؟

لا نوصي بذلك. راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.

ما الفرق بين الأجهزة اليدوية والتلقائية؟

راجع نظرة عامة على OpenTelemetry.

هل يمكنني استخدام OpenTelemetry Collector؟

يستخدم بعض العملاء OpenTelemetry Collector كبديل للعامل، على الرغم من أن Microsoft لا تدعم رسميا نهجا يستند إلى عامل لمراقبة التطبيق حتى الآن. في هذه الأثناء، ساهم مجتمع المصدر المفتوح بمصدر OpenTelemetry Collector Azure Monitor الذي يستخدمه بعض العملاء لإرسال البيانات إلى Azure Monitor Application Insights. هذا غير معتمد من قبل Microsoft.

ما الفرق بين OpenCensus وOpenTelemetry؟

OpenCensus هو مقدمة OpenTelemetry. ساعدت Microsoft في الجمع بين OpenTracing وOpenCensus لإنشاء OpenTelemetry، وهو معيار واحد للمراقبة للعالم. تستند Python SDK الحالية الموصى بها للإنتاج ل Azure Monitor إلى OpenCensus. تلتزم Microsoft بإجراء Azure Monitor استنادا إلى OpenTelemetry.

في Grafana، لماذا أرى Status: 500. Can't visualize trace events using the trace visualizer؟

قد تحاول تصور سجلات النص الخام بدلا من تتبعات OpenTelemetry.

في Application Insights، يخزن جدول "Traces" سجلات النصوص الأولية لأغراض التشخيص. وهي تساعد في تحديد التتبعات المرتبطة بطلبات المستخدم والأحداث الأخرى وتقارير الاستثناءات وربطها. ومع ذلك، لا يساهم جدول "التتبعات" مباشرة في عرض المعاملة الشاملة (المخطط الانحداري) في أدوات التصور مثل Grafana.

مع الاعتماد المتزايد للممارسات السحابية الأصلية، هناك تطور في جمع المصطلحات وبيانات تتبع الاستخدام. أصبح OpenTelemetry معيارا لجمع بيانات تتبع الاستخدام ووضع الأجهزة لها. في هذا السياق، اتخذ مصطلح "التتبعات" معنى جديدا. بدلا من السجلات الأولية، تشير "التتبعات" في OpenTelemetry إلى شكل أغنى ومنظم لبيانات تتبع الاستخدام يتضمن امتدادات، والتي تمثل وحدات عمل فردية. هذه الامتدادات ضرورية لإنشاء طرق عرض مفصلة للمعاملات، ما يتيح مراقبة وتشخيص أفضل للتطبيقات الأصلية على السحابة.

استكشاف الأخطاء وإصلاحها

الخطوة 1: تمكين التسجيل التشخيصي

يستخدم مصدر Azure Monitor EventSource لتسجيل الدخول الداخلي الخاص به. تتوفر سجلات المصدر لأي EventListener عن طريق الاشتراك في المصدر المسمى OpenTelemetry-AzureMonitor-Exporter. للحصول على خطوات استكشاف الأخطاء وإصلاحها، راجع استكشاف أخطاء OpenTelemetry وإصلاحها على GitHub.

الخطوة 2: اختبار الاتصال بين مضيف التطبيق وخدمة الاستيعاب

ترسل مجموعات تطوير برامج Application Insights (SDKs) والوكلاء بيانات تتبع الاستخدام للحصول على استيعابها كمكالمات REST في نقاط نهاية الاستيعاب لدينا. لاختبار الاتصال من خادم الويب أو الكمبيوتر المضيف للتطبيق إلى نقاط نهاية خدمة الاستيعاب، استخدم أوامر cURL أو طلبات REST الأولية من PowerShell. لمزيد من المعلومات، راجع استكشاف أخطاء بيانات تتبع استخدام التطبيق المفقودة وإصلاحها في Azure Monitor Application Insights.

المشكلات المعروفة

العناصر التالية هي مشكلات معروفة لمصدري القياس المفتوح ل Azure Monitor:

  • اسم العملية مفقود من القياس عن بعد للتبعية. يتسبب اسم العملية المفقود في حدوث حالات فشل ويؤثر سلبا على تجربة علامة تبويب الأداء.

  • نموذج الجهاز مفقود من بيانات تتبع الاستخدام للطلب والتبعية. يؤثر نموذج الجهاز المفقود سلبا على تحليل مجموعة الأجهزة.

يدعم

حدد علامة تبويب للغة التي تختارها لاكتشاف خيارات الدعم.

  • بالنسبة إلى مشكلات دعم Azure، افتح تذكرة دعم Azure.
  • بالنسبة إلى مشكلات القياس عن بُعد المفتوح، اتصل بمجتمع القياس عن بُعد المفتوح مباشرة.
  • للحصول على قائمة بالمشكلات المفتوحة المتعلقة بمصدر Azure Monitor، راجع صفحة مشكلات GitHub.

ملاحظات OpenTelemetry

لتقديم التعليقات: