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

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

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

حالة إصدار OpenTelemetry

تتوفر عروض القياس المفتوح لتطبيقات .NET Node.js وPython وJava.

إشعار

للحصول على حالة إصدار ميزة بميزة، راجع الأسئلة المتداولة.

الشروع في العمل

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

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

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

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

dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore 

مكّن Azure Monitor Application Insights

لتمكين Azure Monitor Application Insights، يمكنك إجراء تعديل طفيف على التطبيق الخاص بك وتعيين "سلسلة الاتصال ion". تخبر سلسلة الاتصال ion التطبيق الخاص بك بمكان إرسال بيانات تتبع الاستخدام التي يجمعها Distro، وهي فريدة لك.

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

أضف UseAzureMonitor() إلى بدء تشغيل التطبيق الخاص بك، الموجود في فصلك program.cs الدراسي.

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

// Create a new WebApplicationBuilder instance.
var builder = WebApplication.CreateBuilder(args);

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

// Build the application.
var app = builder.Build();

// Run the application.
app.Run();

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

تلميح

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

لنسخ سلسلة الاتصال ion الفريدة:

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

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

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

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

أ. تعيين عبر متغير البيئة (مستحسن)

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

APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>

ب. تعيين عبر ملف التكوين - Java فقط (مستحسن)

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

{
  "connectionString": "<Your Connection String>"
}

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

ج. تعيين عبر التعليمات البرمجية - ASP.NET Core Node.js وPython فقط (غير مستحسن)

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

إشعار

إذا قمت بتعيين سلسلة الاتصال في أكثر من مكان واحد، فإننا نلتزم بالأسبقية التالية:

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

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

شغل تطبيقك وافتح علامة التبويب مورد Application Insights على مدخل 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 في أنها محايدة من قبل المورد وتوفر واجهات برمجة تطبيقات/SDK ثابتة عبر اللغات.

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

كما أنه يتماشى مع إستراتيجية 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 الكلاسيكية وتطبيقات وحدة التحكم وما إلى ذلك، نوصي باستخدام مصدر .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 وخدمة التطبيقات
الكشف عن سياق الموارد ل AKS والوظائف
تصفية نطاق اختبار التوفر
الملء التلقائي لمعرف المستخدم ومعرف المستخدم المصادق عليه وعنوان IP للمستخدم
تجاوز/تعيين اسم العملية أو معرف المستخدم أو معرف المستخدم المصادق عليه يدويا
أخذ العينات التكيفية
منشئ ملفات التعريف ⚠️
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.

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

ألا تعمل؟ تحقق من صفحة استكشاف الأخطاء وإصلاحها ل ASP.NET Core.

يدعم

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

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

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

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