توصيات بشأن وضع علامة على تطبيق

ينطبق على توصية قائمة التحقق من التميز التشغيلي ل Azure Well-Architected Framework:

OE:07 تصميم وتنفيذ نظام مراقبة للتحقق من صحة اختيارات التصميم وإبلاغ قرارات التصميم والأعمال المستقبلية. يلتقط هذا النظام بيانات تتبع الاستخدام التشغيلية والمقاييس والسجلات المنبعثة من البنية الأساسية للتعليمات البرمجية لحمل العمل ويعرضها.

الدليل ذي الصلة: توصيات لتصميم وإنشاء نظام مراقبة

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

استراتيجيات التصميم الرئيسية

لتحسين بيانات تتبع الاستخدام لحمل العمل الخاص بك، ضع علامة على تطبيقك لإنشاء البيانات التالية:

  • السجلات هي سجلات ذات طابع زمني للأحداث المنفصلة. هناك ثلاثة أشكال من السجلات: نص عادي ومنظم و ثنائي.

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

  • المقاييس هي قيم رقمية تصف جانبا من النظام في نقطة زمنية معينة.

ملاحظة

يمكنك استخدام أدوات مثل Application Insights وDynatrace و Elastic Application Performance Monitoring لوضع علامة تلقائيا على تطبيقك. تسهل هذه الأدوات تقرير عن حالة النظام، ولكن يمكن أن تكون مقيدة أيضا. إذا كنت تستخدم أداة تقرير عن حالة النظام تلقائيا، يمكنك إضافة المزيد من القدرات من خلال الأجهزة اليدوية حسب الحاجة.

السجلات وسجلات التتبع الموزعة

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

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

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

ملاحظة

قد يتم تنفيذ السجل كملف في نظام الملفات، أو قد يتم الاحتفاظ به بتنسيق آخر، مثل كائن ثنائي كبير الحجم في تخزين كائن ثنائي كبير الحجم. قد يتم أيضا الاحتفاظ بمعلومات السجل في تخزين منظم، مثل الصفوف في جدول.

المقاييس

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

معلومات عن البيانات المترابطة

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

من غير المحتمل أن تكون خريطة 1:1 بين مؤشرات الترابط وطلبات المستخدم، لأن العمليات غير المتزامنة قد تعيد استخدام نفس مؤشرات الترابط لأكثر من مستخدم واحد. لزيادة تعقيد الأمور، يمكن أن يرتبط طلب واحد بأكثر من مؤشر ترابط واحد أثناء تدفقه عبر النظام. إذا كان ذلك ممكناً، فقم بربط كل طلب بمعرّف نشاط فريد يتم نشره عبر النظام كجزء من سياق الطلب. تعتمد تقنية إنشاء معرّفات الأنشطة وتضمينها في معلومات التتبع على التقنية المُستخدمة لالتقاط بيانات التتبع.

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

ملاحظة

قد لا تتم مزامنة أجهزة الكمبيوتر التي تعمل في مناطق زمنية وشبكات مختلفة. لا تعتمد على الطوابع الزمنية وحدها لربط بيانات تقرير حالة النظام التي تمتد عبر أجهزة متعددة.

المعلومات التي يجب تضمينها في بيانات تقرير حالة النظام

ضع في اعتبارك النقاط التالية عند تحديد بيانات الأجهزة التي تحتاج إلى جمعها.

البيانات التي يمكن للبشر قراءتها

تأكد من أن المعلومات التي تم التقاطها بواسطة أحداث التتبع قابلة للقراءة آليا وإنسانيا. اعتماد مخططات محددة جيدا لهذه المعلومات للمساعدة في تنفيذ المعالجة التلقائية لبيانات السجل عبر الأنظمة، وتوفير الاتساق لموظفي العمليات والهندسة الذين يقرأون السجلات.

قم بتضمين المعلومات البيئية التالية في بياناتك:

  • بيئة التوزيع
  • جهاز المعالجة
  • تفاصيل العملية
  • مكدس الاستدعاءات:

الاستثمار في إمكانية التتبع والارتباط

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

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

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

التقاط جميع البيانات ذات الصلة

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

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

السعي لتحقيق تناسق البيانات

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

جمع البيانات، مثل حجم الإدخال/الإخراج، وعدد الطلبات، والذاكرة، والشبكة، واستخدام وحدة المعالجة المركزية، من عدادات الأداء الرئيسية. توفر بعض خدمات البنية الأساسية عدادات الأداء الخاصة بها، مثل:

  • عدد الاتصالات بقاعدة بيانات.
  • معدل المعاملة.
  • عدد العمليات التي تنجح أو تفشل.

