القياسات المباشرة: المراقبة والتشخيص مع زمن انتقال 1 ثانية

راقب تطبيق الويب المباشر قيد الإنتاج باستخدام المقاييس المباشرة (المعروفة أيضًا باسم QuickPulse) من Application Insights. يمكنك تحديد وتصفية القياسات وعدادات الأداء لمشاهدتها في الوقت الحقيقي، دون أي إزعاج لخدمتك. يمكنك أيضا فحص تتبعات التكديس من نموذج الطلبات والاستثناءات الفاشلة. جنبا إلى جنب مع محلل ملفات التعريف و Snapshot Debugger، يوفر Live Metrics أداة تشخيص قوية وغير نايفة لموقع الويب المباشر الخاص بك.

إشعار

تدعم المقاييس المباشرة TLS 1.2 فحسب. لمزيد من المعلومات، راجع استكشاف الأخطاء وإصلاحها.

باستخدام المقاييس المباشرة يمكنك:

  • تحقق من صحة الإصلاح أثناء إصداره من خلال مشاهدة عدد الأداء والفشل.
  • شاهد تأثير تحميلات الاختبار وتشخيص المشكلات مباشرة.
  • ركز على جلسات اختبار معينة أو قم بتصفية المشكلات المعروفة عن طريق تحديد المقاييس التي تريد مشاهدتها وتصفيتها.
  • احصل على آثار الاستثناءات فور حدوثها.
  • جرب الفلاتر للعثور على مؤشرات الأداء الرئيسية الأكثر ملاءمة.
  • مراقبة أي عداد أداء Windows مباشرة.
  • حدد بسهولة خادما لديه مشكلات وقم بتصفية جميع مؤشرات الأداء الرئيسية/الموجز المباشر إلى ذلك الخادم فقط.

Screenshot that shows the Live Metrics tab.

المقاييس المباشرة مدعومة حاليا لتطبيقات ASP.NET ASP.NET Core وAzure Functions وJava Node.js.

إشعار

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

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

هام

لتمكين Application Insights، تأكد من تنشيطه في مدخل Microsoft Azure وأن تطبيقك يستخدم إصدارا حديثا من حزمة Application Insights NuGet. بدون حزمة NuGet، يتم إرسال بعض بيانات تتبع الاستخدام إلى Application Insights، ولكن لن تظهر بيانات تتبع الاستخدام هذه في Live Metrics.

  1. اتبع الإرشادات الخاصة باللغة لتمكين Live Metrics:

  2. في مدخل Microsoft Azure، افتح مورد Application Insights لتطبيقك. ثم افتح Live Stream.

  3. تأمين قناة التحكم إذا كنت قد تستخدم بيانات حساسة مثل أسماء العملاء في عوامل التصفية الخاصة بك.

إشعار

في 31 مارس 2025، سينتهي دعم إدخال مفاتيح الأجهزة. سيستمر استيعاب مفتاح الأجهزة في العمل ولكننا لن نقوم بتوفير تحديثات أو أي دعم للميزة. الانتقال إلى سلاسل الاتصال للاستفادة من الإمكانات الجديدة.

تمكين Live Metrics باستخدام التعليمات البرمجية لأي تطبيق .NET

إشعار

يتم تمكين Live Metrics بشكل افتراضي عند إلحاقه باستخدام الإرشادات الموصى بها لتطبيقات .NET.

لتكوين القياسات المباشرة يدويا:

  1. تثبيت حزمة NuGet Microsoft.ApplicationInsights.PerfCounterCollector.
  2. يظهر نموذج التعليمات البرمجية لتطبيق وحدة التحكم التالي إعداد Live Metrics:
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

// Create a TelemetryConfiguration instance.
TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.InstrumentationKey = "INSTRUMENTATION-KEY-HERE";
QuickPulseTelemetryProcessor quickPulseProcessor = null;
config.DefaultTelemetrySink.TelemetryProcessorChainBuilder
    .Use((next) =>
    {
        quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
        return quickPulseProcessor;
    })
    .Build();

var quickPulseModule = new QuickPulseTelemetryModule();

// Secure the control channel.
// This is optional, but recommended.
quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
quickPulseModule.Initialize(config);
quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);

// Create a TelemetryClient instance. It is important
// to use the same TelemetryConfiguration here as the one
// used to set up Live Metrics.
TelemetryClient client = new TelemetryClient(config);

// This sample runs indefinitely. Replace with actual application logic.
while (true)
{
    // Send dependency and request telemetry.
    // These will be shown in Live Metrics.
    // CPU/Memory Performance counter is also shown
    // automatically without any additional steps.
    client.TrackDependency("My dependency", "target", "http://sample",
        DateTimeOffset.Now, TimeSpan.FromMilliseconds(300), true);
    client.TrackRequest("My Request", DateTimeOffset.Now,
        TimeSpan.FromMilliseconds(230), "200", true);
    Task.Delay(1000).Wait();
}

