نظام الإنذار والإخطار
1) الدور والأهداف
نظام الإشارة ليس «إرسال رسائل»، ولكنه دائرة لصنع القرار: فهو يسلط الضوء على الانحرافات في الوقت المناسب، ويقدم الإجراءات ويحافظ على التوازن بين التوقيت والصمت.
الأهداف:- تقليل MTTD/MTTR من خلال تحديد الأولويات وكتب اللعب الواضحة.
- قلل من إجهاد التنبيه من خلال إلغاء الضوضاء.
- أعط الإجراءات مباشرة من الإشعار (ack، الغفوة، runbook، الحركة التلقائية).
- مراقبة الخصوصية والموافقة (اختيار الاشتراك/إلغاء الاشتراك، سجل التخزين).
2) تصنيف الأحداث والمستويات
2. 1 أنواع الأحداث
المقاييس/الشذوذ (SRE، المنتج، التمويل).
قواعد الأعمال (الحدود، الاحتيال، شركة KYC، المدفوعات).
النظام (النشر، التدهور، التراخيص).
المستخدم (محفزات سلوكية، RG/لعبة مسؤولة).
2. 2 مستويات الشدة
حرج - استجابة فورية، خطر فقدان/سلامة.
تدهور كبير - كبير في جيش تحرير كوسوفو/جيش تحرير السودان.
متوسط - الإجراء المطلوب خلال ساعات العمل.
Low/Info - المراقبة/السياق، الالتفاف التلقائي في الخلاصات.
2. 3 الأولوية
«تأثير × إلحاح» → P1..P4. الاتصال بالقنوات وردود فعل جيش تحرير السودان.
3) الهندسة المعمارية والخيوط
منتجو الإشارات Sheena of events Normalization the Correlation Corrected (policy engine) Routing Canala Center of Preventions Logs/analytics.
المكونات الرئيسية:- الإثراء: يضيف المستأجر، الدور، المنطقة، روابط قواعد اللعبة.
- Deduper-Group الأحداث المتكررة حسب المفتاح.
- المرتبط: إشارات متعلقة بالغراء في حادث.
- محرك السياسة: قواعد YAML/DSL، ساعات الهدوء، التصعيد.
- التسليم: داخل التطبيق، البريد الإلكتروني، الدفع، الرسائل القصيرة، خطاف الويب، تكامل الدردشة.
4) القواعد والسياسات (مثال YAML)
yaml policies:
- id: p_sre_critical match: { domain: "infra", severity: "critical" }
route:
primary: { channel: "pager", targets: ["oncall_sre"] }
fallback: { channel: "sms", delay: "2m" }
suppress:
flapping: {window: "10m," threshold: 5} # suppressing frequent twitching duplicates: {key: ["service, ""cluster,"" error _ code"], ttl: "15m"}
escalate:
after: "10m"
to: ["sre_manager"]
auto_assign: true
- id: p_product_medium match: { domain: "product", severity: "medium", kpi: "conversion" }
route:
primary: { channel: "inapp", audience: "product_owners" }
digest:
window: "1h"
max_items: 10 quiet_hours:
tz: "Europe/Kyiv"
ranges: ["22: 00-07: 00"] # only P1 digests/pager at this time
5) التفريغ، الارتباط، قمع الخفقان
Dedup: group ID 'dedup _ key = hash (service' metric' dim) '؛ TTL ≥ نافذة رفرفة.
الارتباط: جمع الإشارات ذات الصلة حسب الطوبولوجيا (servis→zavisimost) والوقت (± N min) والسياق (إطلاق، حادث).
الخفقان: عتبات «الأحداث N لكل M minutes» → إشارة واحدة «الخفقان المكتشف» مع اقتراح لرفع الهستيريا أو القمع.
6) التوجيه و RACI
المسؤول: من يحصل على الإخطار/السحب الأول.
المسؤول: من يتصاعد بعد جيش تحرير السودان.
استشار: من الذي يجب ذكره في قناة الموضوع/الدردشة.
معلومات: من سيترك الملخص/النتائج.
تحديد حسب الدور والسياق (المستأجر، المنطقة، تدفق المنتجات).
7) قنوات التسليم والفروق الدقيقة
Retrai: 5xx/429/timeout → back off + jitter; احترام «إعادة المحاولة بعد». الخصوصية: «X-Notication-Id» على خطوط الويب.
8) مركز الأفضليات
إلغاء الاشتراك/إلغاء الاشتراك حسب نوع الحدث والمستوى والقناة.
ساعات هادئة، غفوة يدوية 15/30/60 دقيقة
العتبة/الحساسية (مثل ≥ 3 σ الشذوذ).
اللغة/الموقع، الوقت/العملة.
ملزم للدور: يحدد مسبقًا لـ SRE/Product/Finance.
الشفافية: تبين سبب تلقي المستخدم للإشارة (ارتباط بالقاعدة).
9) تصميم المحتوى: هيكل الرسالة
نمط الإشارة الحرجة (P1):- العنوان: موجز، مع الزناد: «[P1] [PSP _ TR] ارتفاع حاد في إخفاقات 3DS (+ 12٪)».
- السياق: الفترة، القطاعات/المناطق المتأثرة، مصدر البيانات.
- السبب/الفرضية: «مرتبط بإصدار PSP_X 18:20 بالتوقيت العالمي المنسق».
- SLA/الموعد النهائي: «التصعيد في 10 دقائق».
- CTA: «Open playbook»، «Enable back»، PSP_Y «Ack (30 دقيقة)».
- الروابط: الرسم البياني، خيط الحادث، المقاييس، كتاب التشغيل.
- البيانات الوصفية: «تتبع _ معرف»، «حادث _ معرف»، «تسريح _ مفتاح».
النبرة: حقائق، لا دراما ؛ الأرقام والوحدات تتجنب الاختصارات دون فك تشفير.
التوطين: المتغيرات → الزائدين، تخزن الترجمات في الموارد ؛ الأرقام/التواريخ - حسب الموقع.
10) الإجراءات من الإخطارات (قابلة للتنفيذ)
Ack/غفوة مع معلمات الوقت.
تعيين/دعوة إلى خيط الحادث.
خطوات حل Runbook-Open مع السياق مكتمل تلقائيًا.
علاج بنقرة واحدة (حيث يكون آمنًا): تبديل المسار، ورفع الحد، وإعادة تشغيل الوظيفة (مع التأكيد والتدقيق).
قم بإنشاء تذكرة (Jira/GitHub) مع حقول مكتملة تلقائيًا.
11) جودة الإشارة: المقاييس والأهداف
الدقة ≥ 80٪ P1/P2.
الاستدعاء (نسبة الحوادث المكتشفة بين جميع الحوادث) ≥ 70٪.
الضوضاء: متوسط الإشارات/الساعة لكل مستخدم (الحد الأقصى المستهدف).
Ack-time p50/p95, Expalation rate, Snooze rate (as a noise indicator).
MTTD/MTTA/MTTR (من حيث المجالات والقنوات).
تعتبر لوحة القيادة المسكوت عنها ولكن يجب أن تكون في حالة تأهب (فجوات بسبب القواعد) لوحة قيادة منفصلة.
12) التحكم في الضوضاء: تقنيات
الهستيريا والنوافذ المنزلقة للعتبات.
مكافحة التسلية (EWMA) قبل الكشف.
التجميع: بدلاً من 30 دفعة صغيرة - دفعة واحدة/هضم مع كبار المساهمين.
حدود السياق: إشعارات N القصوى/ساعة/قناة/مستخدم.
ردود الفعل التلقائية: إذا نقر المستخدم على الغفوة لمدة 3 × متتالية → اقترح رفع العتبة/تغيير القناة.
13) الأمن والخصوصية والامتثال
توقيع HMAC لخطابات الويب، وتدوير الأسرار، "X-Key-Id'.
RBAC/ABAC: رؤية الإشارة حسب الدور/المستأجر.
تقليل مؤشر الاستثمار الدولي، والأقنعة في جذوع الأشجار، وإجراءات التدقيق (ack/assign/runbook).
الموافقة وأسباب الإخطار (القاعدة/السياسة) - في الحمولة.
سجلات إشعارات الاحتفاظ/TTL، تعليق قانوني على الحوادث.
14) المخططات والحمولات
حدث (داخلي)
json
{
"id": "sig_01HX",
"domain": "payments",
"severity": "high",
"priority": "P2",
"title": "The 3DS failure graph has grown to 8. 2% (+3. 1 pp), "
"occurred_at": "2025-11-03T17:55:00Z",
"context": { "psp": "PSP_X", "country": "TR", "release_id": "rel_241103_1820" },
"metrics": { "baseline": 5. 1, "current": 8. 2, "delta_pp": 3. 1 },
"dedup_key": "payments PSP_X TR 3DS_FAILURE",
"runbook": "rbk_psp_3ds_spike",
"slo": { "ack_deadline_sec": 600 }
}
الإخطار (قناة لا أدرية)
json
{
"notification_id": "ntf_91ab",
"signal_id": "sig_01HX",
"targets": ["oncall_payments"],
"channels": ["inapp","slack","webhook"],
"cta": [
{"id": "ack," "label": "Confirm (30 min)," "payload": {"ttl ":" 30m"}},
{"id": "runbook," "label": "Open playbook," "payload": {"id ": "rbk _ psp _ 3ds _ spike"}},
{"id": "fallback," "label": "Enable fallback, PSP_Y" "confirm": true}
],
"hmac": "sha256=AbCd..."
}
15) أنماط UX في المنتج
البريد الوارد: علامات تبويب حرجة/عالية/أخرى، شارات كمية.
تغذية الحوادث: إشارات مرتبطة، جدول زمني للإجراءات، «ما تم فعله».
المرشحات: الدور، المجال، المنطقة، الوقت، «فقط دون إجابة».
الإجراءات السريعة في القائمة (ack/slooze/section).
اشرح: «لماذا تراه» (قاعدة، عتبات، بيانات).
الخلاصات: الصباح/المساء، موضعها TZ.
16) خطة الاختبار
الوحدة: مفاتيح التخلص، الهستيريا، الخفقان، تسلسل الحمولات.
التكامل: التوجيه، ساعات الهدوء، التصعيد، إعادة تشغيل القنوات.
E2E: السيناريو P1 من الشذوذ إلى إغلاق التذاكر ؛ P2 في ساعات هادئة → الهضم.
الفوضى: فقدان الرابط (SMTP/SMS)، التأخير، الانهيار الجليدي للإشارة، انحراف الساعة.
A11y/i18n: قارئات الشاشة، لوحة المفاتيح/الغفوة، توطين الأرقام/التواريخ.
17) لوحات معلومات الجودة
الدقة/الاستدعاء حسب المجال.
وقت Ack p50/p95 وحصة تأكيد التوقيت.
الضوضاء لكل مستخدم/ساعة وقواعد الضوضاء العليا.
معدل التصعيد و «التصعيد الكاذب».
قمع مقابل تسليم (مقدار ما يتم قمعه/هضمه).
ملاحظات المستخدم :/رسائل، تعليقات على الضوضاء.
18) القوائم المرجعية
تصميم
- تصنيف الأحداث والمستويات متسقة
- وصف سياسات الساعات الهادئة/التصعيد
- Dedup/Correlation/Flapping تكوين
- القنوات، Retras، Webhook Idempotency
- مركز التفضيل (اختيار الدخول/الخروج، الغفوة)
- نماذج المحتوى والتوطين
- كتب اللعب والإجراءات بنقرة واحدة (مراجعة)
- مقاييس الجودة ولوحات القيادة
عملية
- عتبة التحسين ربع سنوية
- القواعد ألف/باء (العتبة، النوافذ، الخلاصة)
- مراجعات منتظمة لـ «أعلى ضوضاء» و CAPA
- تناوب القناة السري (HMAC، SMTP، SMS)
- اختبار أيام اللعبة المجدولة
19) خطة التنفيذ (3 تكرارات)
التكرار 1 - خط الأساس (2-3 أسابيع)
التصنيف، الشدة/الأولوية، مركز التفضيل (داخل التطبيق + البريد الإلكتروني).
Dedup، ارتباط بسيط بين المفتاح والوقت، ساعات هادئة.
قوالب الرسائل، كتب اللعب، ack/slooze/section.
التكرار 2 - الموثوقية والحد من الضوضاء (3-4 أسابيع)
الخفقان/الهستيريا، الهضم، تكامل الدردشة، وخطافات الويب (HMACs، retrays).
التصعيد وفقا لجيش تحرير السودان، لوحات قياس الجودة (الدقة/الاستدعاء، الضوضاء).
معالجة بنقرة واحدة (مع التأكيد ومراجعة الحسابات).
التكرار 3 - التحسين والمقياس (مستمر)
الارتباط حسب الطوبولوجيا/الإطلاقات، الاقتراحات الذاتية للعتبات.
قواعد A/B، توقع «متى ستعمل العتبة».
مراجعات الضوضاء وأيام اللعبة العادية.
20) الأسئلة الشائعة الصغيرة
كيف تتعامل مع إرهاق التنبيه ؟
Dedup، الارتباط، الهستيريا، الهضم ومراكز التفضيل + الضوضاء العادية ومراجعات عتبة A/B.
هل ML ضروري للحالات الشاذة ؟
مفيد، لكن ابدأ بقواعد حتمية وعتبات قابلة للتفسير. ML مثل الإضافة، دائمًا مع Explay.
لماذا يتلقى المستخدمون رسائل بريد إلكتروني «إضافية» ؟
تحقق من تطابق القواعد، وساعات الهدوء، وعمليات التدقيق «لماذا يتم تسليمها»، وحدد حدود القناة/الساعة والخلاصات.
المجموع
نظام الإشارة القوي هو الترشيح الذكي وتحديد الأولويات الصحيحة + الإجراءات بنقرة واحدة. إضفاء الطابع الرسمي على التصنيف والسياسات، وتنفيذ التفكيك/الارتباط/الهستيريا، وإعطاء المستخدمين التحكم (التفضيلات، الغفوة)، وتوفير توصيل موثوق وشفافية "لماذا حصلت عليها. "ثم تصبح الإشارات أداة تحكم وليست مصدر ضوضاء.