Connection Status
اتصالفحص حالة الاتصال بـ WhatsApp provider كل 30 دقيقة. تمييز بين disconnected مؤقت وفعلي.
النتيجة: اكتشاف قبل ساعة من العميل.
خدمة 5.10 · بنية تحتية
فحص كل 30 دقيقة، تعافي تلقائي، تنبيهات ذكية. النظام يكتشف نفسه قبل أن يكتشفه أحد.
TL;DR — طبقة مراقبة تأتي مع كل منظومة نُسلّمها — فحص كل 30 دقيقة، تعافي تلقائي للأعطال العابرة، تنبيهات ذكية (بريد HTML + WhatsApp) بعد 3 محاولات فاشلة فقط، واحترام لأوقات العمل. قاعدتنا: النظام الذي لا يخبرك أنه معطّل أسوأ من عدم وجوده.
| الجانب | سلبية | ذاتية (نحن) |
|---|---|---|
| اكتشاف العطل | حين يشتكي عميل | فحص كل 30 دقيقة |
| الاستجابة | تدخّل بشري بعد ساعات | Restart تلقائي ثم re-check |
| التنبيهات | لو وصلت أصلاً | بريد HTML احترافي بعد 3 محاولات |
| Spam protection | 100 تنبيه لعطل واحد | تنبيه كل 4 ساعات كحد أقصى |
| Time awareness | تنبيه في عطلات | ذكي — لا إنذار 3ص خارج العمل |
| تاريخ المنظومة | غير موجود | State table في DB |
فحص حالة الاتصال بـ WhatsApp provider كل 30 دقيقة. تمييز بين disconnected مؤقت وفعلي.
النتيجة: اكتشاف قبل ساعة من العميل.
هل انقطع تدفّق الرسائل بلا سبب؟ مقارنة بالمتوسط التاريخي لهذا الوقت من اليوم.
النتيجة: انحراف إحصائي مكتشَف.
عطلة يوم الجمعة؟ عطلة رسمية؟ بعد ساعات العمل؟ النظام يعرف ولا يُزعج بلا داع.
النتيجة: صفر تنبيهات مزعجة.
مهمّة دورية تُشغّل عملية الفحص. 48 فحص يومي لكل منظومة. سجل كامل لكل فحص في قاعدة البيانات.
Restart تلقائي → انتظار 30 ثانية → re-check. فقط بعد 3 محاولات فاشلة متتالية يُرسَل تنبيه بشري.
تنبيه ليس plain text — بريد مُنسَّق بالهوية البصرية، خطوات التعافي، لقطة من الـ logs، رابط للوحة المراقبة.
لا بريد جديد إلا بعد 4 ساعات من آخر تنبيه. يمنع إزعاج الفريق عند تكرار نفس المشكلة في وقت قصير.
تقويم ساعات العمل + العطلات الرسمية السعودية. تنبيه critical يُرسَل دائماً، لكن info ينتظر ليوم العمل التالي.
كل منظومة لها سجل حالة (consecutive_no_messages، last_email_sent_at، last_status). القرارات تعتمد على التاريخ لا الحاضر فقط.
كل 30 دقيقة، عملية الفحص تُستدعى تلقائياً. 48 فحصاً يومياً لكل منظومة مُراقَبة.
استعلام WhatsApp provider API: هل الاتصال open؟ closed؟ error؟
استعلام Postgres: عدد الرسائل في آخر 30 دقيقة. مقارنة بالمتوسط التاريخي.
فحص الساعة الحالية مقابل business hours + holidays. تحديد نوع التنبيه المناسب.
لو فشل: Restart تلقائي → wait 30s → re-check. تسجيل المحاولة في state table.
بعد 3 محاولات فاشلة متتالية + آخر تنبيه > 4 ساعات = تنبيه بشري.
بناء بريد احترافي: الحالة، آخر الأحداث، خطوات التعافي المُجرَّبة، link للوحة.
تحديث last_email_sent_at، last_status، consecutive_no_messages في DB.
| المقياس | قبل | بعد |
|---|---|---|
| وقت اكتشاف العطل | ساعات (شكوى العميل) | دقائق (الفحص التلقائي) |
| التنبيهات الكاذبة | 10-20% من الوقت | قريب من الصفر |
| التعافي التلقائي | لا يوجد | أغلب الأعطال العابرة تُحَلّ |
| ساعات متابعة الفريق | 1-2 ساعة يومياً | <15 دقيقة |
فحص كل دقيقة = 1440 فحص يومياً لكل منظومة — عبء على APIs ومكلف. 30 دقيقة = 48 فحصاً يومياً، وهو كافٍ لاكتشاف الأعطال قبل 99% من الحالات الحرجة. لأنظمة مالية real-time، نُقلّل إلى 5 دقائق.
لا. Self-Healing يعالج الأعطال العابرة: connection timeout، rate limit مؤقت، memory leak خفيف. الأعطال البنيوية (API تغيّر، DB عطل) تتطلّب تدخّل بشري. الهدف: 80% من الأعطال تُحَلّ تلقائياً.
~$5-20 شهرياً لكل منظومة مُراقَبة. تكلفة API calls للفحوصات + Email (SMTP أو SendGrid).
نعم، بشروط. نحتاج API للنظام نُراقبه (health check endpoint). نبني طبقة المراقبة منفصلة عن النظام. تعاملنا مع أنظمة خارجية (Salesforce، ERP قديم) بنفس النمط.
التصعيد: لو لم يُفتح البريد خلال ساعة (Gmail read receipt أو tracking pixel)، يُرسَل تنبيه WhatsApp للمسؤول الأول. ثم بعد ساعة، للمسؤول الثاني (escalation chain).
1-2 أسبوع. معظم الوقت في Discovery: ما المنظومات التي نُراقب؟ ما الـ health checks المطلوبة؟ مَن يستقبل التنبيهات؟ البناء نفسه أسرع — قوالب جاهزة نُكيّفها.
احجز جلسة مجانية (45 دقيقة). نخرج منها بتقدير واضح: هل الأتمتة تستحق الاستثمار، وكم ستوفر، وفي كم أسبوع.