تمكين Azure Monitor OpenTelemetry لتطبيقات .NET Node.js وPython وJava

توضح هذه المقالة كيفية تمكين وتكوين جمع البيانات المستندة إلى OpenTelemetry داخل Application Insights. The Azure Monitor OpenTelemetry Distro:

  • يوفر توزيع OpenTelemetry الذي يتضمن دعما للميزات الخاصة ب Azure Monitor.
  • تمكين القياس التلقائي عن بعد عن طريق تضمين مكتبات أدوات القياس المفتوح لجمع التتبعات والمقاييس والسجلات والاستثناءات.
  • يسمح بجمع بيانات تتبع الاستخدام المخصصة .
  • يدعم Live Metrics لمراقبة وجمع المزيد من بيانات تتبع الاستخدام من تطبيقات الويب المباشرة في الإنتاج.

لمزيد من المعلومات حول مزايا استخدام Azure Monitor OpenTelemetry Distro، راجع لماذا يجب علي استخدام Azure Monitor OpenTelemetry Distro.

لمعرفة المزيد حول جمع البيانات باستخدام OpenTelemetry، راجع أساسيات تجميع البيانات أو الأسئلة المتداولة حول OpenTelemetry.

حالة إصدار OpenTelemetry

تتوفر عروض القياس المفتوح لتطبيقات .NET Node.js وPython وJava. للحصول على حالة إصدار ميزة بميزة، راجع الأسئلة المتداولة.

تمكين OpenTelemetry باستخدام Application Insights

اتبع الخطوات الواردة في هذا القسم وستبدأ التطبيق الخاص بك مع OpenTelemetry. حدد علامة تبويب للحصول على إرشادات خاصة ب langauge.

إشعار

يغطي .NET سيناريوهات متعددة، بما في ذلك ASP.NET الكلاسيكية وتطبيقات وحدة التحكم وWindows Forms (WinForms) والمزيد.

المتطلبات الأساسية

تلميح

إذا كنت تقوم بالترحيل من Application Insights Classic API، فشاهد وثائق الترحيل الخاصة بنا.

تثبيت مكتبة العميل

تثبيت أحدث Azure.Monitor.OpenTelemetry.AspNetCore حزمة NuGet:

dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore 

تعديل التطبيق الخاص بك

Azure.Monitor.OpenTelemetry.AspNetCore قم باستيراد مساحة الاسم، وأضف OpenTelemetry، وقم بتكوينه لاستخدام Azure Monitor في الفئة الخاصة بكprogram.cs:

// Import the Azure.Monitor.OpenTelemetry.AspNetCore namespace.
using Azure.Monitor.OpenTelemetry.AspNetCore;

var builder = WebApplication.CreateBuilder(args);

// Add OpenTelemetry and configure it to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();

var app = builder.Build();

app.Run();

انسخ سلسلة الاتصال من مورد Application Insights

سلسلة الاتصال فريد ويحدد المكان الذي يرسل فيه Azure Monitor OpenTelemetry Distro بيانات تتبع الاستخدام التي يجمعها.

تلميح

إذا لم يكن لديك بالفعل مورد Application Insights، فبادر بإنشاء مورد باتباع هذا الدليل. نوصي بإنشاء مورد جديد بدلا من استخدام مورد موجود.

لنسخ سلسلة الاتصال:

  1. انتقل إلى جزء Overview لمورد Application Insights.
  2. ابحث عن سلسلة الاتصال.
  3. مرر مؤشر الماوس فوق سلسلة الاتصال وحدد أيقونة نسخ إلى الحافظة.

لقطة شاشة تعرض نظرة عامة حول Application Insights وسلسلة الاتصال.

لصق سلسلة الاتصال في بيئتك

للصق سلسلة الاتصال، حدد من الخيارات التالية:

هام

نوصي بتعيين سلسلة الاتصال من خلال التعليمات البرمجية فقط في بيئات التطوير والاختبار المحلية.

للإنتاج، استخدم متغير بيئة أو ملف تكوين (Java فقط).

  • تعيين عبر متغير - البيئة الموصى به

    استبدل <Your connection string> في الأمر التالي سلسلة الاتصال.

    APPLICATIONINSIGHTS_CONNECTION_STRING=<Your connection string>
    
  • تعيين عبر ملف - التكوين Java فقط

    إنشاء ملف تكوين باسم applicationinsights.json، ووضعه في نفس الدليل كما هو الحال applicationinsights-agent-3.5.4.jar مع المحتوى التالي:

    {
      "connectionString": "<Your connection string>"
    }
    

    استبدل <Your connection string> في JSON السابق سلسلة الاتصال الفريدة.

  • تعيين عبر التعليمات البرمجية - ASP.NET Core Node.js وPython فقط

    راجع تكوين سلسلة الاتصال للحصول على مثال لإعداد سلسلة الاتصال عبر التعليمات البرمجية.

إشعار

إذا قمت بتعيين سلسلة الاتصال في أماكن متعددة، سيتم إعطاء الأولوية لمتغير البيئة بالترتيب التالي:

  1. رمز
  2. متغير البيئة
  3. ملف التكوين

تأكيد أن البيانات تتدفق

قم بتشغيل التطبيق الخاص بك، ثم افتح Application Insights في مدخل Microsoft Azure. قد يستغرق ظهور البيانات بضع دقائق.

Screenshot of the Application Insights Overview tab with server requests and server response time highlighted.

تم تمكين Application Insights الآن لتطبيقك. الخطوات التالية اختيارية وتسمح بمزيد من التخصيص.

هام

إذا كان لديك خدمتان أو أكثر ترسلان بيانات تتبع الاستخدام إلى نفس مورد Application Insights، فأنت مطالب بتعيين أسماء دور السحابة لتمثيلها بشكل صحيح على مخطط التطبيق.

كجزء من استخدام تقرير عن حالة النظام لدى Application Insights، نقوم بجمع بيانات التشخيص وإرسالها إلى Microsoft. تساعدنا هذه البيانات على تشغيل وتحسين تطبيق رؤى. لمعرفة المزيد، راجع Statsbeat في Azure Application Insights.

التطبيقات النموذج

تتوفر تطبيقات نموذج القياس المفتوح ل Azure Monitor لجميع اللغات المدعومة:

الخطوات التالية

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

يقدم هذا القسم إجابات للأسئلة الشائعة.

ما هو 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.

ردود فعل القياس عن بُعد المفتوح

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