Docker / أدلة البناء وعمليات الإنتاج / الدرس 16
المراقبة المترابطة وتشخيص الحوادث
اربط هوية الإصدار والحالة والسجلات والقياسات وأعراض المستهلك قبل التغيير.
في هذه الصفحة
أهداف الدرس
- اجمع أدلة قراءة محدودة بأوقات واستعلامات منتهية.
- ميّز فشل التطبيق والموارد والتخزين والشبكة.
تبدأ الحادثة المفيدة بتسلسل زمني
سجل العرض وبدايته والإصدار وأي استبدال أو تغيير أو حدث اعتماد سابق. معرّف الحاوية هوية نسخة لا اسم خدمة ثابت. اربط الطلبات والمراجعات دون كشف بيانات شخصية. لا تثبت لقطة قياس واحدة السببية؛ بل اربط الأدلة بتسلسل متسق وصرح بما لم يختبر.
اقرأ سجلات محدودة واحفظ الهوية
ينبغي أن تحمل السجلات وقتاً وشدة وسياقاً. يعتمد الجمع على المشغل والتدوير والنقل. قد يعني غياب السطر عدم الحدث أو حاوية أخرى أو بقاءه في الذاكرة أو تدويراً أو مشكلة جمع. اطلب الفترة والقدر اللازمين واحفظ الفشل قبل الإعادات، ولا تطبع البيئة والأسرار وبيانات العملاء.
docker logs --timestamps --since 10m --tail 100 parcel-api
docker container inspect parcel-api --format '{{json .State}}'
تفحص القراءات حاوية موجودة عبر وجهة مصرح بها. قد تتضمن السجلات أسراراً رغم القراءة فقط. ويمكن فحص حالة وسجل حاوية خارجة؛ فلا تشغل تشخيصاً لمعرفة سبب الخروج وحده. لا نختلق سطوراً أو رموزاً.
تصف القياسات الضغط لا السبب كله
تحدد قياسات الموارد الضغط وقد تفوت لقطة واحدة دفعة قصيرة. وقد يختلف عرض الذاكرة عن حساب API أو cgroup. قارن الاتجاهات والحدود بزمن الطلب والصحة. قد تنتظر عملية خدمة بعيدة بمعالج قليل وإتاحة سيئة. ارتفاع الاستخدام دليل للفحص لا إذن لرفع كل الحدود.
docker stats --no-stream parcel-api
docker events --since 10m --until 0s --filter container=parcel-api
تعطي--no-stream لقطة وتطلب الفترة أحداثاً حديثة. تاريخ الأحداث محدود وليس سجل تدقيق دائمًا. اربط الهوية والوقت؛ فلا تثبت لقطة بعد التعافي ذروة الحادثة.
اتبع شجرة تشخيص لا طقس إعادة ضبط
عند الخروج افحص الأمر والحالة والذاكرة والبدء. وعند العمل دون وصول ميّز النطاق والاسم والمستمع والنشر والمسار. وللكتابة افحص النمط والملكية والخريطة والسعة، وللتأخير قارن الخنق والضغط والانتظار والحركة. تضيق الفروع السبب قبل الإصلاح؛ وقد تمحو الإعادة الشاملة رابطه بالأعراض.
اجعل الأدلة قابلة للاستخدام بين الفرق
احفظ السياق والمشروع والصورة والحاوية والمنطقة الزمنية والتشخيص في سجل مقيد. احجب الأسرار وأبق معرّفات الربط. افصل الحقيقة والفرضية وحدد فحص ما بعد الإصلاح. أنذر بفشل المستهلك وتعطل التعافي مع الحدود الخام. سلامة العملية والفحص والعمل الحقيقي إشارات متكاملة لا بدائل.
الأخطاء الشائعة وإصلاحها
لم تظهر الأخطاء لأن السجلات لحاوية بديلة.
- لماذا يحدث؟
- خُلط اسم الخدمة بنسخة الحادثة.
- كيف تصلحه؟
- اربط الإنشاء والمعرّف والإصدار والدليل السابق.
- كيف تتجنب تكراره؟
- احفظ السياق قبل فقده بالاستبدال.
استُبعد الخنق السابق بلقطة معالج منخفضة.
- لماذا يحدث؟
- فُهم القياس اللاحق كتغطية تاريخية.
- كيف تصلحه؟
- استخدم الاتجاهات والأحداث للفترة المعنية.
- كيف تتجنب تكراره؟
- احفظ دقة زمنية تكفي الدفعات والتعافي.
كشف فحص كامل أسراراً في تقرير عام.
- لماذا يحدث؟
- شمل التشخيص البيئة والمسارات دون حاجة.
- كيف تصلحه؟
- عالج الكشف واجمع حقولاً محدودة محجوبة.
- كيف تتجنب تكراره؟
- صمم قالب أدلة تشخيص معتمداً ومحدوداً.
اختبر فهمك
1. لماذا تفحص حاوية خارجة قبل محاولة صدفة تفاعلية؟
اعرض الحل المشروح
قد تفسر الحالة والسجلات الفشل، بينما يتطلب exec هدفاً يعمل ويبدأ عملية إضافية. وقد لا تتضمن الصورة صدفة. ابدأ بالأدلة القائمة ثم اختر تشخيصاً مصرحاً إذا بقي الغموض.
2. ما الأدلة التي تميز نشرًا خاطئاً من انهيار التطبيق؟
اعرض الحل المشروح
يحمل الانهيار حالة خروج أو اعادة ودليل سجل ورمز. وقد يتزامن نشر خاطئ مع عملية سليمة وصحة HTTP داخلية. قارن رابط المستهلك والتعيين والمستمع والحالة لا فشل المتصفح وحده.
أهم ما تعلمته
- اربط الهوية والوقت قبل تفسير السجلات والقياسات.
- اقرأ بحدود واحفظ الدليل وافحص عمل المستهلك الفعلي.