تنفيذ Application Insights

مكتمل

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

المراقبة: إنشاء رؤية مستمرة

بعد تثبيت Application Insights في تطبيقك، قم بإعداد اختبارات الويب للتوفر لمراقبة التطبيق الخاص بك من وجهات نظر خارجية. ثم قم بتنفيذ ممارسات المراقبة هذه:

إعداد لوحات المعلومات لرؤية الفريق

قم بإنشاء لوحة معلومات لغرفة فريقك لمراقبة المقاييس الهامة:

المقاييس الرئيسية المراد عرضها:

  • مقاييس التحميل: معدل الطلب ، المستخدمون المتزامنون ، الإنتاجية
  • الاستجابه: النسب المئوية لوقت الاستجابة (50 ، 95 ، 99)
  • أداء التبعية: أوقات استعلام قاعدة البيانات ، وزمن انتقال استدعاء واجهة برمجة التطبيقات ، ومعدلات الوصول إلى ذاكرة التخزين المؤقت
  • المقاييس من جانب العميل: أوقات تحميل الصفحة، أداء مكالمة AJAX
  • معدلات الخطأ: الطلبات الفاشلة والاستثناءات وحالات فشل التبعية

أفضل ممارسات لوحة المعلومات:

  • التحديث في الوقت الفعلي أثناء عمليات النشر
  • العرض على الشاشات في مناطق الفريق
  • مؤشرات صحة رمز اللون (أخضر / أصفر / أحمر)
  • تضمين مقاييس الامتثال لاتفاقية مستوى الخدمة
  • عرض المؤشرات بمرور الوقت إلى جانب القيم الحالية

تحديد مشكلات الأداء

اكتشف الطلبات الأبطأ والأكثر فشل:

  • فرز الطلبات حسب وقت الاستجابة للعثور على الاختناقات
  • تحديد الطلبات ذات أعلى معدلات الفشل
  • ربط الطلبات البطيئة بالتبعيات
  • تتبع انحدار الأداء عبر عمليات النشر
  • إعطاء الأولوية للتحسين بناء على تأثير المستخدم

التحقق من صحة عمليات النشر باستخدام البث المباشر

مشاهدة البث المباشر عند نشر إصدار جديد:

  • تعرف على الفور عن أي تدهور
  • مراقبة معدلات الخطأ في الوقت الفعلي (تحديث لمدة 1 ثانية)
  • الاطلاع على الطلبات الفاشلة فور حدوثها
  • تتبع حالات فشل التبعية
  • التحقق من الأداء قبل إكمال الطرح

الكشف والتشخيص: حل سريع للمشكلات

عندما تتلقى تنبيها أو تكتشف مشكلة، يوفر Application Insights إمكانات تشخيصية شاملة:

تقييم تأثير المستخدم

حدد عدد المستخدمين المتأثرين:

  • الاستعلام عن بعد لعدد المستخدمين المتأثرين
  • تحديد التوزيع الجغرافي للتأثير
  • تحديد ما إذا كانت المشكلة تؤثر على جميع المستخدمين أو شرائح معينة
  • حساب تأثير الأعمال (الإيرادات المفقودة ، المعاملات المهجورة)
  • تحديد أولويات الحل بناء على شدة تأثير المستخدم

مثال على استعلام KQL:

requests
| where timestamp > ago(1h)
| where success == false
| summarize AffectedUsers = dcount(user_Id), FailedRequests = count() by resultCode

ربط حالات الفشل بالاستثناءات واستدعاءات التبعية والتتبعات:

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

سير عمل التحقيق:

  1. ابدأ بطلب فاشل في البحث التشخيصي
  2. عرض جميع بيانات تتبع الاستخدام ذات الصلة باستخدام معرف العملية
  3. فحص استدعاءات التبعية لتحديد الخدمات البطيئة/الفاشلة
  4. مراجعة تفاصيل الاستثناء وتتبع المكدس
  5. تحقق من سجلات التطبيق للحصول على سياق إضافي

أدوات التشخيص العميق

فحص ملف التعريف واللقطات وتفريغ المكدس وسجلات التتبع:

منشئ ملفات التعريف:

  • الاطلاع على تقسيم الأداء على مستوى التعليمات البرمجية
  • تحديد الطرق التي استهلكت معظم الوقت
  • البحث عن خوارزميات أو استعلامات غير فعالة

مصحح أخطاء اللقطة:

  • التقاط لقطات الذاكرة من الإنتاج
  • عرض قيم المتغيرات المحلية في وقت الاستثناء
  • تصحيح الأخطاء دون التكاثر محليا

مكدسات المكدس:

  • تتبع المكدس الكامل لكل استثناء
  • الانتقال من الاستثناء إلى التعليمات البرمجية المصدر
  • فهم سلسلة المكالمات التي تؤدي إلى الخطأ

سجلات التتبع:

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

البناء والقياس والتعلم: التطوير المستند إلى البيانات

قم بقياس فعالية كل ميزة جديدة تقوم بنشرها باستخدام نهج منظم يستند إلى البيانات:

استراتيجية قياس الخطة

خطط لقياس كيفية استخدام العملاء لتجربة المستخدم الجديدة أو ميزات الأعمال:

قبل التطوير:

  • تحديد مقاييس النجاح (معدل الاعتماد ، معدل التحويل ، المشاركة)
  • تحديد إجراءات المستخدم الرئيسية التي يجب تتبعها
  • تحديد معايير التجزئة (نوع المستخدم والموقع الجغرافي والجهاز)
  • إنشاء مقاييس أساسية للمقارنة
  • تحديد أهداف لنجاح الميزة

أبعاد القياس:

  • تبن: ما هي النسبة المئوية للمستخدمين الذين يجربون الميزة الجديدة؟
  • المشاركه: كم مرة يتفاعل المستخدمون معها؟
  • انجاز: هل ينهي المستخدمون سير العمل؟
  • اداء: هل تعمل الميزة بشكل جيد؟
  • رضا: هل المستخدمون ناجحون وسعدون؟

تنفيذ بيانات تتبع الاستخدام المخصصة

اكتب بيانات تتبع الاستخدام المخصصة في التعليمات البرمجية الخاصة بك لالتقاط الأحداث الخاصة بالنشاط التجاري:

الأحداث المخصصة:

telemetryClient.TrackEvent("FeatureUsed",
    properties: new Dictionary<string, string> {
        {"FeatureName", "AdvancedSearch"},
        {"UserTier", "Premium"}
    },
    metrics: new Dictionary<string, double> {
        {"SearchResultCount", 42},
        {"SearchDurationMs", 150}
    });

المقاييس المخصصة:

telemetryClient.TrackMetric("CartValue", orderTotal);
telemetryClient.TrackMetric("ItemsInCart", itemCount);

أفضل ممارسات الأجهزة:

  • استخدام اصطلاحات تسمية متسقة
  • إضافة خصائص ذات صلة للتقسيم
  • قم بتضمين الطوابع الزمنية للتحليل الزمني
  • عدم تتبع معلومات التعريف الشخصية (PII)
  • حافظ على القياس عن بعد خفيف الوزن (تجنب الكاردينالية العالية)

اتخاذ قرارات تستند إلى البيانات

قم بتأسيس دورة التطوير التالية على أدلة دامغة من بيانات تتبع الاستخدام الخاصة بك:

سير عمل التحليل:

  1. مقارنة المقاييس: أداء الميزة مقابل خط الأساس
  2. تحليل المقطع: الأداء عبر مجموعات المستخدمين المختلفة
  3. تحليل القمع: نقاط التسليم في التدفقات متعددة الخطوات
  4. تحليل الأتراب: الاحتفاظ بالمستخدمين الذين تبنوا الميزة
  5. تحليل الأثر: الارتباط بنتائج الأعمال

إطار القرار:

إذا تجاوزت المقاييس الأهداف المستهدفة:

  • استثمر في توسيع الميزة
  • تطبيق الدروس المستفادة على ميزات مماثلة
  • ضع في اعتبارك جعل الميزة أكثر بروزا

إذا كانت المقاييس تحقق أهدافا:

  • الصيانة والمراقبة
  • التحسينات الإضافية بناء على التعليقات
  • نقل الموارد إلى أولويات أخرى

