كيف نُعلمك أو ننبهك
الانقطاع يستحق الكشف فقط إذا سمع الشخص المناسب عنه. نرسل إلى المكان الذي ينظر إليه فريقك بالفعل، وإلى أنظمتك الخاصة عندما لا يكون الشخص هو أول من يجب أن يتفاعل.
القنوات
كل قناة تحصل على نفس الرسالة: أي مراقب، منذ متى ولماذا. كل منها هو عنوان تضيفه مرة واحدة ثم تسميه في قاعدة.
-
Email كل خطة
رسالة إلى أي عنوان، يتم تأكيدها مرة واحدة قبل أن نرسل إليها، لذا لا يمكن توجيه التنبيه إلى صندوق بريد شخص آخر.
-
Webhook (POST) كل خطة
هيكل JSON يحتوي على كل الحقول أدناه، إلى عنوان URL خاص بك. لأتمتة خاصة بك: افتح تذكرة، أرسل إلى جدول مناوبة، أو غيّر ضوء الحالة.
-
Webhook (GET) كل خطة
نفس الحقول كمعلمات استعلام، لمستقبل يمكنه فقط استقبال طلبات GET.
-
PagerDuty المبتدئ وما فوق
حادثة عبر Events API v2، تُفتح عند الانقطاع وتُحل عند الاستعادة، لذا تصعيد PagerDuty الخاص يتولى الأمر من هناك. الفحص البطيء أو الذي يفقد البيانات يصل كتحذير، وليس كحالة حرجة.
-
Slack المحترف والأعمال
رسالة في قناة، باللون الأحمر عند الانقطاع والأخضر عند العودة، عبر webhook.
-
Microsoft Teams المحترف والأعمال
نفس الرسالة في قناة Teams، عبر webhook.
-
Discord المحترف والأعمال
نفس الرسالة في قناة Discord، عبر webhook القناة.
-
Telegram المحترف والأعمال
نفس الرسالة في محادثة، عبر البوت الخاص بك.
من يسمع عن ماذا، ومتى
أكد أولاً
لا يتم إرسال أي شيء بناءً على قول مسبار واحد. يصبح الفشل انقطاعًا عندما تتفق المسبارات في قارتين أخريين، لذا التنبيه يعني أن الموقع معطل وليس الشبكة بينهما.
القواعد والتدرج
القاعدة تحدد من يسمع عن أي مراقب ومتى بعد بدء الانقطاع. ضع جدول المناوبة في مجموعة اتصال مع تأخير لكل عضو، وتصبح القاعدة تصعيدًا يتوقف فور استعادة المراقب.
العودة، تُقال مرة واحدة
كل من تم إبلاغه عن الانقطاع يتم إبلاغه عند انتهائه، مع مدة استمراره. لن نوقظك لإخبارك بأن الانقطاع قد انتهى.
اختبر قبل أن تحتاجه
كل عنوان لديه زر يرسل اختبارًا عبر نفس المسار الذي يأخذه التنبيه الحقيقي، مصاغ بحيث لا يمكن الخلط بينه وبين انقطاع حقيقي.
الويب هوك، لأنظمتك الخاصة
عنوان webhook هو عنوان URL خاص بك. نتصل به عند تأكيد انقطاع الخدمة، عند استعادتها، وعند الضغط على زر الاختبار. يقوم POST بإرسال الحقول كجسم JSON؛ بينما يقوم GET بإرسالها كمعلمات استعلام. يتم تخزين عنوان URL مشفرًا ولن يتم عرضه بالكامل مرة أخرى، لأن من يمتلكه يمكنه الإرسال إليه.
| الحقل | ما يحتويه |
|---|---|
| reason | down عند تأكيد انقطاع الخدمة، recovery عند انتهائها، test عند ضغط أحدهم على الزر |
| monitor | اسم المراقب |
| monitor_id | معرّفه، نفس المعرّف الموجود في عنوانه في لوحة التحكم |
| target | ما يتحقق منه: عنوان URL، المضيف أو الاسم |
| type | نوع الفحص، كاسم مختصر مثل https، dns أو ssl_cert |
| cause | سبب الفشل، في كلمات قليلة، عندما نعرف |
| error_class | نفس الشيء كاسم مختصر يمكن للبرنامج أن يعتمد عليه، مثل timeout، connection أو certificate_expired |
| started | وقت بدء الانقطاع، كوقت من اليوم مع منطقته الزمنية |
| confirmed_at | وقت تأكيد الفشل |
| confirmed_from | القارات التي أكدت ذلك، كقائمة أسماء. كان اسمًا واحدًا حتى سبتمبر 2026 |
| degraded | true عندما يكون المراقب بطيئًا أو يفقد الحزم بدلاً من أن يكون معطلاً |
| resolved | وقت انتهائه، كطابع زمني ISO 8601، عند الاستعادة |
| duration | مدة استمراره، بالكلمات، عند الاستعادة |
| incident_id | معرّف الحادثة، نفسه في الانقطاع واستعادته |
الحقل الذي ليس لديه شيء ليقوله يكون null في JSON ويتم استبعاده من GET. الرد بأي حالة أقل من 400. أي شيء آخر يُعتبر تسليمًا فاشلًا ويتم المحاولة مرة أخرى بعد 30 ثانية، دقيقتين و10 دقائق، ثم يتم التخلي عنه: التنبيه الذي لم يصل خلال ربع ساعة يصبح تاريخًا وليس خبرًا.