العينة السابقة هي لتطبيق وحدة تحكم، ولكن يمكن استخدام نفس التعليمات البرمجية في أي تطبيقات .NET. إذا تم تمكين أي وحدات نمطية أخرى لبيانات تتبع الاستخدام لتحديد بيانات تتبع الاستخدام تلقائيا، فمن المهم التأكد من استخدام نفس التكوين المستخدم لتهيئة هذه الوحدات النمطية للوحدة النمطية Live Metrics.

كيف تختلف المقاييس المباشرة عن مستكشف المقاييس وتحليلات السجل؟

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

تحديد المقاييس وتصفيتها

تتوفر هذه الإمكانات مع ASP.NET و ASP.NET Core و Azure Functions (v2).

يمكنك مراقبة مؤشرات الأداء الرئيسية المخصصة مباشرة عن طريق تطبيق عوامل تصفية عشوائية على أي قياس عن بُعد لتطبيق مؤشر الأداء الأساسي Application Insights من البوابة الإلكترونية. حدد عنصر تحكم عامل التصفية الذي يظهر عند تحريك الماوس فوق أي من المخططات. يرسم المخطط التالي KPI لعدد الطلبات المخصص مع عوامل تصفية على سمات URL والمدة. تحقق من صحة عوامل التصفية باستخدام قسم معاينة الدفق الذي يعرض موجزا مباشرا لبيانات تتبع الاستخدام يطابق المعايير التي حددتها في أي وقت.

Screenshot that shows the Filter request rate.

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

Screenshot that shows the Query Builder on Request Rate with a custom metric.

بالإضافة إلى بيانات تتبع استخدام Application Insights، يمكنك أيضا مراقبة أي عداد أداء Windows. حدده من خيارات الدفق وقدم اسم عداد الأداء.

يتم تجميع القياسات المباشرة في نقطتين: محليا على كل خادم ثم عبر جميع الخوادم. يمكنك تغيير الإعداد الافتراضي في أي منهما عن طريق تحديد خيارات أخرى في القوائم المنسدلة المعنية.

نموذج بيانات تتبع الاستخدام: أحداث تشخيص مباشرة مخصصة

بشكل افتراضي، يعرض الموجز المباشر للأحداث عينات من الطلبات الفاشلة واستدعاءات التبعية والاستثناءات والأحداث والتتبعات. حدد أيقونة عامل التصفية لرؤية المعايير المطبقة في أي وقت.

Screenshot that shows the Filter button.

كما هو الحال مع المقاييس، يمكنك تحديد أي معايير عشوائية لأي نوع من أنواع القياس عن بُعد لـ Application Insights. في هذا المثال، نحدد حالات فشل وأحداث طلب محددة.

Screenshot that shows the Query Builder.

إشعار

حاليا، بالنسبة للمعايير المستندة إلى رسالة الاستثناء، استخدم رسالة الاستثناء الخارجية. في المثال السابق، لتصفية الاستثناء الحميد مع رسالة استثناء داخلية (يتبع محدد "<--" ) "تم قطع اتصال العميل"، استخدم رسالة لا تحتوي على معايير "محتوى طلب قراءة الخطأ".

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

Screenshot that shows the Sample telemetry window with an exception selected and the exception details displayed at the bottom of the window.

التصفية حسب مثيل الخادم

إذا كنت ترغب في مراقبة مثيل دور خادم معين، يمكنك التصفية حسب الخادم. للتصفية، حدد اسم الخادم ضمن الخوادم.

Screenshot that shows the Sampled live failures.

تأمين قناة التحكم

تسمح لك عوامل التصفية المخصصة ل Live Metrics بالتحكم في أي من بيانات تتبع الاستخدام للتطبيق الخاص بك يتم دفقه إلى طريقة عرض Live Metrics في مدخل Microsoft Azure. يتم إرسال معايير عوامل التصفية إلى التطبيقات التي يتم وضع علامة عليها باستخدام Application Insights SDK. قد تحتوي قيمة عامل التصفية على معلومات حساسة، مثل معرف العميل. للحفاظ على هذه القيمة آمنة ومنع الكشف المحتمل للتطبيقات غير المصرح بها، لديك خياران:

  • مستحسن: تأمين قناة Live Metrics باستخدام مصادقة Microsoft Entra.
  • قديم (لم يعد مستحسنا): قم بإعداد قناة مصادق عليها عن طريق تكوين مفتاح API سري كما هو موضح في قسم "خيار قديم".

