بعد ما تشتغل الأنظمة الأوتوماتيكية، كيف تراقب إذا كانت لسه شغالة
هذا هو الدرس الأهم بعد ما شغلت كم مجموعة من خطوط الإنتاج الأوتوماتيكية: **النظام ما ينفع يموت بالليل وتكتشف في اليوم الثاني**.
أنا كنت نازل أشتغل على مهمة مجدولة، وفكرت لما أضبط cron خلاص ممكن أتركها. النتيجة بعد أسبوع، لما رحت أشوف الحالة اكتشفت إنها توقفت عن العمل لمدة 3 أيام – الاتصال بقاعدة البيانات انقطع، وما كان فيه أي إشعار. من بعدها، أنشأت فلسفة مراقبة كاملة، و اليوم أشاركها معكم.
**الطبقة الأولى: مراقبة دورة التنفيذ**
أبسط طريقة هي النظر إلى last_run_at في cron. قاعدتي هي: **إذا كانت آخر وقت تشغيل تجاوزت ضعف الدورة المتوقعة، فوراً أطلق إنذار**. مثلاً، لو المفروض المهمة تشتغل كل 5 دقايق، إذا last_run_at بعد الآن أكثر من 10 دقايق، أرسل تنبيه على تلغرام. هذا المؤشر فعال جداً – حوالي 90% من "النظام وقف" ينكشف خلال ساعة، بدلاً من الانتظار بشكل سلبي إلى أن يكتشفه قسم الأعمال.
**الطبقة الثانية: آلية قطع API**
عدم استقرار API هو الوضع الطبيعي. طريقتي هي: **إذا فشل طلب API 3 مرات متتالية، قطع الاتصال تلقائياً لمدة 24 ساعة**. ليش 3 مرات؟ لأن 1-2 مرات ممكن تكون بسبب تقلبات الشبكة، لكن 3 مرات متتالية تعني إن فيه مشكلة حقيقية. خلال فترة القطع، النظام ما يحاول يستدعي، لتجنب إهدار سعة API الثمينة وسجلات الأخطاء في حالة الخطأ. هذا أفضل بكثير من إعادة المحاولة العمياء.
**الطبقة الثالثة: الحفاظ على ملف الحالة**
كل مرة يشتغل فيها النظام، أسجل الحالة الحالية – عدد النجاحات، عدد الأخطاء، الطابع الزمني، معلومات الخطأ – في ملف حالة. هذا الملف أحتفظ فيه لـ 30 يوم من التاريخ. فائدة هذا الشيء؟ تقدر ترجع للخلف – "ليش نسبة النشر نزلت فجأة يوم الأربعاء الماضي إلى 60%؟" – بس تراجع السجلات وتلاقي الجواب. ملف الحالة ما ياخذ مساحة، لكنه يعطيني سلسلة تدقيق كاملة.
**الطبقة الرابعة: مراجعة أسبوعية يدوية**
كل أسبوع أخصص 15 دقيقة، أخلي النظام يولد تقرير ملخص تلقائياً: نسبة نجاح النشر، توزيع نسبة الأخطاء، إحصائيات الكلمات، وهل فيه تقلبات غير طبيعية. ما يحتاج يكون بشكل متكرر، لكن **ما تقدر تعتمد اعتماد كامل على التنبيهات الأوتوماتيكية**. أحياناً، المشكلة اللي من 2% صارت 4%، المراقبة الأوتوماتيكية ما تخبرك، لكن المراجعة اليدوية تقدر تلاحظ "هنا لازم نبدأ نراقب".
**الفهم الأساسي**
بناء الأتمتة سريع، لكن **المراقبة إذا سويتها صح، تقدر ترتاح وما تتابع**. تجربتي هي: التنبيهات الأوتوماتيكية مسؤولة عن الحالات الطارئة (إذا النظام توقف تماماً)، والمراجعة اليدوية مسؤولة عن مشاكل الاتجاه (التدهور التدريجي). دمج الاثنين، هذا النظام يعيش لفترة طويلة. وإلا، أي أتمتة ذكية، بس تكون قنبلة زمنية في صندوق أسود.
$BTC #DevOps #أوتوماتيكية