محتويات الدورة

Apache Airflow / المتقدم: المعالجة التاريخية والنشر وأدلة التعافي / الدرس 16

الرصد والسجلات وتشخيص التشغيلات

ربط هوية المهمة وانتقالات الحالة وحداثة العمل دون مساواة النجاح باكتمال الناتج.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • بناء خط حادث محدود من أدلة التشغيلة والمهمة والمحاولة.
  • تمييز تأخر الجدولة ومدة التنفيذ وعمر البيانات التجارية.

البدء بهوية التنفيذ الدقيقة

ينبغي أن يحدد تقرير الحادث DAG والتشغيلة والمهمة وفهرس التوزيع والمحاولة قبل مقارنة السجلات. فقد تكون لتعريف المهمة نفسه تشغيلات متداخلة ومحاولات فاشلة متعددة، فيربط الاسم وطابع زمني وحدهما أدلة غير مترابطة. التقط انتقالات scheduled وqueued وrunning والنتيجة النهائية، مع أزمنتها ومصادرها. احفظ إصدار الشفرة أو الحزمة وتسميات البيئة المعنية. تميز هذه الحقائق مهمة لم تبدأ من أخرى أكملت أثراً خارجياً ثم فشلت عند تسجيل النجاح. نقح المعرفات الحساسة، وتجنب استخدام الحمولات الخام تسميات مقاييس عالية التنوع.

تقسيم التأخر إلى فترات مفهومة

يختلف انتظار الاعتمادات عن انتظار صف التنفيذ وعن مدة المهمة وتأخر النشر اللاحق. قد تكون المهمة قصيرة وناجحة لكن تقريرها قديماً إذا استغرقت جاهزية المدخل أو مرحلة القبول ساعات. اربط حداثة العمل بحد البيانات المقصود والناتج المقبول، لا بنبض العامل وحده. يفصل الحساب المحلي مدة queued إلى البدء عن مدة البدء إلى النهاية باستخدام ثوان صحيحة معطاة. يفترض ساعة واحدة وأزمنة مرتبة؛ وقد تحتاج الأدلة الحقيقية مراجعة المناطق الزمنية واختلاف الساعات. وضح الوحدات وقارن فترات متزامنة، بدلاً من جمع قيمة مجدول حديثة بعينة مهمة قديمة.

python تفكيك محلي للتأخر
queued_s, started_s, finished_s = 100, 145, 157
queue_wait_s = started_s - queued_s
runtime_s = finished_s - started_s
assert queue_wait_s == 45
assert runtime_s == 12
print(queue_wait_s, runtime_s)
الناتج المتوقع
45 12

للخط المعطى 45 ثانية انتظار و12 تنفيذ؛ ولا يقيس مهمة حقيقية.

غياب السجل وفشل العمل تشخيصان مختلفان

يعتمد تخزين سجلات المهام وتقديمها على المعالج المضبوط والنشر. قد تنفذ المهمة فعلاً ولا يظهر سجلها في الواجهة لغياب العامل أو فشل الرفع البعيد أو اختلاف صلاحيات الجلب. وبالعكس، قد يكون غياب السجل متوقعاً إذا لم يصل الإرسال إلى التنفيذ. افحص حالات المهمة وأدلة العامل قبل استنتاج سلوك العمل من لوحة فارغة. للتسجيل البعيد صلاحيات تخزين واحتفاظ مستقلة عن آثار التقرير. يجب ألا يمحو حذف سجل محلي الدليل الوحيد اللازم لأفق التحقيق المدعوم؛ لذا راجع الجلب والاحتفاظ معاً.

حفظ سجل حدث صغير منقح

يسجل JSON محاولة فاشلة مع فئة الفشل وقسم العمل، ويستبعد الحمولات والاعتمادات. تفيد الفئة للتجميع، لكن احفظ فئة الاستثناء الدقيقة المنقحة في الأدلة التفصيلية كي تميز فشل المخطط من تعذر تبعية. اربط الإعادات بالعملية المنطقية نفسها. للإشعارات وcallbacks نتائج تنفيذ وتسليم خاصة بها؛ فلا يثبت غياب تنبيه عدم فشل مهمة. تنبيهات Deadline Alerts تجريبية في Airflow 3.1؛ لذلك يلزم مراجعة دعم الاستدعاء ودلالات الزمن لذلك الإصدار، بدلاً من نسخ سلوك إصدار أحدث.

