مقاييس Application Insights المستندة إلى السجل

تتيح لك المقاييس المستندة إلى سجل Application Insights تحليل صحة التطبيقات التي تتم مراقبتها وإنشاء لوحات معلومات قوية وتكوين التنبيهات. هناك نوعان من المقاييس:

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

تفسير واستخدام الاستعلامات من هذه المقالة

تسرد هذه المقالة مقاييس ذات تجميعات وأبعاد مدعومة. تتضمن التفاصيل حول المقاييس المستندة إلى السجل عبارات استعلام Kusto الأساسية. للراحة، يستخدم كل استعلام افتراضيات لتفاصيل الوقت ونوع المخطط، وأحيانًا بُعد التقسيم الذي يبسط استخدام الاستعلام في Log Analytics دون الحاجة إلى التعديل.

عند رسم نفس المقياس في مستكشف المقاييس، لا توجد أي افتراضيات - يتم تعديل الاستعلام بشكل ديناميكي استنادًا إلى إعدادات المخطط:

  • يتم ترجمة النطاق الزمني المحدد إلى إضافية حيث الطابع الزمني... عبارة لاختيار الأحداث فقط من النطاق الزمني المحدد. على سبيل المثال، مخطط يعرض البيانات لآخر 24 ساعة، يتضمن الاستعلام | حيث الطابع الزمني > مضت(24 ساعة).

  • يتم وضع الدقة الزمنية المحددة في التلخيص النهائي ... بواسطة عبارة bin(timestamp, [time grain]).

  • يتم ترجمة أي أبعاد تصفية محددة إلى عبارات إضافية.

  • يتم ترجمة بُعد مخطط التقسيم المحدد إلى خاصية تلخيص إضافية. على سبيل المثال، إذا قمت بتقسيم المخطط حسب الموقع،وبالرسم باستخدام دقة الوقت 5 دقائق، يتم تلخيص عبارة تلخيص... بواسطة bin(timestamp, 5 m)، الموقع.

إشعار

إذا كنت جديدًا على لغة استعلام Kusto، ابدأ بنسخ ولصق عبارات Kusto في جزء استعلام Log Analytics دون إجراء أي تعديلات. انقر فوق تشغيل لرؤية المخطط الأساسي. عندما تبدأ في فهم بناء جملة لغة الاستعلام، يمكنك البدء في إجراء تعديلات صغيرة ورؤية تأثير التغيير. استكشاف البيانات الخاصة بك هو وسيلة رائعة لبدء تحقيق القوة الكاملة لـLog Analytics وAzure Monitor.

مقاييس التوفر

تمكنك المقاييس في فئة التوفر من رؤية حالة تطبيق الويب الخاص بك كما هو ملاحظ من النقاط حول العالم. قم بتكوين اختبارات التوفر لبدء استخدام أي مقاييس من هذه الفئة.

التوافر (availabilityResults/availabilityPercentage)

يظهر مقياس التوفر النسبة المئوية لاختبارات الويب التي لم تكتشف أي مشكلات. أقل قيمة ممكنة هي 0، مما يشير إلى فشل كافة عمليات تشغيل اختبار الويب. تعني قيمة 100 أن جميع عمليات تشغيل اختبار الويب اجتازت معايير التحقق من الصحة.

وحدة القياس التجميعات المعتمدة الأبعاد المدعومة
النسبة المئوية المتوسط موقع تشغيل، اسم الاختبار
availabilityResults 
| summarize sum(todouble(success == 1) * 100) / count() by bin(timestamp, 5m), location
| render timechart

مدة اختبار التوفر (availabilityResults/المدة)

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

وحدة القياس التجميعات المعتمدة الأبعاد المدعومة
مللي ثانية متوسط، الحد الأدنى، الحد الأقصى موقع التشغيل، اسم الاختبار، نتيجة الاختبار
availabilityResults
| where notempty(duration)
| extend availabilityResult_duration = iif(itemType == 'availabilityResult', duration, todouble(''))
| summarize sum(availabilityResult_duration)/sum(itemCount) by bin(timestamp, 5m), location
| render timechart

