اجعل التطبيق يخبرك متى يكون سليمًا — ويصرخ حين لا يكون.
الوحدة 11 · فحوص الصحّة، والسجلّات، والمقاييس، والتنبيهات.
متقدّم قابلية الرصد يتضمّن مختبرًا ~50 دقيقةالمتطلبات المسبقة: الوحدة 10 (خزنةٌ منشورة). تعمّق: مختبر DevOps: المراقبة والسجلّات.
تطبيقك حيّ — لكن هل هو يعمل الآن؟ يقدّم أخطاءً؟ بطيء؟ نفدت ذاكرته؟ بلا قابلية رصد، تكتشف حين يشتكي مستخدم. ذاك آخر مواطن الفشل الستة، بمقياس الإنتاج: كسرٌ صامتٌ لا يراه أحد.
| الركيزة | تُجيب عن |
|---|---|
| السجلّات | ماذا حدث؟ (سجلٌّ قابل للبحث للأحداث) |
| المقاييس | كم / بأيّ سرعة؟ (أرقامٌ عبر الزمن: طلبات، أخطاء، زمن استجابة) |
| فحوص الصحّة | هل هو يعمل الآن؟ (نقطة نعم/لا بسيطة) |
| التنبيهات | هل ينبغي أن يهتمّ إنسانٌ الآن؟ (إشعاراتٌ تلقائية) |
أبسط رصدٍ وأعلاه قيمة: نقطة /health تعيد OK حين يستطيع التطبيق تقديم الطلبات. تنبضها مراقبات التشغيل والمنسّقات باستمرار — فإن توقّفت عن الردّ، عرفوا فورًا.
وجّه خدمة تشغيلٍ مجانية إلى /health وستصلك رسالة/رسالة نصّية خلال دقيقةٍ من سقوط تطبيقك — قبل أن يلاحظ معظم مستخدميك.
سجّل كبياناتٍ منظَّمة (JSON)، لا نصوصًا عشوائية، كي تبحث وترشّح. ضمّن الطلب والحالة والمدّة — ولا تسجّل أسرارًا أو بياناتٍ شخصيةً كاملة.
اكشف نقطة /metrics من عدّاداتٍ وأزمنة؛ Prometheus يكشطها، وGrafana يرسمها. معدّل الطلبات ومعدّل الأخطاء وزمن الاستجابة (مقاييس «RED») تخبرك بصحّة التطبيق بنظرة.
وحدة المراقبة في مختبر DevOps تشحن إعداد Prometheus + Grafana عاملًا ولوحة JSON. أعِد استخدامها ضدّ الخزنة بدل توصيل المراقبة من الصفر.
اللوحات تنفع فقط إن نظر إليها أحد. التنبيهات تقلب ذلك: عرّف قاعدةً («معدّل الأخطاء > 5% لخمس دقائق»، «/health ساقط») واحصل على إشعارٍ تلقائيّ. التنبيهات الجيّدة قليلةٌ وذات معنًى وقابلةٌ للفعل — إرهاق التنبيهات حقيقيّ.
نادِ إنسانًا لـ«المستخدمون لا يستطيعون إنشاء مقتطفات»، لا «المعالج بلغ 70% لثانية». كل تنبيهٍ ينبغي أن يعني «شخصٌ يجب أن يتصرّف». والباقي مكانه لوحة.
ستضيف فحص صحّة، وتسجيل طلباتٍ منظَّمًا، ومقياسًا واحدًا على الأقل — ثم تشاهد تطبيقك يبلّغ عن نفسه.
خزنة snippet-vault المنشورة من الوحدة 10.
أضِف نقطة GET /health تعيد الحالة ومدّة التشغيل. أضِف اختبارًا لها. راجع، أودِع.
راجع التغيير — أكّد ألّا شيء حسّاس يُسجَّل.
أضِف نقطة /metrics (صيغة Prometheus) بعدّاد طلباتٍ على الأقل. وإن أردت الصورة الكاملة، اربط Prometheus + Grafana من مختبر DevOps ضدّها.
اضرب التطبيق بضع مرّات، ثم افحص /health وسجلّاتك و/metrics. وجّه مراقب تشغيلٍ مجانيًّا إلى /health لتنبيهٍ حقيقيّ.
في REFLECTION.md: ما أوّل شيءٍ تريد تنبيهًا عليه، ولماذا؟ أودِع.
مستودع snippet-vault. تحقّق من نفسك:
/health يعيد الحالة؛ وله اختبار/metrics تكشف مقياسًا واحدًا على الأقلREFLECTION.md يسمّي أوّل تنبيهٍ لك| المصطلح | المعنى المبسّط |
|---|---|
| قابلية الرصد | القدرة على فهم ما يفعله تطبيقك العامل من الخارج. |
| فحص الصحّة | نقطةٌ تقول إن كان التطبيق يعمل. |
| السجلّ المنظَّم | مدخل سجلٍّ كبياناتٍ (JSON) تبحث وترشّح فيها. |
| المقياس | رقمٌ يُتتبَّع عبر الزمن (طلبات، أخطاء، زمن استجابة). |
| التنبيه | إشعارٌ تلقائيٌّ عند خرق قاعدة. |
تطبيقٌ منشورٌ يبلّغ عن صحّته، ويسجّل ما يفعل، ويكشف مقاييس، ويستطيع تنبيهك حين يخطئ شيء. تلك حلقة DevOps الكاملة — وآخر مواطن الفشل الستة، مُغلَقًا.
التالي: الوحدة 12 — المشروع الختامي: من الفكرة إلى الإطلاق. ستأخذ فكرةً جديدةً تمامًا عبر هذه الدورة الحياتية كلّها بنفسك — قطعة المعرض التي تُثبت أنك تبرمج بالإحساس وتشحن كالمحترف.