المراقبة والملاحظة والاستجابة للحوادث
SLOs وSLIs وميزانيات الأخطاء
4 دقيقة للقراءة
SLOs هي حجر الزاوية في SRE. تُحدد أهداف الموثوقية وتُوجه قرارات الهندسة.
المصطلحات
| المصطلح | التعريف | مثال |
|---|---|---|
| SLI | مؤشر مستوى الخدمة - ما نقيسه | زمن الطلب p99 |
| SLO | هدف مستوى الخدمة - هدفنا | زمن p99 < 200ms |
| SLA | اتفاقية مستوى الخدمة - عقد | 99.9% توفر أو استرداد |
| ميزانية الأخطاء | عدم الموثوقية المسموح | 0.1% = 43.8 دقيقة/شهر |
التسلسل الهرمي SLI/SLO/SLA
SLA: التزام تعاقدي (خارجي)
│ "نضمن 99.9% توفر أو نصدر أرصدة"
│
└── SLO: هدف داخلي (أصرم من SLA)
│ "نهدف لـ 99.95% توفر"
│
└── SLI: ما نقيسه فعلاً
"الطلبات الناجحة / إجمالي الطلبات"
SLIs الشائعة
SLI التوفر
# التوفر = الطلبات الناجحة / إجمالي الطلبات
sum(rate(http_requests_total{status!~"5.."}[30d]))
/
sum(rate(http_requests_total[30d]))
# النتيجة: 0.9995 = 99.95% توفر
SLI الزمن
# نسبة الطلبات أسرع من 200ms
sum(rate(http_request_duration_seconds_bucket{le="0.2"}[30d]))
/
sum(rate(http_request_duration_seconds_count[30d]))
# النتيجة: 0.95 = 95% من الطلبات تحت 200ms
SLI الإنتاجية
# الطلبات في الثانية
sum(rate(http_requests_total[5m]))
شرح ميزانيات الأخطاء
ميزانية الأخطاء = 100% - هدف SLO
| SLO | التوقف المسموح/الشهر | ميزانية الأخطاء |
|---|---|---|
| 99.9% | 43.8 دقيقة | 0.1% |
| 99.95% | 21.9 دقيقة | 0.05% |
| 99.99% | 4.38 دقيقة | 0.01% |
| 99.999% | 26 ثانية | 0.001% |
حساب ميزانية الأخطاء
فترة 30 يوم
SLO: 99.9% توفر
إجمالي الدقائق: 30 × 24 × 60 = 43,200 دقيقة
ميزانية الأخطاء: 43,200 × 0.001 = 43.2 دقيقة توقف
إذا كان لدينا 30 دقيقة توقف:
الميزانية المتبقية: 43.2 - 30 = 13.2 دقيقة (30% متبقية)
استخدام ميزانيات الأخطاء
سياسة ميزانية الأخطاء:
الميزانية > 50% متبقية:
→ أطلق الميزات، خذ مخاطر
→ يمكن التجريب بنشر جديد
الميزانية 25-50% متبقية:
→ تابع بحذر
→ أولوية لعمل الموثوقية
الميزانية < 25% متبقية:
→ تجميد الميزات
→ ركز على الاستقرار
→ تحقق من الأسباب الجذرية
الميزانية استُنفدت:
→ لا نشر جديد
→ الجميع على الموثوقية
→ تحليلات ما بعد الحادث مطلوبة
أفضل ممارسات SLO
اختيار SLOs جيدة
| SLO جيد | SLO سيء |
|---|---|
| مبني على تجربة المستخدم | مبني على مقاييس تقنية |
| قابل للقياس والتحقيق | صارم جداً أو فضفاض جداً |
| له عواقب واضحة | لا أحد يهتم |
| يُراجع فصلياً | يُضبط ويُنسى |
مثال وثيقة SLO
الخدمة: Payment API
المالك: فريق المدفوعات
SLIs:
- التوفر:
الوصف: "معاملات الدفع الناجحة"
القياس: "الردود غير 5xx / إجمالي الردود"
- الزمن:
الوصف: "وقت معالجة الدفع"
القياس: "وقت الاستجابة p99"
SLOs:
- التوفر:
الهدف: 99.95%
النافذة: 30 يوم متدحرج
العاقبة: "تجميد الميزات إذا تحت 99.9%"
- الزمن:
الهدف: "p99 < 500ms"
النافذة: 30 يوم متدحرج
العاقبة: "سبرنت أداء إذا تجاوز"
ميزانية الأخطاء:
- الميزانية_الشهرية: 21.9 دقيقة
- التنبيه: "استدعاء عند استهلاك 50% في < 7 أيام"
- التصعيد: "مراجعة المدير عند استهلاك 75%"
SLOs متعددة النوافذ
اكتشف المشاكل في نطاقات زمنية مختلفة:
# احتراق سريع: استهلاك سريع (اكتشاف الانقطاعات)
- النافذة: 1h
معدل_الاحتراق: 14.4x # سيستنفد ميزانية 30 يوم في يومين
التنبيه: استدعاء
# احتراق بطيء: تدهور تدريجي
- النافذة: 6h
معدل_الاحتراق: 6x # سيستنفد الميزانية في 5 أيام
التنبيه: استدعاء
# احتراق بطيء جداً: مشاكل طفيفة
- النافذة: 3d
معدل_الاحتراق: 1x # على المسار لاستنفاد الميزانية
التنبيه: تذكرة
أسئلة المقابلة
س: "كيف تقرر أهداف SLO؟"
- ابدأ بتوقعات المستخدم: ما الذي يعتبره المستخدمون "يعمل"؟
- خط أساس الأداء الحالي: ماذا نحقق اليوم؟
- فكر في احتياجات الأعمال: ما الذي يمكننا تحمل صيانته؟
- احسب التبعيات: لا يمكن أن تكون أفضل من أسوأ تبعية
- ابدأ محافظاً: التشديد أسهل من التخفيف
س: "فريقك على وشك استنفاد ميزانية الأخطاء. ماذا تفعل؟"
الإجراءات الفورية:
1. أوقف النشر غير الحرج
2. راجع التغييرات الأخيرة لمرشحي التراجع
3. زد حساسية المراقبة
4. وظّف مناوبة إضافية إذا لزم
على المدى القصير:
1. حدد أعلى المساهمين في الأخطاء
2. أصلح المشاكل الأعلى تأثيراً
3. أضف اختبارات لمنع الانحدار
على المدى الطويل:
1. تحليل ما بعد الحادث لاستنفاد الميزانية
2. راجع مناسبة SLO
3. استثمر في تحسينات الموثوقية
س: "كيف تتعامل مع SLOs للتبعيات التي لا تتحكم فيها؟"
| الاستراتيجية | متى تستخدم |
|---|---|
| اعكس SLO التبعية | التبعية موثوقة بما فيه الكفاية |
| ضع هدفاً أقل | التبعية غير موثوقة |
| Circuit breaker | التدهور السريع مطلوب |
| متعدد المزودين | خدمة حرجة، ميزانية متاحة |
| التخزين المؤقت/إعادة المحاولة | الفشل العابر مقبول |
التالي، سنغطي الاستجابة للحوادث—اختبار مهارة SRE النهائي. :::