Prometheus / المتقدم: التوسع والحفظ والتحقق الآمن / الدرس 18
اختبار القواعد ومراجعة تغييرات القياس
أنشئ عينات قواعد تختبر الآليات، وراجع تغيير القياس من معنى المصدر إلى الاستعلام والتسميات والتوقيت والمستهلكين ودليل الرجوع.
في هذه الصفحة
أهداف الدرس
- ميّز فحص الصياغة من اختبار معنى القواعد.
- حدد التسميات والوصف والأوقات المتوقعة بدقة.
- خطط تغييرات ذات نسخ دون ادعاء نتائج محرك لم تُنفذ.
اختر الدليل وفق الادعاء
يكشف فحص الصياغة بنية مشوهة دون إثبات مقام أو مطابقة أو توقيت صحيح. تستطيع اختبارات القواعد تقديم سلاسل افتراضية ونتائج متوقعة لنسخة promtool المناسبة دون تشغيل إنتاج. لكنها لا تثبت الجمع الحي أو صحة المصدر أو التوصيل أو السعة أو الوصول. افصل طبقات الدليل. ابدأ بآلية الفشل: ضبط يخفيه التجميع، أو معلومات مكررة، أو تسميات ناقصة، أو مقام فارغ، أو هوية تنبيه متغيرة. حالة صغيرة موجهة أنفع من عينة ضخمة بلا عقد واضح.
اقرأ توقع تنبيه صريحاً
يشير مقطع الاختبار غير التنفيذي إلى قاعدة التدريب نفسها من درس دورة التنبيه. يقدم up بصفر كل دقيقة، ويتوقع إطلاق شرط for ذي الدقيقتين عند الوقت المحدد، بتسميات ووصف دقيقين. هذا توقع معلن لا نتيجة اختبار. لا تنشئ الدورة العامة ملف القاعدة المشار إليه، ولا تستدعي promtool. وحّد هوية الملف ونسخة الأداة في اختبار معزول مخول. إذا تغيرت القاعدة فراجع التوقع، ولا تضعف التأكيدات لمجرد النجاح.
rule_files: [warehouse.rules.yml]
evaluation_interval: 1m
tests:
- interval: 1m
input_series:
- series: 'up{job="warehouse-lab",instance="worker-a"}'
values: '0 0 0'
alert_rule_test:
- eval_time: 2m
alertname: WarehouseTargetScrapeFailed
exp_alerts:
- exp_labels:
job: warehouse-lab
instance: worker-a
severity: training
exp_annotations:
summary: Synthetic warehouse collection failure
تعتمد العينة على ملف قاعدة التدريب دون تغيير، وتظل غير منفذة. الإطلاق المتوقع تأكيد يحتاج تحققاً، لا نتيجة محرك مدعاة.
تحقق بصدق من عقد ضيق لشكل المخرج
يفحص بايثون أن نتيجة تسجيل افتراضية تحتوي معدلات بحسب العملية ولا تحتفظ بـinstance، ويؤكد مجموعاً معلوماً. هذا دليل لقاموس المدخل فقط، لا تحليل PromQL أو إثبات نجاح الاختبار السابق. اجعل المتوقع مفهوماً مستقلاً وأدرج حالات سلبية تكشف العيب المقصود. لا تنسخ التنفيذ إلى اختبار لا يفضح فشلاً. ينبغي أن يساعد اختبار المعنى المراجع على شرح قرار المستخدم أو التشغيل الذي يحميه القياس.
recorded = {"operation": "lookup", "rate_per_second": 5.0}
assert recorded["operation"] == "lookup"
assert recorded["rate_per_second"] == 2.0 + 3.0
assert "instance" not in recorded
print("operation-rate-contract-passed")
operation-rate-contract-passed
القاموس الثابت هو النظام المختبر كله. لا يُقرأ ملف قواعد أو بيانات مراقبة، ولا يعمل promtool أو محرك Prometheus.
راجع تغيير القياس كاملاً
قد تغير هجرة مصدر أو قاعدة الوحدات والتأهيل والتسميات وأعمار العدادات والحدود والتوقيت والوصف. قارن العقدين وحدد كل مستهلك: التسجيل والتنبيه واللوحة والمسار البعيد ودليل الحادث. قد تعد النسخ المختلطة مرتين أو تغفل بيانات إذا رُقعت المحددات عرضاً. خطط التوافق والتعرض المحدود والتحقق والرجوع دون تغيير التاريخ بصمت. لا يثبت اخضرار لوحة بعد إعادة تسمية تحسن المستخدم. اذكر السلوك المتغير والقرار الذي يتيحه.
أبلغ التحقق الدقيق وعدم اليقين المتبقي
احفظ النسخ والمدخلات والمتوقع والمرصود والحدود غير المختبرة في التسليم. إذا نُفذ حساب بايثون وحده فقل ذلك، ولا تعلن نجاح الإعداد أو المحرك بالتبعية. عند توفر محرك معزول مخول نفذ الفحوص المناسبة واحفظ الفشل، ولا تعدل الأدلة بأثر رجعي. يحتاج النشر وإعادة تحميل الخدمة واختبار المستقبل ودورة البيانات خططها المعتمدة. تنتهي الدورة بعقود مراجعة وأدلة محلية، لا ادعاء نشر منصة إنتاج أو التحقق منها.
الأخطاء الشائعة وإصلاحها
يسمى قبول الصياغة قياس خدمة صحيحاً.
- لماذا يحدث؟
- اختلط التحليل بالدليل الدلالي.
- كيف تصلحه؟
- اختبر القيم والتسميات والمجموعات والتوقيت.
- كيف تتجنب تكراره؟
- اربط الفحوص بآليات فشل محددة.
يضعف المتوقع حتى تنجح قاعدة معيبة.
- لماذا يحدث؟
- نسخ الاختبار السلوك بدلاً من حماية العقد.
- كيف تصلحه؟
- أعد توقعاً مبرراً مستقلاً.
- كيف تتجنب تكراره؟
- راجع لماذا يفشل كل مثال مع عيب معين.
يسمى النموذج المحلي نشراً مراقباً مختبراً.
- لماذا يحدث؟
- أُغفلت حدود الأدلة.
- كيف تصلحه؟
- أبلغ الشيفرة والنسخ المنفذة تحديداً.
- كيف تتجنب تكراره؟
- افصل النموذج والمحرك والتكامل والتشغيل.
اختبر فهمك
1. أي عينات اختبار تحمي العقد الذي شرحه درس نسبة الأخطاء؟
اعرض الحل المشروح
أدرج حركة مثيلات غير متساوية، وعدم أخطاء مع حركة مؤهلة، وانعدام الحركة المؤهلة، ومصدراً مفقوداً، وضبط عداد، وتغير تسميات النتائج. أكد تفسير القيمة وأبعاد الناتج معاً. استخدم المحرك المعزول المناسب لمعنى PromQL الفعلي، وقيد ادعاء حساب بايثون بالأعداد المنمذجة.
2. ماذا يجب أن تقول ملاحظة التحقق النهائية إذا لم يُنفذ برنامج Prometheus أو Alertmanager؟
اعرض الحل المشروح
اذكر أن البرامج المحلية الافتراضية المسماة فقط نُفذت وفُحص خرجها. سمِّ مقاطع PromQL والقواعد والجمع والتخزين والتوجيه غير منفذة. اذكر المراجع ذات النسخ والافتراضات دون تقديمها كأنها نتائج تشغيل، وحدد أدلة التكامل المخولة التي قد تلزم لاحقاً.
أهم ما تعلمته
- تحمي الاختبارات معنى القياس لا الصياغة فقط.
- التسميات المتوقعة وأوقات التقييم جزء من العقد.
- لتطابق ادعاءات التحقق الأدوات والحدود المختبرة فعلاً.