إشعار

في 30 سبتمبر 2025، سيتم إيقاف مفاتيح واجهة برمجة التطبيقات المستخدمة لدفق بيانات تتبع الاستخدام ل Live Metrics إلى Application Insights. بعد ذلك التاريخ، لن تتمكن التطبيقات التي تستخدم مفاتيح API من إرسال بيانات Live Metrics إلى مورد Application Insights. يجب إجراء استيعاب بيانات تتبع الاستخدام المصادق عليه لبث القياسات المباشرة إلى Application Insights باستخدام مصادقة Microsoft Entra ل Application Insights.

من الممكن تجربة عوامل التصفية المخصصة دون الحاجة إلى إعداد قناة مصادق عليها. حدد أي من أيقونات التصفية وقم بتخويل الخوادم المتصلة. إذا اخترت هذا الخيار، يجب عليك تخويل الخوادم المتصلة مرة واحدة كل جلسة عمل جديدة أو عندما يأتي خادم جديد عبر الإنترنت.

تحذير

نحن نثبط بشدة استخدام القنوات غير الآمنة وسنعطل هذا الخيار بعد ستة أشهر من البدء في استخدامه. يعرض مربع الحوار تخويل الخوادم المتصلة التاريخ الذي سيتم بعده تعطيل هذا الخيار.

Screenshot that shows the Authorize connected servers dialog.

الخيار القديم: إنشاء مفتاح API

  1. حدد علامة التبويب API Access ثم حدد Create API key.

    Screenshot that shows selecting the API Access tab and the Create API key button.

  2. حدد خانة الاختيار مصادقة قناة عنصر تحكم SDK ثم حدد إنشاء مفتاح.

    Screenshot that shows the Create API key pane. Select Authenticate SDK control channel checkbox and then select Generate key.

إضافة مفتاح API إلى التكوين

يمكنك إضافة مفتاح API إلى التكوين لتطبيقات ASP.NET ASP.NET Core وWorkerService وAzure Functions.

في ملف Program.cs ، أضف مساحة الاسم التالية:

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

ثم أضف تسجيل الخدمة التالي:

// Existing code which includes services.AddApplicationInsightsTelemetry() to enable Application Insights.
builder.Services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

لمزيد من المعلومات حول كيفية تكوين تطبيقات ASP.NET Core، راجع تكوين وحدات القياس عن بعد في ASP.NET Core.

WorkerService

بالنسبة لتطبيقات WorkerService ، اتبع هذه الإرشادات.

أضف مساحة الاسم التالية:

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

بعد ذلك، أضف السطر التالي قبل الاستدعاء services.AddApplicationInsightsTelemetryWorkerService:

    services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

لمزيد من المعلومات حول كيفية تكوين تطبيقات WorkerService، راجع تكوين وحدات القياس عن بعد في WorkerServices.

تطبيقات Azure Functions

بالنسبة لتطبيقات Azure Functions (v2)، يمكنك تأمين القناة باستخدام مفتاح API باستخدام متغير بيئة.

أنشئ مفتاح API من داخل مورد Application Insights وانتقل إلى الإعدادات> Configuration لتطبيق Azure Functions. حدد New application setting، وأدخل اسم APPINSIGHTS_QUICKPULSEAUTHAPIKEY، وأدخل قيمة تتوافق مع مفتاح API الخاص بك.

جدول الميزات المدعومة

اللغة القياسات الأساسية مقاييس الأداء التصفية المخصصة القياس عن بعد للعينة وحدة المعالجة المركزية مقسمة حسب العملية
.NET Framework مدعوم (LTS) مدعوم (LTS) مدعوم (LTS) مدعوم (LTS) مدعوم (LTS)
.NET الأساسية (الهدف = .NET Framework) مدعوم (LTS) مدعوم (LTS) مدعوم (LTS) مدعوم (LTS) مدعوم (LTS)
.NET Core (target=.NET Core) مدعوم (LTS) معتمد* مدعوم (LTS) مدعوم (LTS) غير مدعوم
Azure Functions v2 مدعوم مدعوم مدعوم مدعوم غير مدعوم
Java معتمد (V2.0.0+) معتمد (V2.0.0+) غير مدعوم معتمد (V3.2.0+) غير مدعوم
Node.js معتمد (V1.3.0+) معتمد (V1.3.0+) غير مدعوم معتمد (V1.3.0+) غير مدعوم
Python غير مدعوم غير مدعوم غير مدعوم غير مدعوم غير مدعوم

