محتويات الدورة

ASP.NET Core / المتقدم: التحقق والتشغيل الموثوق / الدرس 14

الرصد والعقود التشغيلية

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

وقت القراءة التقريبي: 5 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اختر الإشارات انطلاقا من سؤال تشغيلي.
  • حدد الارتباط وأبعادا منخفضة التعددية.
  • افصل الحياة والجاهزية والمؤشرات التي يواجهها المستخدم.

تثبت الإشارات المختلفة حقائق مختلفة

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

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

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

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

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

csharp إنشاء سجل تشخيص اصطناعي آمن
using System;
using System.Collections.Generic;
using Microsoft.AspNetCore.Http;

var context = new DefaultHttpContext { TraceIdentifier = "synthetic-op-7" };
context.Request.Method = "GET";
context.Request.Path = "/reports";
context.Response.StatusCode = 200;
var record = new Dictionary<string, string>
{
    ["operation"] = context.TraceIdentifier,
    ["method"] = context.Request.Method,
    ["route"] = "/reports",
    ["outcome"] = "success"
};
Console.WriteLine($"operation={record["operation"]} fields={record.Count} outcome={record["outcome"]}");
الناتج المتوقع
operation=synthetic-op-7 fields=4 outcome=success

يحوي السجل أربعة حقول مضبوطة دون رمز أو جسم طلب؛ ولا يتصل بأي خلفية للرصد.

الوحدات وتعددية القيم قراران يتعلقان بالصحة

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

يحسب البرنامج الثاني نسبة نجاح اصطناعية من أعداد صريحة. يوضح الحساب فقط، لا مقاييس ASP.NET مزودة بأدوات رصد أو لوحة أو تسليم تنبيه. طابق أنواع أدوات القياس وتسمياتها الفعلية بالسؤال، واختبر سلوك إعادة الضبط والبيانات المفقودة في بيئة الرصد المقصودة.

csharp حساب مؤشر طلبات اصطناعي
using System;

int eligibleRequests = 1000;
int goodRequests = 985;
if (eligibleRequests <= 0 || goodRequests < 0 || goodRequests > eligibleRequests)
    throw new InvalidOperationException("invalid synthetic counters");
decimal ratio = (decimal)goodRequests / eligibleRequests;
Console.WriteLine($"good={goodRequests} eligible={eligibleRequests} percent={(ratio * 100).ToString("0.0", System.Globalization.CultureInfo.InvariantCulture)}");
الناتج المتوقع
good=985 eligible=1000 percent=98.5

تعطي العدادات المعلنة 98.5 بالمئة؛ ولا يجري التحقق من مؤشر خدمة إنتاجي أو تنبيه.

تحتاج الجاهزية والحياة إلى معنيين مختلفين للفشل

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

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

الإشارة بلا مالك ليست عملية لإدارة الحوادث

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

ينبغي أن تفحص الاختبارات الحقول الآمنة وسياق الخطأ والارتباط وحالات غياب البيانات وسياسة رد الصحة. يغطي التكامل المعزول أدوات القياس الفعلية وتوصيل المسبار حيث يؤذن بذلك. تستخدم هذه الأمثلة سجلات محلية وحسابا فقط؛ ولا يبدأ مقصد تسجيل أو مجمع تتبع أو خادم صحة أو خدمة مراقبة خارجية.

الأخطاء الشائعة وإصلاحها

يستخدم معرف مستخدم خام كتسمية مقياس غير محدودة.

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

يطلق انقطاع اعتماد إعادات حياة بلا نهاية.

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

تعد لوحة خضراء دليلا على التعافي.

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

اختبر فهمك

1. لماذا ينبغي أن يستخدم مقياس الكمون قالب مسار مستقرا بدلا من كل عنوان طلب خام بوصفه بعدا؟

اعرض الحل المشروح

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

2. تعيد نقطة صحة 200 لكن كل إرسال طلب شراء يفشل. ما الذي ينبغي مراجعته؟

اعرض الحل المشروح

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

أهم ما تعلمته

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

المراجع الرسمية