اختبارات التوفر (availabilityResults/count)

يعكس مقياس اختبارات التوفر عدد اختبارات الويب التي يديرها Azure Monitor.

وحدة القياس التجميعات المعتمدة الأبعاد المدعومة
عدد عدد موقع التشغيل، اسم الاختبار، نتيجة الاختبار
availabilityResults
| summarize sum(itemCount) by bin(timestamp, 5m)
| render timechart

مقاييس المتصفح

يتم جمع مقاييس المتصفح من قبل Application Insights JavaScript SDK من متصفحات المستخدم النهائي الحقيقية. فهي توفر رؤى رائعة حول تجربة المستخدمين مع تطبيق الويب الخاص بك. لا يتم عادة أخذ عينات من مقاييس المتصفح، مما يعني أنها توفر دقة أعلى لأرقام الاستخدام مقارنة بالمقاييس من جانب الخادم التي قد تكون منحرفة عن طريق أخذ العينات.

إشعار

لجمع مقاييس المتصفح، يجب أن يكون تطبيقك مزودًا بأجهزة Application Insights JavaScript SDK.

وقت تحميل صفحة المستعرض (browserTimings/totalDuration)

الوقت من طلب المستخدم حتى يتم تحميل DOM وصفحات الأنماط والبرامج النصية والصور.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا
مللي ثانية متوسط، الحد الأدنى، الحد الأقصى بلا
browserTimings
| where notempty(totalDuration)
| extend _sum = totalDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

وقت معالجة العميل (browserTiming/processingDuration)

الوقت بين تلقي البايت الأخير من مستند وحتى يتم تحميل DOM. قد لا تزال معالجة الطلبات غير المتزامنة.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا
مللي ثانية متوسط، الحد الأدنى، الحد الأقصى بلا
browserTimings
| where notempty(processingDuration)
| extend _sum = processingDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum)/sum(_count) by bin(timestamp, 5m)
| render timechart

وقت صفحة تحميل شبكة الاتصال (browserTimings/networkDuration)

الوقت بين طلب المستخدم واتصال الشبكة. يتضمن بحث DNS واتصال النقل.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا
مللي ثانية متوسط، الحد الأدنى، الحد الأقصى بلا
browserTimings
| where notempty(networkDuration)
| extend _sum = networkDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

تلقي وقت الاستجابة (browserTimings/receiveDuration)

الوقت بين البايت الأول والأخير، أو حتى قطع الاتصال.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا
مللي ثانية متوسط، الحد الأدنى، الحد الأقصى بلا
browserTimings
| where notempty(receiveDuration)
| extend _sum = receiveDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

إرسال وقت الطلب (browserTimings/sendDuration)

الوقت بين اتصال الشبكة وتلقي البايت الأول.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا
مللي ثانية متوسط، الحد الأدنى، الحد الأقصى بلا
browserTimings
| where notempty(sendDuration)
| extend _sum = sendDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

مقاييس الفشل

تظهر المقاييس في الفشل مشاكل في معالجة الطلبات والمكالمات التبعية والاستثناءات التي تم طرحها.

استثناءات المتصفح (exceptions/browser)

يعكس هذا المقياس عدد الاستثناءات التي تم طرحها من رمز التطبيق قيد التشغيل في المتصفح. يتم تضمين الاستثناءات التي يتم تعقبها باستدعاء Application Insights API trackException() في المقياس.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا ملاحظات
عدد عدد بلا يستخدم الإصدار المستند إلى السجل تجميع المجموع
exceptions
| where notempty(client_Browser)
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

فشل استدعاء التبعية (dependencies/failed)

عدد مكالمات التبعية الفاشلة.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا ملاحظات
عدد عدد بلا يستخدم الإصدار المستند إلى السجل تجميع المجموع
dependencies
| where success == 'False'
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

الاستثناءات (الاستثناءات/العدد)