قد تحدد التطبيقات أيضا عدادات الأداء الخاصة بها.

مراعاة التبعيات الخارجية

تسجيل جميع مكالمات الخدمة الخارجية. قد يتم إجراء مكالمات خارجية إلى:

  • أنظمة قواعد البيانات.
  • خدمات الويب.
  • الخدمات الأخرى على مستوى النظام التي تعد جزءا من البنية الأساسية.

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

التأكد من توافق نظام بيانات تتبع الاستخدام

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

تستخدم أنظمة بيانات تتبع الاستخدام مخططات محددة لتحليل المعلومات. يحدد المخطط عقدا يحدد حقول البيانات وأنواعها التي يمكن لنظام بيانات تتبع الاستخدام استيعابها. تعميم المخطط للسماح بوصول البيانات من الأنظمة الأساسية والأجهزة المختلفة. يجب أن يتضمن المخطط الشائع الحقول ذات الصلة بجميع أحداث الأجهزة، مثل:

  • اسم الحدث.
  • وقت الحدث.
  • عنوان IP للمرسل.
  • التفاصيل المطلوبة لارتباط الحدث، بما في ذلك:
    • معرّف المستخدم
    • معرف الجهاز
    • معرّف التطبيق

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

  • معلومات حول الاستثناءات.
  • أحداث بدء التطبيق وانتهاءه.
  • نجاح أو فشل استدعاءات واجهة برمجة تطبيقات خدمة الويب.

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

OpenTelemetry هي مجموعة محايدة من البائعين من واجهات برمجة التطبيقات وSDKs وأدوات أخرى. يمكنك استخدام OpenTelemetry لأجهزة التطبيقات وإنشاء بيانات تتبع الاستخدام ذات مغزى باستمرار عبر اللغات. يعد OpenTelemetry غير محدد الأدوات، لذلك فهو متوافق مع العديد من منصات المراقبة بما في ذلك العروض مفتوحة المصدر والتجارية. تعتمد Microsoft OpenTelemetry كأداة قياسية للأجهزة.

أفضل الممارسات لتقرير حالة التطبيقات

تلخص القائمة التالية أفضل الممارسات لتقرير حالة تطبيق موزع يعمل في السحابة:

  • اجعل السجلات سهلة القراءة والتحليل. استخدم تسجيل منظم حيثما أمكن.

  • كن موجزاً ووصفياً في رسائل السجل.

  • تحديد مصدر السجل.

  • أضف معلومات الطابع الزمني أثناء كتابة كل سجل.

  • استخدم نفس المنطقة الزمنية والتنسيق لجميع الطوابع الزمنية.

  • تصنيف السجلات وكتابة الرسائل في المكان المناسب.

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

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

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

  • تتبع استدعاءات العملية، مثل الطلبات إلى خدمات ويب خارجية أو قواعد بيانات.

  • لا تخلط بين رسائل السجل ومتطلبات الأمان المختلفة في ملف السجل نفسه.

  • تأكد من أن جميع مكالمات التسجيل هي عمليات إطلاق ونسيان لا تمنع تقدم العمليات التجارية. استبعاد أحداث التدقيق من هذه القاعدة لأنها بالغة الأهمية للأعمال.

  • تأكد من أن التسجيل قابل للتوسيع ولا يحتوي على أي تبعيات مباشرة على هدف ملموس.

  • تأكد من أن جميع عمليات التسجيل آمنة من الفشل ولا تؤدي إلى حدوث أخطاء متتالية.

  • تعامل مع تقرير حالة النظام كعملية تكرارية مستمرة وراجع السجلات بانتظام.

الاعتبارات

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

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

تسهيل Azure

تتوفر البنية التلقائية للعديد من أنواع تطبيقات Azure والتطبيقات المحلية التي تتم مراقبتها باستخدام Application Insights. تقوم وظيفة البنية التلقائية تلقائيا بتكوين التطبيق الخاص بك لتوفير بيانات تتبع الاستخدام الغنية ل Application Insights وتوفر وصولا سهلا إلى تجارب مثل لوحة معلومات التطبيقوخريطة التطبيق. للحصول على منصات الاستضافة المدعومة ولغات التطوير، راجع البيئات واللغات وموفري الموارد المدعومين.

قائمة التحقق من التميز التشغيلي

راجع المجموعة الكاملة من التوصيات.