كيف نُعلمك أو ننبهك
الانقطاع يستحق الكشف فقط إذا سمع الأشخاص المناسبون عنه. نرسل الإشعارات إلى حيث يوجد فريقك بالفعل وإلى أنظمتك الخاصة عبر webhooks.
القنوات
كل قناة تحصل على نفس الرسالة: أي مراقب، منذ متى ولماذا. أدناه تجد قائمة بالقنوات المتاحة.
-
Email كل خطة
رسالة إلى أي عنوان. يجب تأكيد عنوان البريد الإلكتروني مرة واحدة.
-
Webhook (POST) كل خطة
هيكل JSON يحتوي على البيانات ذات الصلة يتم إرساله إلى عنوان URL الذي قدمته. لأتمتة العمليات الخاصة بك: افتح تذكرة، أبلغ شخصًا، غيّر حالة الضوء.
-
Webhook (GET) كل خطة
نفس الحقول الموجودة في POST webhook ولكن الآن كمعلمات استعلام، للمستقبل الذي يقبل طلب 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 | القارات التي أكدت ذلك، كقائمة أسماء. |
| degraded | true عندما يكون المراقب بطيئًا أو يفقد الحزم بدلاً من أن يكون معطلاً |
| resolved | وقت انتهائه، كطابع زمني ISO 8601، عند الاستعادة |
| duration | مدة استمراره، بالكلمات، عند الاستعادة |
| incident_id | معرّف الحادثة، نفسه في الانقطاع واستعادته |
الحقل الذي لا يحتوي على قيمة يكون null في JSON ويتم استبعاده من GET. يجب الرد بأي حالة أقل من 400. أي شيء آخر يُعتبر تسليمًا فاشلًا ويتم المحاولة مرة أخرى بعد 30 ثانية، دقيقتين و10 دقائق، ثم يتم التخلي عنه: التنبيه الذي لم يصل خلال ربع ساعة يصبح تاريخًا وليس خبرًا.