تصميم وتنفيذ المقاييس والاستعلامات
يسمح جمع المقاييس المرتبطة بدورة حياة المشروع للمؤسسات باكتساب رؤى حول ممارسات تطوير البرامج الخاصة بها وتبسيط عمليات DevOps الخاصة بها. من خلال تمكين جمع بيانات تتبع الاستخدام من أنشطة المشروع، يمكن للفرق تتبع عمليات تشغيل البنية الأساسية لبرامج ربط العمليات التجارية وتحديثات عناصر العمل والأحداث الأخرى المتعلقة ب DevOps في الوقت الفعلي.
لماذا مقاييس المشروع مهمة
هذا النهج مهم لعدة أسباب:
تعزيز الرؤية:
- الاطلاع على حالة الوقت الفعلي لجميع المشاريع والفرق
- فهم توزيع العمل والقدرة الاستيعابية
- تتبع التقدم نحو المعالم والمواعيد النهائية
- تحديد التبعيات وأدوات الحظر مبكرا
مراقبة الأداء:
- قياس سرعة الفريق وإنتاجيته
- تتبع اتجاهات وقت الدورة والمهلة الزمنية
- مراقبة معدلات نجاح البناء والنشر
- تحديد أنماط تدهور الأداء
تحسين دورة حياة تطوير البرمجيات:
- تحديد الاختناقات في سير عمل المشروع
- اتخاذ قرارات مستندة إلى البيانات بشأن تحسينات العملية
- التحسين المستمر لممارسات التطوير
- ربط أنشطة التطوير بأداء التطبيق
الفوائد الرئيسية:
- تمكين الفرق من اتخاذ قرارات تستند إلى البيانات
- يوفر مقاييس موضوعية للاستعراضات الاستعادية
- يدعم تخطيط السعة والتنبؤ بها
- تمكين إدارة المخاطر بشكل استباقي
مقارنة الأنظمة الأساسية: GitHub مقابل Azure DevOps
يتضمن كل من GitHub وAzure DevOps دعما لجمع وتحليل بيانات تتبع الاستخدام المتعلقة بالمشروع، ولكن قدراتهما تختلف اختلافا كبيرا:
قدرات تتبع مشروع GitHub
ميزات GitHub Insights:
- المقاييس المضمنة: نشاط المستودع ، أداء طلب السحب ، المشاركة المجتمعية
- عرض النبض: ملخص نشاط المستودعات
- الرسم البياني للمساهمين: مساهمات الكود بمرور الوقت
- تحليلات حركة المرور: المشاهدات والنسخ والإحالات
القيود:
- تحليلات تتبع المشروع محدودة مقارنة بأدوات إدارة المشاريع المخصصة
- مقاييس محددة مسبقا أقل لإدارة المشاريع المرنة
- إمكانات التصور الأساسية
- خيارات محدودة لإعداد التقارير المخصصة
- لا يوجد تكامل مضمن مع Azure Monitor
إمكانات تعقب مشروع Azure DevOps
ميزات Azure DevOps Analytics:
- مجموعة شاملة من ميزات التحليلات وإعداد التقارير المصممة خصيصا لمراقبة المشروع
- لوحات معلومات قابلة للتخصيص: أدوات السحب والإفلات لطرق العرض المخصصة
- قدرات إعداد التقارير الغنية: تكامل Power BI، موجزات OData
- مجموعة واسعة من المقاييس والاستعلامات المحددة مسبقا: السرعة ، الاحتراق ، وقت الدورة ، المهلة الزمنية
- تسهيل تتبع تقدم العمل طوال دورة حياة تطوير البرامج
Advantages:
- مصمم خصيصا لإدارة المشاريع المرنة
- مكتبة عناصر واجهة مستخدم واسعة للوحات المعلومات
- قدرات الاستعلام المتقدمة مع لغة استعلام WIT
- التكامل العميق مع خدمات Azure
توسيع نطاق المراقبة باستخدام خدمات Azure
بالإضافة إلى وظيفة القياس عن بعد المضمنة في GitHub وAzure DevOps، يمكنك توسيع نطاق المراقبة من خلال الاستفادة من خدمات Azure مثل Azure Monitor وApplication Insights:
قدرات التكامل:
- Azure DevOps: يوفر تكاملا أكثر ثراء وانسيابية من GitHub
- الموصلات الأصلية: تتكامل مسارات Azure DevOps أصلا مع Application Insights
- تحرير التعليقات التوضيحية: الارتباط التلقائي لعمليات النشر بمقاييس الأداء
- تكامل عنصر العمل: إنشاء عناصر العمل مباشرة من تنبيهات Application Insights
- لوحات المعلومات الموحدة: الجمع بين مقاييس المشروع والقياس عن بعد للتطبيق
استخدام تعقب المشروع المضمن في GitHub
في مشاريع GitHub ، يتضمن تتبع التقدم مراقبة مقاييس التطوير الرئيسية:
مقاييس GitHub الرئيسية:
- إنتاجية المشكلة: معدل إنشاء الإصدار وإغلاقه
- مشكلة الشيخوخة: إلى متى تظل الإصدارات مفتوحة
- وقت استجابة مراجعة الكود: الوقت من إنشاء العلاقات العامة إلى المراجعة والموافقة الأولى
- سحب طلب دمج الوقت: المدة من إنشاء العلاقات العامة إلى الدمج
- نشاط المساهم: تواتر المساهمات وحجمها
تقدم هذه المقاييس رؤى حول صحة المشروع وكفاءة الفريق وجودة التعليمات البرمجية ، مما يساعد في تحديد مجالات التحسين.
رؤى GitHub
إن أبسط طريقة لمراجعة المقاييس هي استخدام وظيفة الإحصاءات:
- تصور نشاط المستودع بمرور الوقت
- أداء طلب سحب التتبع (مفتوح أو مدمج أو مغلق)
- مراقبة المشاركة المجتمعية (الشوكات والنجوم والمراقبين)
- عرض إحصائيات المساهمين وتكرار التعليمات البرمجية
أتمتة مخصصة باستخدام GitHub Actions
قم بإنشاء مهام سير عمل GitHub Actions مخصصة تعمل على أتمتة مجموعة المقاييس:
- قائم على الزناد: أحداث مثل طلبات السحب أو المشكلات أو دفعات التعليمات البرمجية
- المقرر: التشغيل وفقا لجداول cron لإعداد التقارير الدورية
- الاجراءات: جمع المقاييس وتحليلها وإنشاء التقارير والنشر على لوحات المعلومات
الوصول البرمجي باستخدام واجهة برمجة تطبيقات REST
استفد من واجهة برمجة تطبيقات GitHub REST للوصول إلى بيانات المشروع برمجيا:
- مقاييس طلب الإصدار والسحب
- إحصائيات المساهمين
- بيانات نشاط المستودع
- إنشاء لوحات معلومات أو تقارير مخصصة باستخدام أدوات التحليلات
استخدام تتبع المشروع المضمن في Azure DevOps
يوفر Azure DevOps عددا كبيرا من المقاييس المضمنة التي تعكس جوانب مختلفة من إدارة المشروع: وقت الدورة والمهلة الزمنية وكفاءة سير العمل وصحة الأعمال المتراكمة. يمكن تجميع هذه المقاييس في عدة فئات:
مقاييس عنصر العمل
- عدد عناصر العمل: مراقبة العدد الإجمالي لعناصر العمل التي تم إنشاؤها أو إكمالها أو قيد التقدم بمرور الوقت
- عمر عنصر العمل: تعقب عمر عناصر العمل المفتوحة لتحديد المهام المتأخرة
- السرعه: قياس معدل اكتمال عناصر العمل عبر التكرارات أو سباقات السرعة
- نمو الأعمال المتراكمة: مراقبة معدل إنشاء عنصر العمل الجديد مقابل الإكمال
- توزيع عناصر العمل: تتبع أنواع عناصر العمل (الأخطاء والميزات والمهام)
مقاييس الإنشاء والإصدار
- بناء معدل النجاح: مراقبة النسبة المئوية للإصدارات الناجحة مقابل الإصدارات الفاشلة
- تكرار نشر الإصدار: تتبع عدد مرات نشر الإصدارات في الإنتاج أو البيئات الأخرى
- معدل نجاح النشر: قياس النسبة المئوية لعمليات النشر الناجحة لتحديد مشكلات النشر
- مدة البناء: تتبع الوقت لإكمال الإصدارات
- مهلة النشر: الوقت من الالتزام إلى الإنتاج
مقاييس الاختبار
- معدل نجاح حالة الاختبار: مراقبة النسبة المئوية لحالات الاختبار التي اجتازت مقابل حالات الاختبار الفاشلة
- وقت تنفيذ حالة الاختبار: تتبع الوقت المستغرق لتنفيذ حالات الاختبار لتحديد اختناقات الأداء
- اتجاهات فشل حالة الاختبار: تحليل الاتجاهات في حالات فشل حالة الاختبار لتحديد المشكلات المتكررة
- تغطية الاختبار: النسبة المئوية للتعليمات البرمجية التي تغطيها الاختبارات
- كشف اختبار التقشر: تحديد الاختبارات غير الموثوقة
مقاييس الكود
- مخضب الكود: قياس مقدار التعليمات البرمجية المضافة أو المعدلة أو المحذوفة بمرور الوقت
- مقاييس جودة الكود: مراقبة تغطية التعليمات البرمجية والتعقيد الدائري ومؤشر قابلية الصيانة
- مقاييس طلب السحب: وقت المراجعة ومعدلات الموافقة
- تعليقات مراجعة الكود: تكرار وأنواع التغذية الراجعة
مقاييس أداء الفريق
- إسباك رينت داون: تتبع تقدم أهداف العدو من خلال مراقبة العمل المتبقي مقابل الوقت
- سرعة الفريق: قياس متوسط مقدار العمل الذي أنجزه الفريق في كل سباق سريع
- فترة إنتاج: مراقبة الوقت المستغرق من إنشاء عنصر العمل حتى اكتماله
- وقت الدورة: الوقت من بدء العمل حتى الانتهاء
- الانتاجيه: عناصر العمل المنجزة في الفترة الزمنية
لوحات المعلومات والتحليلات المخصصة
يمكنك عرض هذه المقاييس وتحليلها باستخدام لوحات المعلومات التي يمكن الوصول إليها مباشرة داخل مدخل Microsoft Azure DevOps. للحصول على رؤى إضافية، قم بإنشاء تقارير مخصصة تستند إلى الاستعلام في Azure DevOps Analytics.
الاستفسارات التحليلية الشائعة
تتضمن بعض الاستعلامات والتجميعات والتصورات الأكثر استخداما ما يلي:
1. تحليل وقت الدورة:
- استفسار: حساب وقت الدورة (الوقت المستغرق لإكمال عنصر عمل من البداية إلى النهاية) لأنواع مختلفة من عناصر العمل
- تجميع: عناصر العمل حسب الحالة (نشط ، تم حلها ، مغلق)
- حساب: الفرق الزمني بين تاريخ البدء وتاريخ الانتهاء
- التصور: متوسط وقت الدورة لكل حالة بمرور الوقت
- قصد: تحديد الاختناقات وتحسين كفاءة العملية
2. توزيع المهلة:
- استفسار: تحليل توزيع المهلة الزمنية (من الإنشاء إلى الانتهاء) لفرق أو مناطق مختلفة
- تجميع: عناصر العمل حسب مسار المنطقة أو تعيين الفريق
- حساب: المهلة الزمنية لكل عنصر عمل
- التصور: رسم بياني أو مخطط مربع يوضح التوزيع
- قصد: تحديد القيم المتطرفة وتحسين سير العمل في مناطق محددة لتقليل وقت التسليم
3. مخطط التدفق التراكمي (CFD):
- استفسار: تعقب عدد عناصر العمل في كل حالة (To Do (To Do (In Progress (قيد التقدم) بمرور الوقت
- تجميع: عناصر العمل حسب الولاية، مرتبة حسب تاريخ تغيير الحالة
- حساب: العدد التراكمي لعناصر العمل في كل ولاية على فترات منتظمة (يوميا وأسبوعيا)
- التصور: العقود مقابل الفروقات توضح تدفق عنصر العمل
- قصد: مراقبة التدفق خلال مراحل المشروع وتحديد الازدحام أو التأخير
4. تحليل شيخوخة عنصر العمل:
- استفسار: تحليل تقادم عناصر العمل في الأعمال المتراكمة أو مراحل محددة
- تجميع: عناصر العمل حسب العمر (أيام منذ الإنشاء) أو الأولوية أو النوع
- حساب: متوسط العمر والنسبة المئوية المتأخرة وتوزيع الشيخوخة عبر الفئات
- التصور: اتجاهات الشيخوخة بمرور الوقت
- قصد: إعطاء الأولوية للعناية بالأعمال المتراكمة وضمان تسليم العناصر ذات الأولوية العالية في الوقت المناسب
استخدام Azure Monitor وApplication Insights لتعقب المشروع
هناك العديد من الطرق لدمج تعقب المشروع مع Azure Monitor وApplication Insights. يتضمن أحد الأساليب الأكثر استخداما الجمع بين المراقبة المستمرةوإصدار التعليقات التوضيحيةوتكامل عناصر العمل. يؤدي هذا إلى تحسين دورة حياة تطوير البرامج من خلال:
Benefits:
- توفير معلومات قيمة حول اختناقات الأداء
- تسهيل حل المشكلات بشكل استباقي
- تمكين اتخاذ قرارات مستنيرة
- تقديم برامج عالية الجودة بنجاح
تكامل المراقبة المستمرة
من خلال المراقبة المستمرة، يمكن أن تتضمن مسارات الإصدار بيانات المراقبة من Application Insights:
بوابات الجودة على أساس القياس عن بعد:
- يمكن لتنبيه Application Insights حظر النشر المسور أو التراجع عنه حتى يتم حل التنبيه
- مراقبة المقاييس مثل معدل الخطأ ووقت الاستجابة وعدد الاستثناءات أثناء النشر
- منع عمليات النشر السيئة من الوصول إلى الإنتاج
- على العكس من ذلك ، إذا مرت فحوصات المراقبة ، يمكن متابعة عمليات النشر تلقائيا دون تدخل يدوي
مثال على السيناريو:
- يتم نشر المسار إلى بيئة التدريج
- تراقب بوابة ما بعد النشر Application Insights لمدة 15 دقيقة
- إذا كان معدل >الخطأ 1%، يتم حظر النشر
- إذا كانت المقاييس سليمة، ينتقل التوزيع تلقائيا إلى الإنتاج
الافراج عن التعليقات التوضيحية
تحدد التعليقات التوضيحية الأحداث في مسار CI/CD:
قصد:
- التقاط العلاقة بين تسليم إصدارات البرامج وأداء التطبيقات الناتج
- وضع علامة على أحداث النشر في مخططات Application Insights
- تعرف بالضبط على وقت حدوث تغييرات في الأداء بالنسبة لعمليات التوزيع
- تحديد ما إذا كان النشر قد تسبب في انحدار الأداء بسرعة
تنفيذ:
- Azure DevOps: يدعم التوليد التلقائي للتعليقات التوضيحية عن طريق إنشاء مسارات
- التعليقات التوضيحية المخصصة: إنشاء تعليقات توضيحية عشوائية باستخدام PowerShell
- البيانات الوصفية: تضمين رقم الإصدار وملاحظات الإصدار وبيئة النشر
حالة الاستخدام: يظهر مخطط مقاييس الأداء ارتفاعا في وقت الاستجابة. يكشف التعليق التوضيحي للإصدار أن الارتفاع يتزامن مع النشر v2.3.1، مما يحدد على الفور الإصدار الذي به مشكلة.
تكامل عناصر العمل
تسهل وظيفة تكامل عناصر العمل تضمين بيانات Application Insights السياقية عند إنشاء عناصر العمل في GitHub وAzure DevOps:
الميزات التي تسهل التقاط البيانات وإنشاء عناصر العمل:
الحقول المتقدمة:
- تعبئة المكلف أو المشاريع أو المراحل الرئيسية تلقائيا
- تعيين الأولوية بناء على خطورة التنبيه
- وضع علامة بالمكونات أو الخدمات المتأثرة
- الارتباط بعناصر العمل ذات الصلة
تكوينات متعددة:
- دعم أي عدد من المستودعات أو أنواع عناصر العمل
- تكوينات مختلفة لأنواع تنبيهات مختلفة
- قوالب عناصر العمل الخاصة بالبيئة
استعلامات KQL المبنية مسبقا والقابلة للتخصيص:
- إضافة بيانات Application Insights إلى عناصر العمل تلقائيا
- تضمين أعداد الأخطاء والمستخدمين المتأثرين وتتبعات المكدس
- إرفاق إدخالات السجل ذات الصلة
- تضمين مخططات الأداء
قوالب المصنفات القابلة للتخصيص:
- إنشاء تنسيقات عناصر عمل موحدة
- تضمين قوائم التحقق من استكشاف الأخطاء وإصلاحها
- رابط إلى دفاتر التشغيل والوثائق
- تعبئة المعلومات التشخيصية مسبقا
مثال على سير العمل:
- يكتشف Application Insights معدل استثناء مرتفع
- تنبيه الحرائق تلقائيا
- عنصر العمل الذي تم إنشاؤه في Azure DevOps باستخدام:
- العنوان: "معدل استثناء مرتفع في ProductService"
- الوصف: نتائج استعلام KQL تعرض أهم الاستثناءات
- المكلف به: مهندس عند الطلب من فريق الخدمة
- الأولوية: عالية (بناء على تأثير المستخدم)
- المرفقات: آخر 100 تتبع مكدس استثناء
- الارتباطات: استعلامات Application Insights ذات الصلة، التعليقات التوضيحية للنشر
- يتلقى المهندس إشعارا ولديه جميع المعلومات التشخيصية على الفور