تحليل بيانات تتبع الاستخدام لـ Azure Functions في Application Insights
تتكامل Azure Functions مع Application Insights لتمكينك من مراقبة تطبيقات الدوال بشكل أفضل. يجمع Application Insights بيانات تتبع الاستخدام عن بعد التي تم إنشاؤها بواسطة تطبيق الوظائف، بما في ذلك المعلومات التي يكتبها التطبيق إلى السجلات. عادةً ما يتم تمكين تكامل Application Insights عند إنشاء تطبيق الدالة. إذا لم يكن تطبيق وظيفتك يحتوي على مجموعة مفاتيح الأجهزة، فيجب عليك أولاً تمكين تكامل Application Insights.
بشكل افتراضي، يتم تخزين البيانات التي تم جمعها من تطبيق وظيفتك في Application Insights. في مدخل Microsoft Azure، توفر Application Insights مجموعة واسعة من التمثيلات المرئية لبيانات تتبع الاستخدام عن بُعد الخاصة بك. يمكنك التعمق في سجلات الأخطاء وأحداث الاستعلام والمقاييس. توفر هذه المقالة أمثلة أساسية حول كيفية عرض البيانات التي تم تجميعها والاستعلام عنها. لمعرفة المزيد حول استكشاف بيانات تطبيق الوظيفة في Application Insights، راجع ما هو Application Insights؟.
لكي تتمكن من عرض بيانات Application Insights من تطبيق الوظيفة، يجب أن يكون لديك على الأقل أذونات دور المساهم في تطبيق الوظيفة. تحتاج أيضا إلى الحصول على إذن قارئ المراقبة على مثيل Application Insights. تمتلك هذه الأذونات افتراضياً لأي تطبيق وظيفة وفي حالة خاصية Application Insights الذي تقوم بإنشائها.
لمعرفة المزيد حول استبقاء البيانات وتكاليف التخزين المحتملة، راجع جمع البيانات والاحتفاظ بها وتخزينها في Application Insights.
عرض بيانات تتبع الاستخدام في علامة تبويب الشاشة
مع تمكين تكامل Application Insightsيمكنك عرض بيانات القياس عن بعد في علامة التبويب مراقبة.
في صفحة تطبيق الوظيفة، حدد وظيفة تم تشغيلها مرة واحدة على الأقل بعد تكوين Application Insights. ثم حدد مراقبة من الجزء الأيسر. حدد تحديث بشكل دوري، حتى تظهر قائمة استدعاءات الدالة.
إشعار
قد يستغرق الأمر خمس دقائق حتى تظهر القائمة أثناء عميل القياس عن بعد دفعات البيانات للإرسال إلى الملقم. لا ينطبق التأخير على بث المقاييس المباشرة. تتصل هذه الخدمة بمضيف الوظائف عند تحميل الصفحة، بحيث يتم دفق السجلات مباشرة إلى الصفحة.
لمشاهدة سجلات استدعاء دالة معينة حدد الارتباط العمود التاريخ (UTC) هذا الاستدعاء. يظهر إخراج التسجيل لهذا الاستدعاء في صفحة جديدة.
اختر تشغيل في Application Insights لعرض مصدر الاستعلام الذي يسترد بيانات سجل Azure Monitor في سجل Azure. في حال كانت هذه هي المرة الأولى التي تستخدم فيها Azure Log Analytics في اشتراكك، يطلب منك تمكينه.
بعد تمكين Log Analytics، يتم عرض الاستعلام التالي. يمكنك أن ترى أن نتائج الاستعلام تقتصر على آخر 30 يومًا (
where timestamp > ago(30d)
)، ولا تظهر النتائج أكثر من 20 صفًا (take 20
). في المقابل، قائمة تفاصيل الاستدعاء لوظيفتك هي لآخر 30 يومًا بدون حد.
لمزيد من المعلومات، راجع الاستعلام عن بيانات التتبع عن بعد لاحقًا في هذه المقالة.
عرض بيانات تتبع الاستخدام في Application Insights
لفتح Application Insights من تطبيق دالة في مدخل Microsoft Azure:
استعرض للوصول إلى تطبيق الوظائف في المدخل.
حدد Application Insights ضمن الإعدادات في الصفحة اليسرى.
إذا كانت هذه هي المرة الأولى التي تستخدم فيها Application Insights مع اشتراكك، فستتم مطالبتك بتمكينه. للقيام بذلك، حدد تشغيل Application Insights، ثم حدد تطبيق في الصفحة التالية.
لمزيد من المعلومات حول Application Insights، راجع وثائق Application Insights. يعرض هذا القسم بعض الأمثلة على كيفية عرض البيانات في Application Insights. إذا كنت معتادا بالفعل على Application Insights، يمكنك الانتقال مباشرة إلى الأقسام حول كيفية تكوين بيانات القياس عن بعد وتخصيصها.
يمكن أن تكون المجالات التالية في Application Insights مفيدة عند تقييم السلوك والأداء والأخطاء في وظائفك:
فحص | الوصف |
---|---|
حالات الفشل | أنشئ مخططات وتنبيهات بناءً على حالات فشل الوظائف واستثناءات الخادم. اسم العملية هو اسم الدالة. لا تظهر حالات الفشل في التبعيات إلا إذا قمت بتطبيق القياس عن بعد المخصص للتبعيات. |
اداء | تحليل مشكلات الأداء من خلال عرض استخدام الموارد والإنتاجية لمعدل النقل مثيلات دور السحابة. يمكن أن تكون بيانات الأداء هذه مفيدة لتصحيح الأخطاء السيناريوهات حيث الدالات يتم تعثر أسفل الموارد الأساسية الخاصة بك. |
المقاييس | إنشاء المخططات والتنبيهات التي تستند إلى مقاييس. تتضمن المقاييس عدد استدعاءات الوظائف ووقت التنفيذ ومعدلات النجاح. |
القياسات المباشرة | عرض بيانات المقاييس أثناء إنشائها في الوقت الفعلي القريب. |
الاستعلام عن بيانات تتبع الاستخدام
يمنحك Application Insights Analyticsالوصول إلى جميع بيانات القياس عن بُعد في شكل جداول في قاعدة بيانات. يوفر Analytics لغة استعلام لاستخراج البيانات ومعالجتها وتصورها.
اختر سجلات لاستكشاف الأحداث المسجلة أو الاستعلام عنها.
فيما يلي مثال على استعلام يوضح توزيع الطلبات لكل عامل خلال آخر 30 دقيقة.
requests
| where timestamp > ago(30m)
| summarize count() by cloud_RoleInstance, bin(timestamp, 1m)
| render timechart
تظهر الجداول المتوفرة في علامة التبويب مخطط على اليسار. يمكنك العثور على البيانات التي تم إنشاؤها بواسطة استدعاءات الدالة في الجداول التالية:
جدول | الوصف |
---|---|
traces | السجلات التي تم إنشاؤها بواسطة وقت التشغيل وحدة تحكم مقياس و تتبعات من التعليمات البرمجية الدالة. بالنسبة لاستضافة خطة Flex Consumption، traces تتضمن أيضا السجلات التي تم إنشاؤها أثناء نشر التعليمات البرمجية. |
requests | طلب واحد لكل استدعاء دالة. |
الاستثناءات | أي استثناءات طرحها وقت التشغيل. |
customMetrics | عدد الاستحضارات الناجحة والفاشلة، ومعدل النجاح، والمدة. |
customEvents | الأحداث التي يتم تعقبها بواسطة وقت التشغيل، على سبيل المثال: طلبات HTTP التي تقوم بتشغيل دالة. |
عدادات الأداء | معلومات حول أداء الملقمات التي تعمل على الدالات. |
الجداول الأخرى هي لاختبارات التوافر، والقياس عن بعد العميل والمتصفح. يمكنك تطبيق القياس عن بعد المخصص لإضافة بيانات إليها.
داخل كل جدول، توجد بعض البيانات الخاصة بالوظائف في حقل customDimensions
. على سبيل المثال، يقوم الاستعلام التالي باسترداد كافة عمليات التتبع التي لها مستوى السجلError
.
traces
| where customDimensions.LogLevel == "Error"
يوفر وقت التشغيل الحقلين customDimensions.LogLevel
و customDimensions.Category
. يمكنك توفير حقول إضافية في السجلات التي تكتبها في التعليمات البرمجية الدالة. للحصول على مثال في C#، راجع التسجيل المنظم في دليل مطور مكتبة فئة .NET.
استدعاءات دالة الاستعلام
يتم تعيين معرف فريد لكل استدعاء دالة. InvocationId
مضمن في البعد المخصص ويمكن استخدامه لربط جميع السجلات من تنفيذ دالة معينة.
traces
| project customDimensions["InvocationId"], message
ارتباط القياس عن بعد
يمكن ربط السجلات من وظائف مختلفة باستخدام operation_Id
. استخدم الاستعلام التالي لإرجاع كافة السجلات لعملية منطقية معينة.
traces
| where operation_Id == '45fa5c4f8097239efe14a2388f8b4e29'
| project timestamp, customDimensions["InvocationId"], message
| order by timestamp
النسبة المئوية لأخذ العينات
يمكن استخدام تكوين أخذ العينات لتقليل حجم بيانات تتبع الاستخدام. استخدم الاستعلام التالي لتحديد ما إذا كان أخذ العينات قيد التشغيل أم لا. إذا رأيت أن RetainedPercentage
لأي نوع أقل من 100، فهذا النوع من بيانات تتبع الاستخدام يتم أخذ عينات منه.
union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > ago(1d)
| summarize RetainedPercentage = 100/avg(itemCount) by bin(timestamp, 1h), itemType
سجلات وحدة تحكم مقياس الاستعلام
هذه الميزة في مرحلة المعاينة.
بعد تمكين كل من تسجيل وحدة التحكم بالمقياس وتكامل Application Insights، يمكنك استخدام البحث في سجل Application Insights للاستعلام عن سجلات وحدة التحكم في المقياس المنبعثة. يتم حفظ سجلات وحدة تحكم مقياس في traces
المجموعة ضمن الفئة ScaleControllerLogs.
يمكن استخدام الاستعلام التالي للبحث عن كافة سجلات وحدة تحكم المقياس لتطبيق الدالة الحالي خلال الفترة الزمنية المحددة:
traces
| extend CustomDimensions = todynamic(tostring(customDimensions))
| where CustomDimensions.Category == "ScaleControllerLogs"
يتوسع الاستعلام التالي على الاستعلام السابق لإظهار كيفية الحصول على سجلات تشير إلى تغيير في المقياس:
traces
| extend CustomDimensions = todynamic(tostring(customDimensions))
| where CustomDimensions.Category == "ScaleControllerLogs"
| where message == "Instance count changed"
| extend Reason = CustomDimensions.Reason
| extend PreviousInstanceCount = CustomDimensions.PreviousInstanceCount
| extend NewInstanceCount = CustomDimensions.CurrentInstanceCount
سجلات توزيع التعليمات البرمجية ل Flex Consumption للاستعلام
هام
خطة Flex Consumption قيد المعاينة حاليا.
يمكن استخدام الاستعلام التالي للبحث عن جميع سجلات نشر التعليمات البرمجية لتطبيق الوظائف الحالي خلال الفترة الزمنية المحددة:
traces
| extend deploymentId = customDimensions.deploymentId
| where deploymentId != ''
| project timestamp, deploymentId, message, severityLevel, customDimensions, appName
مقاييس خطة الاستهلاك الخاصة
عند التشغيل في خطة الاستهلاك، يتم قياس تكلفة تنفيذ وظيفة واحدة بالجيجابايت بالثواني. يتم حساب تكلفة التنفيذ من خلال الجمع بين استخدام الذاكرة ووقت التنفيذ. لمعرفة المزيد، راجع تقدير تكاليف خطة الاستهلاك.
استعلامات القياس عن بُعد التالية خاصة بالمقاييس التي تؤثر على تكلفة تشغيل الوظائف في خطة الاستهلاك.
تحديد استخدام الذاكرة
ضمن Monitoring، قم بتحديدLogs (Analytics)، ثم انسخ استعلام القياس عن بعد التالي والصقه في نافذة الاستعلام وحدد Run. يقوم هذا الاستعلام بإرجاع إجمالي استخدام الذاكرة في كل وقت يتم أخذ عينات منه.
performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value
تبدو النتائج مثل المثال التالي:
الطابع الزمني [التوقيت العالمي المتفق عليه] | الاسم | قيمة |
---|---|---|
9/12/2019, 1:05:14.947 AM | وحداتِ البايت الخاصة | 209932288 |
9/12/2019, 1:06:14.994 AM | وحداتِ البايت الخاصة | 212189184 |
9/12/2019, 1:06:30.010 AM | وحداتِ البايت الخاصة | 231714816 |
9/12/2019, 1:07:15.040 AM | وحداتِ البايت الخاصة | 210591744 |
9/12/2019, 1:12:16.285 AM | وحداتِ البايت الخاصة | 216285184 |
9/12/2019, 1:12:31.376 AM | وحداتِ البايت الخاصة | 235806720 |
حدد المدة
يقوم جهاز مراقبة (Azure Monitor) بتتبع القياسات على مستوى الموارد، والتي بالنسبة للوظائف هي Function App. يقوم تكامل Application Insights بإصدار القياسات على أساس كل وظيفة. فيما يلي مثال لاستعلام تحليلات للحصول على متوسط مدة الوظيفة:
customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
الاسم | averageDurationMilliseconds |
---|---|
QueueTrigger AvgDurationMs | 16.087 |
QueueTrigger MaxDurationMs | 90.249 |
QueueTrigger MinDurationMs | 8.522 |
الخطوات التالية
تعرف على المزيد حول مراقبة Azure Functions: