GH GambleHub

التنبيهات والإشعارات: PagerDuty، Opsgenie

التنبيهات والإشعارات: PagerDuty، Opsgenie

1) لماذا منصة تنبيهات منفصلة

الهدف هو تقديم إشارة فورية وذات صلة إلى الشخص/الفريق المناسب وبدء عملية الحادث: التعرف (ack) والتصعيد والتواصل وتشريح الجثة. تقدم PagerDuty و Opsgenie:
  • التوجيه حسب الخدمات/العلامات/البيئات.
  • التصعيد والجداول الزمنية (في الخدمة، متابعة الشمس).
  • تفريغ الحدث/الارتباط.
  • النوافذ الهادئة (الصيانة/التجميد) وقواعد الموسيقى.
  • التكامل مع الرصد، CI/CD و ChatOps.

الدعم: عتبة SLO → تنبيه → الشخص/الآلة → كتيب التشغيل → التراجع/الإصلاح → بعد الوفاة.

2) نموذج الإشارة وشدتها

الجدول الموصى به:
  • (صفحة حرجة) - انتهاك SLO/خطأ مسار المال (الإيداع/السحب)، انخفاض في التوافر، معدل الحرق.
  • high (page/ticket) - تدهور كبير دون انهيار واضح في SLO.
  • متوسط (تذكرة) - السعة، تدهور الظهر، إعادة الدرج.
  • منخفضة (معلومات) - الاتجاهات والتحذيرات.

القاعدة: صفحة بواسطة SLO أو محرك عمل صريح فقط.

3) هندسة التوجيه

1. المصدر (Prometheus/Alertmanager، Grafana، مراقبة السحابة، خطوط الويب الخاصة).
2. Шлюз (PagerDuty/Opsgenie service/integration).
3. السياسات: المسارات بالعلامات ('الخدمة'، 'env'، 'المنطقة')، الشدة، الحمولة.
4. التصعيد: تسلسل مستويات الواجب (L1→L2→menedzher).
5. الاتصالات: قنوات ChatOps، صفحات الحالة، الرسائل البريدية.

مثال على العلامات الرئيسية (توحيد)

"خدمة"، "env"، "منطقة"، "نسخة"، "runbook"، "release _ id'،" الطريق "،" المستأجر "(إذا كان B2B/متعدد المستأجرين).

4) جداول الاستدعاء والتصعيد

الجداول: الابتدائية/الثانوية، роли (SRE، DBRE، Sec).
التناوب: ليل نهار، متابعة الشمس، عطلة نهاية الأسبوع.
تجاوزات: إجازة/مرض.
التصعيد: مهلة التوقيت 5-10 دقائق → الطبقة التالية. من خلال ساعات العمل - إلى قسم الملفات الشخصية ؛ في الخارج - منصة تحت الطلب.

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

5) التكامل مع Alertmanager (النمط الأساسي)

yaml receivers:
- name: pagerduty pagerduty_configs:
- routing_key: ${PAGERDUTY_ROUTING_KEY}
severity: '{{ if eq. Labels. severity "critical" }}critical{{ else }}error{{ end }}'
class: '{{.Labels. service }}'
component: '{{.Labels. env }}'
group: '{{.Labels. region }}'
description: '{{.Annotations. summary }}'
details:
service: '{{.Labels. service }}'
env: '{{.Labels. env }}'
runbook: '{{.Annotations. runbook }}'
release: '{{.Annotations. release }}'
route:
receiver: pagerduty group_by: ["service","env","region"]
group_wait: 30s group_interval: 5m repeat_interval: 2h

Opsgenie (شبكة ويب)

yaml receivers:
- name: opsgenie opsgenie_configs:
- api_key: ${OPSGENIE_API_KEY}
responders:
- name: "SRE Primary"
type: team priority: '{{ if eq. Labels. severity "critical" }}P1{{ else }}P3{{ end }}'
details:
trace: '{{.Labels. trace_id }}'
runbook: '{{.Annotations. runbook }}'

6) الضوضاء والموت والارتباط

مفتاح Dedup: استخدم بصمة مستقرة (على سبيل المثال، الخدمة + الطريق + الرمز).
التجميع: «مجموعة _ حسب» حسب الخدمة/البيئة بحيث لا تفرز سلسلة 5xx عشرات الصفحات.
البكم/النوافذ الهادئة: أثناء الهجرات/الإطلاقات/اختبارات التحميل.
القمع لسبب ما: إذا كانت هناك بالفعل حادثة P1 لـ "api-gateway @ prod'، قمع P2/P3 الأطفال.

Anti-pattern: Page by CPU/Memory بدون تأثير مؤكد على SLO.

7) الارتباط بالإطلاقات والإجراءات الذاتية

مع اكتئاب الكناري، تتلقى PagerDuty/Opsgenie تنبيهًا من بوابة SLO → webhook في CI/CD → توقف/تراجع (Argo Rollouts/Helm).
يحتوي التنبيه على: «release _ id'،» image. ، والإشارة إلى خط الأنابيب ودفتر التراجع.

مثال على وصلة الدليل في الشروح


runbook: https://runbooks. company/rollback/api-gateway#canary

8) عمليات الدردشة والاتصالات

إنشاء قناة حوادث تلقائيًا في Slack/Teams، وربط التذكرة.
Slash- команды: «ack»، «assign @ user»، «status set'،» postmortem start'.
صفحة الحالة - التحديثات تلقائيًا على P1/P2.

9) دورة حياة الحادث (الحد الأدنى)

1. الزناد (تنبيه من SLO/أجهزة الاستشعار).
2. الصفحة (الابتدائية عند الطلب).
3. Ack (تأكيد، TTA).
4. الاتصال (القناة/الحالة).
5. التخفيف (التراجع/علم الميزة/العزل).
6. حل (TTR).
7. تشريح الجثة (الجدول الزمني، الأسباب، الإجراءات، الدروس، صاحب المهمة).

مجموعة الأدوار: IC (قائد الحادث)، قائد العمليات، Comms، Scribe.

10) حقول الحمولات (تطبيع)

json
{
"service": "payments-api",
"env": "prod",
"region": "eu-central-1",
"severity": "critical",
"event_class": "slo_burn",
"summary": "Withdraw 5xx > 0. 5% for 10m",
"runbook": "https://runbooks/payments/withdraw-5xx",
"release_id": "rel-2025-11-03-14-20",
"image": "ghcr. io/org/payments:1. 14. 2",
"trace_id": "8a4f0c2e9b1f42d7",
"annotations": { "canary": "25%" }
}

11) دمج مصادر الإشارة

Prometheus/Alertmanager هو المصدر الرئيسي لـ SLO/RED.
تنبيه Grafana أسهل للوحات القيادة/مقاييس الأعمال.
OpenTelemetry/SpanMetrics - الكمون/الخطأ حسب المسار.
الأحداث K8s - حالات فشل المجموعات (انتهاكات مستوى التحكم ومصرف التنمية الشعبي).
DB/قوائم الانتظار - تأخر/أقفال/تكرار.
خطافات التطبيق - إشارات المجال (خطأ PSP، زيادة الاحتيال).

12) السياسات والامتثال

المكتب الإقليمي لآسيا والمحيط الهادئ لإنشاء/تعديل السياسات والجداول الزمنية والموتاس.
مراجعة الحسابات: من اعترف/عين/غير الوضع، والطوابع الزمنية.
تقليل PII في الحمولات (معرف التذكرة بدلاً من بريد المستخدم الإلكتروني/الهاتف).
خطة DR: ماذا نفعل عندما تكون PagerDuty/Opsgenie غير متوفرة (قناة احتياطية).

13) دراسات حالة (PagerDuty vs Opsgenie)

فرصةPagerDutyأوبسجيني
التصعيد/الجداولناضجة ومرنةناضجة ومرنة
أدوار/قوالب الحوادثتدفقات عمل الحوادث القويةنماذج الحوادث/أصحاب المصلحة
القنوات/الإتصالات التلقائيةالتكامل الجيدفرق Deep Slack/MS
التسعير/التراخيصغالبًا ما تكون أغلى، والعديد من الوظائف الإضافيةعادة أرخص في البداية
علامة التوجيهقوي (دليل الخدمات)قوي (قواعد التوجيه)
يغطي كلا المنصتين 95٪ من نفس السيناريوهات ؛ اختر حسب التكلفة، UX، وتكامل المكدس الخاص بك.

14) نوافذ وصقيع هادئة

التجميد: حظر الاستدعاء في نوافذ الإطلاق المخطط لها، وترك P1 فقط.
تحفيظ العلامة: «env = stage»، «region = dr»، «service = batch».
كتم الصوت المؤقت: عند ترحيل قواعد البيانات/اختبارات التحميل - مع مالك صريح.

15) مقاييس الأداء (SRE/DORA للتنبيهات)

MTTA/MTTR (موزعة حسب الفرق/الخدمات/المناوبات).
النسبة المئوية للتنبيهات مع كتيب التشغيل (الهدف ≥ 95 في المائة).
حصة تنبيهات الصفحات من قبل SLO (الهدف ≥ 90٪).
نسبة المفيدة/الصاخبة (الهدف ≥ 3:1).
النسبة المئوية للإجراءات التلقائية (التوقف المؤقت/التراجع عبر الويب) - تنمو.
عناصر عمل ما بعد الوفاة المحروقة في 14/30 يومًا.

16) الأنماط المضادة

الصفحة حسب الأجهزة (وحدة المعالجة المركزية، القرص) دون التأثير على المستخدم.
غياب 'group _ by' → «عاصفة» التنبيهات.
لا توجد نوافذ هادئة - الإصدارات ترسم كل شيء باللون الأحمر.
الحمولات بدون «خدمة/env/runbook» - لا يمكن توجيهها/التصرف بناءً عليها.
لا يوجد مقياس وقواعد واحدة للشدة (كل مصدر مختلف).
تحذيرات «أبدية» من عدم إصلاح أحد (تنبيه الديون).

17) قائمة التنفيذ المرجعية (0-45 يوما)

0-10 أيام

مواءمة مقياس الشدة وتوحيد العلامات/الشروح.
قم بإنشاء خدمات في PagerDuty/Opsgenie، وقم بتكوين الجداول الزمنية والتصعيد الأساسي.
Bind Alertmanager/Grafana، مكّن «group _ by» و deadup.

11-25 يومًا

أدخل تنبيهات SLO (حرق متعدد النوافذ)، أضف دفتر تشغيل رابط.
اضبط ChatOps: قنوات تلقائية، أوامر ack/تعيين.
تمكين النوافذ الهادئة عند إطلاق/هجرات.

26-45 يومًا

دمج التوقف التلقائي/التراجع عن جزر الكناري (خطافات الويب).
أدخل تقارير MTTA/MTTR وتنبيه النظافة (تنظيف الضوضاء).
توحيد تشريح الجثة ومراقبة بنود العمل.

18) مقتطفات جاهزة

تنبيه Grafana → PagerDuty (رسم خرائط جسم JSON)

json
{
"routing_key": "${PAGERDUTY_ROUTING_KEY}",
"event_action": "trigger",
"payload": {
"summary": "{{.RuleName }}: {{ index. Labels \"service\" }}",
"severity": "{{ if eq (index. Labels \"severity\") \"critical\" }}critical{{ else }}error{{ end }}",
"source": "grafana",
"component": "{{ index. Labels \"env\" }}",
"group": "{{ index. Labels \"region\" }}"
},
"links": [
{ "href": "{{.DashboardURL }}", "text": "Dashboard" },
{ "href": "{{ index. Labels \"runbook\" }}", "text": "Runbook" }
]
}

Webhook من حالة التأهب → توقف Argo Rollouts مؤقتًا

bash curl -X POST "$ARGO_API/rollouts/pause" \
-H "Authorization: Bearer $TOKEN" \
-d '{"name":"api-gateway","namespace":"prod"}'

Opsgenie - قاعدة التوجيه (زائف)

yaml if:
tags: ["service:payments","env:prod"]
severity: ["P1","P2"]
then:
route_to: "SRE-Payments"
notify: ["Primary OnCall","Secondary"]

19)

محيط قوي للتنبيهات هو عملية + انضباط: الطبقات الموجهة SLO، التوجيه والتصعيد الكفء، العلامات والحمولات الموحدة، النوافذ الهادئة، ChatOps والإجراءات التلقائية (التوقف المؤقت/التراجع). اختر PagerDuty أو Opsgenie على الميزانية و UX، لكن التزم بنفس قواعد الضوضاء والواجب والمسؤولية - عندها ستكون الصفحة نادرة ودقيقة ومفيدة، وستكون الحوادث قصيرة ويمكن التحكم فيها.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

Telegram
@Gamble_GC
بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.