في كل مرة عند تسجيل استثناء إلى Application Insights هناك استدعاء إلى أسلوب trackException() في SDK. يظهر مقياس الاستثناءات عدد الاستثناءات المسجلة.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا ملاحظات
عدد عدد اسم دور السحابة، مثيل دور السحابة، نوع الجهاز يستخدم الإصدار المستند إلى السجل تجميع المجموع
exceptions
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

الطلبات الفاشلة (requests/failed)

عدد طلبات الخادم المتعقبة التي تم وضع علامة عليها على أنها فاشلة. بشكل افتراضي، يضع Application Insights SDK تلقائيًّا على كل طلب خادم الذي يعيد رمز استجابة HTTP 5xx أو 4xx كطلب فاشل. يمكنك تخصيص هذا المنطق عن طريق تعديل خاصية النجاح لعنصر قياس الطلب عن بُعد في مُهيئ القياس عن بُعد المخصص.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا ملاحظات
عدد عدد مثيل دور السحابة، اسم دور السحابة، حركة المرور الحقيقية أو الاصطناعية، أداء الطلب، رمز الاستجابة يستخدم الإصدار المستند إلى السجل تجميع المجموع
requests
| where success == 'False'
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

استثناءات الخادم (الاستثناءات/الخادم)

يوضح هذا المقياس عدد استثناءات الخادم.

وحدة القياس التجميعات المعتمدة الأبعاد المجمعة مسبقًا ملاحظات
عدد عدد اسم دور السحابة، مثيل دور السحابة يستخدم الإصدار المستند إلى السجل تجميع المجموع
exceptions
| where isempty(client_Browser)
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

عدادات الأداء

استخدم المقاييس في فئة عدادات الأداء للوصول إلى عدادات أداء النظام التي تم جمعها بواسطة Application Insights.

الذاكرة المتوفرة (performanceCounters/availableMemory)

performanceCounters
| where ((category == "Memory" and counter == "Available Bytes") or name == "availableMemory")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

معدل الاستثناء (performanceCounters/exceptionRate)