json حدث تشخيص اصطناعي منقح
{"dag_id":"lab_parcel_report","run_id":"lab-run-17","task_id":"publish","map_index":-1,"try_number":2,"state":"failed","failure_category":"temporary-dependency","business_partition":"2026-10-01"}

يحفظ السجل هوية التنفيذ والعمل دون اعتماد أو صفوف خام.

تغيير المكون الذي تسنده الأدلة

إذا زاد الانتظار وبقي زمن التنفيذ ثابتاً، فافحص القبول والإرسال قبل إعادة كتابة منطق التحويل. وإذا زادت المدة مع تأخر الوجهة، فحقق في التبعية وسياسة مهلة المهمة المحدودة. وإذا تقادم الناتج رغم نجاح المهام، فافحص اختيار الفترة والنشر وفحوص القبول. احفظ الأدلة الأصلية قبل إعادة مصرح بها، لأن المحاولات الجديدة قد تصعب إعادة بناء الحادث. لا يستعلم المقرر عن مراقبة ولا يقرأ سجلات إنتاج ولا يرسل إشعاراً. يتحقق الحساب الزمني وJSON محلياً من التمثيل فقط، وتبقى خدمة السجل ومقاييس المجدول وتسليم الاستدعاءات غير مختبرة.

الأخطاء الشائعة وإصلاحها

دمج سجلات تشغيلتين في حادث واحد.

لماذا يحدث؟
استخدام اسم المهمة وزمن تقريبي فقط.
كيف تصلحه؟
اربط هويات التشغيلة والتوزيع والمحاولة كاملة.
كيف تتجنب تكراره؟
وحد سياق التنفيذ المنظم في التشخيص.

اعتبار لوحة سجل فارغة دليلاً على عدم التنفيذ.

لماذا يحدث؟
الخلط بين جلب السجل وحالة التنفيذ.
كيف تصلحه؟
افحص الانتقالات والعامل وخلفية السجل منفصلة.
كيف تتجنب تكراره؟
اختبر الجلب بعد إزالة العامل في بيئة مصرح بها.

تقديم مدة تنفيذ منخفضة كتأخر تقرير منخفض.

لماذا يحدث؟
استبعاد الجاهزية والصف والنشر.
كيف تصلحه؟
قس حداثة العمل وفكك مراحلها.
كيف تتجنب تكراره؟
سم كل مدة وساعتي بدايتها ونهايتها.

اختبر فهمك

1. إذا كان انتظار الصف 45 ثانية والتنفيذ 12 ثانية، فهل يزيل تحسين التنفيذ ثانيتين معظم التأخر؟

اعرض الحل المشروح

لا. تهيمن مدة انتظار الصف على الفترة المعطاة البالغة 57 ثانية، ولا يوفر تقليل التنفيذ ثانيتين إلا جزءاً صغيراً منها. افحص أدلة القبول أو الإرسال أولاً، وتحقق أيضاً مما إذا كانت جاهزية المدخل والنشر النهائي تضيفان تأخراً آخر خارج الطوابع الزمنية المعطاة.

2. هل يثبت وصول إشعار فشل أن التقرير لم ينشر في الوجهة مطلقاً؟

اعرض الحل المشروح

لا. قد تفشل المهمة بعد نجاح نشر خارجي وقبل تسجيل نتيجته. اربط هوية عملية الوجهة وإقرارها بالخط الزمني للمهمة. احفظ وصف عدم اليقين وصالح الأثر المنشور قبل أن تنشئ إعادة التشغيل أثراً آخر أو تستبدل نتيجة صحيحة.

أهم ما تعلمته

  • تجعل الهوية والساعات المتزامنة الأدلة قابلة للفهم.
  • مقاييس التنفيذ وإتاحة السجل وحداثة العمل إشارات مختلفة.

المراجع الرسمية