المقاييس الأساسية تشمل الطلب والتبعية ومعدل الاستثناء. تشمل مقاييس الأداء (عدادات الأداء) الذاكرة ووحدة المعالجة المركزية. يُظهر نموذج القياس عن بُعد دفقًا من المعلومات التفصيلية للطلبات والتبعيات الفاشلة والاستثناءات والأحداث والتتبعات.

يختلف دعم PerfCounters قليلا عبر إصدارات .NET Core التي لا تستهدف .NET Framework:

  • يتم دعم مقاييس PerfCounters عند التشغيل في Azure App Service لنظام التشغيل Windows (ASP.NET Core SDK الإصدار 2.4.1 أو أعلى).
  • يتم دعم PerfCounters عند تشغيل التطبيق على أي جهاز Windows للتطبيقات التي تستهدف .NET Core LTS أو أعلى.
  • يتم دعم PerfCounters عند تشغيل التطبيق في أي مكان (مثل Linux أو Windows أو خدمة التطبيقات لنظام التشغيل Linux أو الحاويات) في أحدث الإصدارات، ولكن فقط للتطبيقات التي تستهدف .NET Core LTS أو أعلى.

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

تستخدم المقاييس المباشرة عناوين IP مختلفة عن غيرها من أدوات القياس عن بُعد لتطبيق Application Insights. تأكد من أن عناوين IP هذه مفتوحة في جدار الحماية. تحقق أيضا من أن المنافذ الصادرة ل Live Metrics مفتوحة في جدار الحماية لخوادمك.

كما هو موضح في إعلان ترحيل Azure TLS 1.2، تدعم المقاييس المباشرة الآن TLS 1.2 فقط. إذا كنت تستخدم إصدارا قديما من TLS، فلا تعرض Live Metrics أي بيانات. بالنسبة للتطبيقات المستندة إلى .NET Framework 4.5.1، راجع تمكين أمان طبقة النقل (TLS) 1.2 على العملاء - Configuration Manager لدعم إصدار TLS الأحدث.

التكوين المفقود لـ .NET

  1. تحقق من أنك تستخدم أحدث إصدار من حزمة NuGet Microsoft.ApplicationInsights.PerfCounterCollector.

  2. ApplicationInsights.config تحرير الملف:

    • تحقق من أن سلسلة الاتصال يشير إلى مورد Application Insights الذي تستخدمه.
    • QuickPulseTelemetryModule حدد موقع خيار التكوين. إذا لم يكن موجودا، أضفه.
    • QuickPulseTelemetryProcessor حدد موقع خيار التكوين. إذا لم يكن موجودا، أضفه.
    <TelemetryModules>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryModules>
    
    <TelemetryProcessors>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryProcessors>
    
  3. إعادة تشغيل التطبيق.

رسالة حالة "البيانات غير قابلة للوصول مؤقتا"

عند الانتقال إلى Live Metrics، قد ترى شعارا مع رسالة الحالة: "البيانات غير قابلة للوصول مؤقتا. يتم نشر التحديثات على حالتنا هنا https://aka.ms/aistatus "

اتبع الارتباط إلى صفحة حالة Azure وتحقق مما إذا كان هناك انقطاع تنشيط يؤثر على Application Insights. تحقق من أن جدران الحماية وملحقات المستعرض لا تمنع الوصول إلى Live Metrics إذا لم يحدث انقطاع. على سبيل المثال، تمنع بعض ملحقات حظر الإعلانات الشائعة الاتصالات ب *.monitor.azure.com. لاستخدام الإمكانات الكاملة ل Live Metrics، إما تعطيل ملحق مانع الإعلانات أو إضافة قاعدة استثناء للمجال *.livediagnostics.monitor.azure.com إلى أداة حظر الإعلانات وجدار الحماية وما إلى ذلك.

عدد كبير غير متوقع من الطلبات livediagnostics.monitor.azure.com

تستخدم Application Insights SDKs واجهة برمجة تطبيقات REST للتواصل مع نقاط نهاية QuickPulse، والتي توفر مقاييس مباشرة لتطبيق الويب الخاص بك. بشكل افتراضي، تقوم SDKs باستطلاع نقاط النهاية مرة كل خمس ثوان للتحقق مما إذا كنت تعرض جزء Live Metrics في مدخل Microsoft Azure.

إذا فتحت جزء Live Metrics، تتحول SDKs إلى وضع تكرار أعلى وترسل مقاييس جديدة إلى QuickPulse كل ثانية. يسمح لك هذا بمراقبة وتشخيص التطبيق المباشر الخاص بك مع زمن انتقال 1 ثانية، ولكن أيضا يولد المزيد من حركة مرور الشبكة. لاستعادة التدفق العادي لنسبة استخدام الشبكة، قم بالابتعاد عن جزء Live Metrics.

إشعار

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

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