performanceCounters
| where ((category == ".NET CLR Exceptions" and counter == "# of Exceps Thrown / sec") or name == "exceptionRate")
| extend performanceCounter_value = iif(itemType == 'performanceCounter',value,todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

HTTP وقت تنفيذ الطلب (performanceCounters/requestExecutionTime)

performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Request Execution Time") or name == "requestExecutionTime")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

معدل طلب HTTP (performanceCounters/requestsPerSecond)

performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests/Sec") or name == "requestsPerSecond")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

طلبات HTTP في قائمة انتظار التطبيق (performanceCounters/requestsInQueue)

performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests In Application Queue") or name == "requestsInQueue")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

معالجة وحدة المعالجة المركزية (performanceCounters/processCpuPercentage)

يوضح المقياس مقدار إجمالي سعة المعالج التي تستهلكها العملية التي تستضيف التطبيق الذي تتم مراقبته.

وحدة القياس التجميعات المعتمدة الأبعاد المدعومة
النسبة المئوية متوسط، الحد الأدنى، الحد الأقصى مثيل دور السحابة
performanceCounters
| where ((category == "Process" and counter == "% Processor Time Normalized") or name == "processCpuPercentage")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

إشعار

يتراوح نطاق المقياس بين 0 و100 * n، حيث n هي عدد الذواكر الأساسية المتوفرة لوحدة المعالجة المركزية. على سبيل المثال، يمكن أن تمثّل قيمة المقياس 200% استخدام كامل لذاكرتين أساسيتين لوحدة معالجة مركزية، أو نصف استخدام لأربع ذواكر أساسية لوحدة معالجة مركزية، وهكذا. المعالجة الموحدة لوحدة المعالجة المركزية هي مقياس بديل يجمعه العديد من عِدد تطوير البرامج ويمثّل القيمة نفسها ولكنه يقسمها على عدد الذواكر الرئيسية المتوفرة لوحدة المعالجة المركزية. وبالتالي، يكون نطاق مقياس المعالجة الموحدة لوحدة المعالجة المركزية من 0 حتى 100.

معدل عمليات التنفيذ (performanceCounters/processIOBytesPerSecond)

وحدة القياس التجميعات المعتمدة الأبعاد المدعومة
وحدات البايت لكل الثانية متوسط، الحد الأدنى، الحد الأقصى مثيل دور السحابة
performanceCounters
| where ((category == "Process" and counter == "IO Data Bytes/sec") or name == "processIOBytesPerSecond")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

معالجة وحدات البايت الخاصة (performanceCounters/processPrivateBytes)

مقدار الذاكرة غير المشتركة التي خصصتها العملية المراقبة لبياناتها.

وحدة القياس التجميعات المعتمدة الأبعاد المدعومة
بايت متوسط، الحد الأدنى، الحد الأقصى مثيل دور السحابة
performanceCounters
| where ((category == "Process" and counter == "Private Bytes") or name == "processPrivateBytes")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

وقت المعالج (performanceCounters/processorCpuPercentage)

استهلاك المعالج بواسطة كافة العمليات التي تعمل على مثيل الخادم الخاضع للمراقبة.

وحدة القياس التجميعات المعتمدة الأبعاد المدعومة
النسبة المئوية متوسط، الحد الأدنى، الحد الأقصى مثيل دور السحابة

إشعار

مقياس وقت المعالج غير متوفر للتطبيقات المستضافة في Azure App Services. استخدم مقياس معالجة وحدة المعالجة المركزية لتتبع استخدام وحدة المعالجة المركزية لتطبيقات الويب المُستضافة في خدمات التطبيقات.

performanceCounters
| where ((category == "Processor" and counter == "% Processor Time") or name == "processorCpuPercentage")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

مقاييس الخادم

استدعاءات التبعية (dependencies/count)

هذا المقياس يتعلق بعدد استدعاءات التبعية.

dependencies
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

مدة التبعية (dependencies/duration)

يشير هذا المقياس إلى مدة استدعاءات التبعية.

dependencies
| where notempty(duration)
| extend dependency_duration = iif(itemType == 'dependency',duration,todouble(''))
| extend _sum = dependency_duration
| extend _count = itemCount
| extend _sum = _sum*_count
| summarize sum(_sum)/sum(_count) by bin(timestamp, 1m)
| render timechart

طلبات الخادم (الطلبات/العدد)

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

requests
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

زمن استجابة الخادم (requests/duration)

يعكس هذا المقياس الوقت الذي استغرقته الخوادم لمعالجة الطلبات الواردة.

requests
| where notempty(duration)
| extend request_duration = iif(itemType == 'request', duration, todouble(''))
| extend _sum = request_duration
| extend _count = itemCount
| extend _sum = _sum*_count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 1m)
| render timechart

مقاييس الاستخدام

وقت تحميل عرض الصفحة (pageViews/duration)

يشير هذا المقياس إلى مقدار الوقت الذي استغرقه تحميل أحداث PageView.

pageViews
| where notempty(duration)
| extend pageView_duration = iif(itemType == 'pageView', duration, todouble(''))
| extend _sum = pageView_duration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render barchart

طرق عرض الصفحة (مشاهدات الصفحة/العدد)

عدد أحداث PageView المسجلة مع تطبيق TrackPageView() Insights API.

pageViews
| summarize sum(itemCount) by bin(timestamp, 1h)
| render barchart

الجلسات (sessions/count)

يشير هذا المقياس إلى عدد معرفات جلسة العمل المميزة.

union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(session_Id)
| summarize dcount(session_Id) by bin(timestamp, 1h)
| render barchart

التتبعات (التتبعات/ العدد)

عدد عبارات التتبع المسجلة مع تطبيق TrackTrace() Insights استدعاء API.

traces
| summarize sum(itemCount) by bin(timestamp, 1h)
| render barchart

المستخدمون (users/count)

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

union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(user_Id)
| summarize dcount(user_Id) by bin(timestamp, 1h)
| render barchart

المستخدمون، مصادق عليهم (users/authenticated)

عدد المستخدمين المميزين الذين قاموا بالمصادقة في التطبيق الخاص بك.

union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(user_AuthenticatedId)
| summarize dcount(user_AuthenticatedId) by bin(timestamp, 1h)
| render barchart