إذا كان أداء المقاييس ضعيفا:

  • تحليل السبب (قابلية الاستخدام ، قابلية الاكتشاف ، عرض القيمة)
  • تحسينات اختبار A / B
  • ضع في اعتبارك الإهمال إذا لم يكن هناك طريق للنجاح

مثال على السيناريو: يظهر محرك التوصية الجديد 60% اعتماد ولكن 15% فقط (كان الهدف 25%). يكشف التحليل أن التوصيات دقيقة ولكن واجهة المستخدم مربكة. يركز العدو التالي على تحسينات تجربة المستخدم بدلا من تحسينات الخوارزمية.

البدء: مناهج التنفيذ

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

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

قبل أن تبدأ، ستحتاج إلى اشتراك في Microsoft Azure:

خيارات الاشتراك:

  • الاشتراك المجاني: لا حاجة لبطاقة ائتمان للإصدار التجريبي المجاني
  • الدفع أولا بأول: ادفع فقط مقابل ما تستخدمه
  • اتفاقية المؤسسة: الأسعار المتفاوض عليها للمنظمات
  • Azure للطلاب: ساعات معتمدة مجانية للطلاب

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

  • الطبقة المجانية: أول 5 جيجابايت / شهر متضمنة الابتلاع
  • الدفع لكل جيجابايت: بالإضافة إلى الفئة المجانية ، ادفع فقط مقابل البيانات التي يتم استيعابها
  • مستويات الالتزام: خصومات للاستخدام الذي يمكن التنبؤ به

الوصول التنظيمي: إذا كان لدى مؤسستك اشتراك بالفعل، فيمكنها إضافة حساب Microsoft الخاص بك إليه. اتصل بمسؤول Azure للوصول.

نهج التنفيذ

هناك عدة طرق للبدء. ابدأ بأي شيء يناسبك. يمكنك إضافة الآخرين لاحقا.

النهج 1: أجهزة وقت التشغيل

قم بتشغيل تطبيق الويب الخاص بك على الخادم دون تغييرات في التعليمات البرمجية:

Advantages:

  • يتجنب أي تحديث للرمز: لا حاجة لإعادة التحويل البرمجي أو إعادة التوزيع
  • المراقبة الفورية: بدء جمع بيانات تتبع الاستخدام في غضون دقائق
  • لا توجد تبعيات SDK: لا توجد تغييرات على تبعيات التطبيق
  • جاهز للإنتاج: آمن لتطبيقات الإنتاج الحالية

Requirements:

  • وصول المسؤول إلى الخادم الخاص بك: مطلوب لتثبيت عامل المراقبة
  • المنصات المدعومة فقط: لا تدعم جميع الأنظمة الأساسية أجهزة وقت التشغيل

المنصات المدعومة:

IIS محليا أو على جهاز ظاهري:

  • Windows Server مع IIS 7.5 أو أحدث
  • تطبيقات ASP.NET (إطار عمل أو أساسي)
  • تثبيت مراقب الحالة أو عامل Application Insights
  • الأدوات تلقائيا دون تغييرات في التعليمات البرمجية

تطبيق الويب Azure أو الجهاز الظاهري:

  • تمكين Application Insights من خلال مدخل Microsoft Azure
  • التكامل بنقرة واحدة ل Azure App Service
  • ملحق الجهاز الظاهري لأجهزة Azure الظاهرية
  • الأجهزة التلقائية بدون تغييرات في التعليمات البرمجية

J2EE:

  • تطبيقات Java التي تعمل على Tomcat أو JBoss أو WebLogic
  • الأجهزة القائمة على الوكيل
  • يلتقط الطلبات والتبعيات والاستثناءات
  • يعمل مع Spring Boot ، جاكرتا EE

النهج 2: تكامل SDK في وقت التطوير

أضف Application Insights إلى التعليمات البرمجية الخاصة بك للتحكم الكامل والتخصيص:

Advantages:

  • القياس عن بعد المخصص: كتابة الأحداث والمقاييس الخاصة بالنشاط التجاري
  • التحكم الكامل: تكوين أخذ العينات والتصفية والمعالجات
  • جميع المنصات: لا تقتصر على تطبيقات الويب
  • تصحيح الأخطاء المحلي: اختبار القياس عن بعد أثناء التطوير

