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

Prometheus / المتوسط: PromQL وعقود القواعد / الدرس 11

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

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

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

أهداف الدرس

  • اشرح وجود نتيجة التعبير ومدة for.
  • ميّز التسميات من annotations الوصفية.
  • اختبر الغياب والتعافي والهوية غير المستقرة.

يهم وجود العنصر أكثر من مظهر قيمته المنطقية

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

اقرأ القاعدة مع حد مشاهدتها

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

yaml قاعدة تنبيه تعليمية لـPrometheus v3.5.0
groups:
  - name: warehouse-lab-alerts
    rules:
      - alert: WarehouseTargetScrapeFailed
        expr: up{job="warehouse-lab"} == 0
        for: 2m
        labels:
          severity: training
        annotations:
          summary: Synthetic warehouse collection failure

تختار القاعدة فشل الجمع وتستخدم تسمية تدريب ثابتة. ليست إعداد استدعاء تشغيلياً أو دليلاً على تنبيه أُطلق.

نمذج زمن النشاط دون اختراع مجدول

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

python نموذج محلي لحد حالة التنبيه
def state(active, continuous_seconds, hold_seconds):
    if not active:
        return "inactive"
    return "firing" if continuous_seconds >= hold_seconds else "pending"
print(state(True, 60, 120))
print(state(True, 120, 120))
print(state(False, 0, 120))
الناتج المتوقع
pending
firing
inactive

الأزمنة مدخلات عينة لا فواصل مقاسة أو مجدولة. لا يُختبر تنبيه Prometheus أو إشعار أو حفظ حالة.

أبعد القيم المتغيرة عن تسميات الهوية

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

اختبر الإطلاق والتعافي والتوصيل مستقلة

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

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

يُعد الصفر المعاد غياب تنبيه.

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

لا يصل الانتظار إلى الإطلاق.

لماذا يحدث؟
تنشئ تسمية متغيرة هوية جديدة كل مرة.
كيف تصلحه؟
انقل الوصف المتغير إلى annotations.
كيف تتجنب تكراره؟
أكد ثبات تسميات الهوية.

يسمى اختفاء البيانات تعافياً.

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

اختبر فهمك

1. لماذا قد لا تكون up == bool 0 مناسبة كتعبير مباشر لتنبيه يريد اختيار حالات الفشل فقط؟

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

قد يبقي معدل bool عناصر المتجه المطابقة وغير المطابقة بقيم واحد وصفر. يعتمد تنشيط التنبيه على العناصر المعادة، لا على صدق قيمتها العددية بالمعنى البرمجي المعتاد. استخدم تعبير الترشيح الموثق للمجموعة الفاشلة المقصودة، واختبر الهويات المعادة.

2. ما الأدلة التي تبقى ناقصة بعد نجاح اختبار وحدة لقاعدة التنبيه؟

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

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

أهم ما تعلمته

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

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