التتبع (البرمجيات)

يشير التتبع في هندسة البرمجيات إلى عملية جمع وتسجيل المعلومات المتعلقة بتنفيذ برنامج برمجي. يستخدم المبرمجون هذه المعلومات عادةً لأغراض تصحيح الأخطاء ، بالإضافة إلى ذلك، وبحسب نوع المعلومات وتفاصيلها الواردة في سجل التتبع، يستخدمها أيضًا مديرو الأنظمة ذوو الخبرة أو موظفو الدعم الفني ، وأدوات مراقبة البرمجيات لتشخيص المشكلات الشائعة في البرمجيات. [ 1 ] يُعدّ التتبع من الاهتمامات الشاملة .

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

يُستخدم التتبع بشكل أساسي للكشف عن الحالات الشاذة، وتحليل الأعطال، وتصحيح الأخطاء، أو لأغراض التشخيص في أنظمة البرمجيات الموزعة، مثل الخدمات المصغرة أو الوظائف غير الخادمة. [ 2 ]

تتبع البرمجيات

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

  • نظرًا لأن تتبع البرمجيات يتم على مستوى منخفض، فغالبًا ما يتطلب الأمر تعريف أنواع عديدة من الرسائل، وكثير منها يُستخدم في موضع واحد فقط من الكود. ويُضيف نموذج رمز الحدث عبئًا كبيرًا على عملية التطوير بسبب هذه الرسائل "التي تُستخدم لمرة واحدة".
  • غالباً ما تكون أنواع الرسائل التي يتم تسجيلها أقل استقراراً خلال دورة التطوير مقارنة بتسجيل الأحداث.
  • بما أن مخرجات التتبع مخصصة للاستخدام من قبل المطور، فلا داعي لترجمة الرسائل. لذا، من المهم فصل رسائل التتبع عن الموارد الأخرى التي تحتاج إلى ترجمة (مثل رسائل الأحداث).
  • هناك رسائل لا ينبغي رؤيتها أبداً .
  • ينبغي الاحتفاظ برسائل التتبع ضمن الكود، لأنها تُحسّن من سهولة قراءته. وهذا ليس ممكناً أو عملياً دائماً مع حلول تسجيل الأحداث.

أدوات

OpenTelemetry هو مشروع مفتوح المصدر تابع لمؤسسة CNCF، يوفر دعمًا شاملاً للتتبع الموزع. [ 3 ] كما يقدم بعض الموردين، بما في ذلك Datadog و Dynatrace و New Relic و Splunk، خدمات SaaS للتتبع. [ 4 ]

طورت كل من جوجل وميتا أطر عمل خاصة بهما لتتبع البيانات، أطلق عليها اسم دابر وكانوبي على التوالي. [ 2 ]

التتبع الخاص بالتطبيق

التتبع الخاص بالنظام

في أنظمة التشغيل، يمكن استخدام التتبع في المواقف (مثل بدء التشغيل ) حيث قد لا تكون بعض التقنيات المستخدمة لتوفير تسجيل الأحداث متاحة.

يُوفر نظام لينكس إمكانيات تتبع على مستوى النظام ومستوى المستخدم باستخدام علامات النواة و LTTng . كما يدعم ftrace تتبع نواة لينكس. أما syslog فهو أداة أخرى في أنظمة التشغيل المختلفة لتسجيل وتتبع رسائل النظام.

يستخدم كل من FreeBSD و SmartOS برنامج DTrace للتتبع في كل من مساحة المستخدم ومساحة النواة .

في البرمجيات المدمجة ، يتطلب التتبع أيضًا تقنيات خاصة للقياس والتسجيل الفعالين مع تقليل الحمل الزائد على وحدة المعالجة المركزية. [ 6 ]

التقنيات

توليد وجمع البيانات

يمكن توليد تتبعات استدعاءات الدوال باستخدام أدوات تحليل التعليمات البرمجية المصدرية، أو جمع معلومات وقت التشغيل، أو تحت سيطرة مصحح الأخطاء. [ 7 ] ويمكن استخدام وحدات الماكرو للتتبع، والبرمجة الموجهة نحو الجوانب ، وتقنيات التحليل ذات الصلة .

تقوم المكتبات المستخدمة في شفرة المصدر بإرسال البيانات إلى وكيل أو مباشرة إلى مكون التجميع. [ 4 ]

تحليل الآثار

لنمذجة أشجار التنفيذ، يقوم برنامج ISVis بتحويل الشجرة الجذرية إلى رسم بياني موجه غير دوري، بينما يستخدم برنامج Jinsight مبدأ إطار الاستدعاء لجمع وتمثيل المعلومات التراكمية حول التتبعات. [ 7 ]