Requirements:

  • الوصول إلى كود المصدر: تعديل التطبيق وإعادة تجميعه
  • تكامل SDK: أضف حزم NuGet/Maven/npm
  • وقت التطوير: الإعداد الأولي والاختبار المطلوب

المنصات المدعومة:

Visual Studio (ASP.NET):

  • تحديث Visual Studio 2013 2 أو أحدث
  • تثبيت حزمة NuGet
  • الأجهزة التلقائية + القياس عن بعد المخصص
  • IntelliSense لواجهات برمجة تطبيقات القياس عن بعد

جافا:

  • تبعية Maven أو Gradle
  • دعم التكوين التلقائي ل Spring Boot
  • أطر جاكرتا EE و Micronaut
  • الأجهزة اليدوية للأحداث المخصصة

Node.js:

  • تركيب حزمة NPM
  • Express ، Koa ، دعم إطار عمل سعيد
  • تتبع التبعية التلقائي
  • تتبع الأحداث والمقاييس المخصصة

منصات أخرى:

  • بايثون (قارورة ، جانغو)
  • روبي (ريلز ، سيناترا)
  • PHP (Laravel ، Symfony)
  • Go و Rust والمزيد من مجموعات SDK للمجتمع

الأجهزة من جانب العميل

قم بتجهيز صفحات الويب الخاصة بك للمراقبة الشاملة:

إمكانيات JavaScript SDK:

  • مشاهدات الصفحة: تتبع التنقل في SPAs
  • مكالمات AJAX: مراقبة طلبات واجهة برمجة التطبيقات من المتصفح
  • الاستثناءات من جانب العميل: التقاط أخطاء JavaScript
  • مقاييس الأداء: وقت تحميل الصفحة وتوقيت الموارد
  • تحليلات المستخدم: تتبع الجلسة وتدفقات المستخدمين

تنفيذ:

  • إضافة مقتطف جافا سكريبت إلى صفحات HTML
  • التتبع التلقائي لمشاهدة الصفحة
  • ربط بيانات تتبع الاستخدام للعميل والخادم
  • يعمل مع أطر عمل React و Angular و Vue

مراقبة تطبيقات الهاتف المحمول

تحليل استخدام تطبيق الأجهزة المحمولة من خلال التكامل مع Visual Studio App Center:

دعم منصة الهاتف المحمول:

  • iOS (سويفت ، Objective-C)
  • Android (Java ، Kotlin)
  • React Native
  • Xamarin, رفرفة

الميزات الخاصة بالأجهزة الجوالة:

  • الإبلاغ عن الأعطال
  • التحليلات (الجلسات والأحداث وخصائص المستخدمين)
  • تتبع الإشعارات الفورية
  • تكامل التوزيع والاختبار

المراقبة الاصطناعية

اختبارات التوفر:

أنواع الاختبار:

  • اختبارات اختبار اتصال عنوان URL: فحوصات بسيطة لتوفر نقطة النهاية
  • اختبارات الويب متعددة الخطوات: سيناريوهات المستخدم المسجلة
  • المسار المخصص التوفر: تتبع التوفر المستند إلى التعليمات البرمجية

تكوين الاختبار:

  • اختبار اتصال موقع الويب الخاص بك بانتظام من المواقع الموزعة
  • المراقبة من 5+ مناطق Azure العالمية
  • التنبيه عندما تصبح نقاط النهاية غير متوفرة
  • قياس وقت الاستجابة من وجهات نظر المستخدم

اختيار النهج الصحيح

السيناريو النهج الموصى به
تطبيق الإنتاج الحالي، لا يمكن تعديل التعليمات البرمجية أجهزة وقت التشغيل
تطوير تطبيقات جديدة تكامل SDK في وقت التطوير
تحتاج إلى أحداث تجارية مخصصة تكامل SDK (مطلوب)
تطبيق الويب فقط أجهزة وقت التشغيل (أسهل)
تطبيق الهاتف المحمول مركز تطبيقات Visual Studio + نتائج تحليلات التطبيق
مراقبة كاملة (خادم + عميل) تكامل SDK + مقتطف JavaScript
التوفر الخارجي فقط اختبارات التوفر