تُعدّ طريقة عرض مسارات العمل الطريقة الأساسية لعرض البيانات، كما هو الحال في أدوات مثل Jaeger ، والتي غالبًا ما تتضمن تعليقات توضيحية وخصائص مفتاح-قيمة. على الرغم من شيوع استخدامها، إلا أن هذا التصميم يفتقر إلى تبرير دقيق، ويواجه المستخدمون تحديات متكررة مثل نقص الميزات وصعوبة التنقل. توجد بدائل لعرض مسارات العمل، مثل عرض تبعية الخدمة في Jaeger أو عروض القائمة والشجرة والجدول في SkyWalking. تُستخدم أيضًا طرق العرض التجميعية لتحليل كميات كبيرة من البيانات، حيث توفر أنظمة مثل Canopy مقاييس قابلة للاستعلام، بينما يوفر Jaeger ميزات مقارنة البيانات. [ 8 ]

تسجيل الأحداث

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

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

يتم التعامل مع مشكلة خاصة، وهي منع تسجيل الأحداث المكررة "بشكل متكرر للغاية"، من خلال التحكم في معدل الأحداث.

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

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

التحديات والقيود

غالبًا ما يتطلب تفعيل أو تعطيل التتبع أثناء التشغيل تضمين بيانات إضافية في الملف التنفيذي. قد يؤدي ذلك إلى تراجع الأداء، حتى في حالة عدم تفعيل التتبع. يعتمد العبء الإضافي للتتبع على الإطار المستخدم والميزات المُفعّلة؛ [ 9 ] في خوادم الإنتاج، توجد مفاضلة بين دقة التتبع والعبء الإضافي الناتج.

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

يتطلب التتبع في البرمجيات عادةً معايير عالية من المتانة ، ليس فقط في دقة وموثوقية مخرجات التتبع ولكن أيضًا في ضمان استمرار العملية التي يتم تتبعها دون انقطاع.

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

الأمن والخصوصية

في البرامج الاحتكارية ، قد تتضمن بيانات التتبع معلومات حساسة حول شفرة المصدر للمنتج .

انظر أيضاً

مراجع

  1. "كتاب التتبع" . مؤرشف من الأصل بتاريخ 24-02-2009.
  2. 1 2 لي، بوين؛ بينغ، شين؛ شيانغ، كيلين؛ وانغ، هانتشانغ؛ شي، تاو؛ صن، جون؛ ليو، شوانزه (2022). " استمتع بإمكانية المراقبة: دراسة استقصائية صناعية لتتبع وتحليل الخدمات المصغرة" . هندسة البرمجيات التجريبية . 27 (1): 25. doi : 10.1007/s10664-021-10063-9 . ISSN 1382-3256 . PMC 8629732. PMID 34867075 .   
  3. ماندل، مايا (2023-06-07). "منشور المجلس: التتبع الموزع: مفتاح مراقبة الخدمات المصغرة" . فوربس . تم الاسترجاع في 2024-01-12 .
  4. 1 2 جينز، أندريا؛ لي، شياوتشو؛ ليناردوزي، فالنتينا (2023). "أدوات التتبع المفتوحة: نظرة عامة ومقارنة نقدية" . مجلة الأنظمة والبرمجيات . 204 111793. إلسيفير بي في. arXiv : 2207.06875 . doi : 10.1016/j.jss.2023.111793 . ISSN 0164-1212 . 
  5. "نقاط التتبع (تصحيح الأخطاء باستخدام GDB)" . sourceware.org . تم الاطلاع عليه بتاريخ 24-06-2022 .
  6. كرافت، يوهان؛ وول، أندرس؛ كينلي، هولجر (2010)، "تسجيل التتبع للأنظمة المدمجة: دروس مستفادة من خمسة مشاريع صناعية" ، التحقق أثناء التشغيل ، سبرينغر برلين هايدلبرغ، ص 315-329 ، doi : 10.1007/978-3-642-16612-9_24 ، ISBN  9783642166112
  7. 1 2 ميرتز، جوني؛ نونيس، إنغريد (2019). حول الجدوى العملية لمراقبة البرمجيات: إطار عمل لتتبع التنفيذ منخفض التأثير . CASCON '04: وقائع مؤتمر 2004 لمركز الدراسات المتقدمة حول البحوث التعاونية. IEEE. ص 169-180 . doi : 10.1109/SEAMS.2019.00030 . ISBN  978-1-7281-3368-3.
  8. ديفيدسون، توماس؛ وول، إميلي؛ مايس، جوناثان (2024). "دراسة نوعية قائمة على المقابلات حول تصور التتبع الموزع: توصيف للتحديات والفرص". معاملات IEEE في التصور ورسومات الحاسوب . 30 (7): 3828-3840 . doi : 10.1109/TVCG.2023.3241596 .
  9. رايشيلت، دي جي؛ كوهن، إس؛ هاسلبرينغ، دبليو (2021). مقارنة التكاليف الإضافية لبرامج OpenTelemetry وinspectIT وKieker (ملف PDF) . ندوة حول أداء البرمجيات. المجلد 3043. CEUR-WS.org.