قابلية الرصد / المتوسط: الرصد والتفسير / الدرس 7
حدود الرصد وملكيته
اجمع رصد الإطار مع مشاهدات مقصودة لمعنى العمل، مع تجنب المقاطع المكررة وأحداث الاكتمال الملتبسة وافتراضات SDK غير الظاهرة.
في هذه الصفحة
أهداف الدرس
- قارن تغطية الرصد الآلي والرصد المضاف بالشيفرة.
- ضع المشاهدات عند انتقالات حالة تحمل معنى واضحاً.
- راجع ملكية الرصد وتوافق نسخه وتكاملاته.
للتغطية الآلية نطاق محدد
يستطيع الرصد الآلي أو الرصد بلا شيفرة مراقبة حدود مدعومة في الإطار وبيئة التشغيل والمكتبات، دون إضافة كل مشاهدة يدوياً. لكنه لا يعرف تلقائياً أن مسح طرد أصبح تحديث تتبع محفوظاً دائماً، أو أن قاعدة عمل رفضت انتقال حالة. يمكن للرصد البرمجي إضافة هذه المعاني، لكنه يحتاج صيانة وتموضعاً دقيقاً. راجع بيئة التشغيل ونسخة المكتبة والخطافات المدعومة وسلوك الاتفاقيات الدلالية الفعلية. عامل النهجين كمتكاملين؛ فرصد طلب HTTP دليل عن حد ذلك الطلب، وليس سجلاً شاملاً تلقائياً لكل خطوة عمل خلفه.
ارصد انتقال الحالة الذي تدعي قياسه
اختر نقاط مشاهدة تميز القبول والمحاولة والثبات والنشر والظهور للمستخدم. قد يقيس مقياس تزداد قيمته قبل الحفظ محاولات، حتى إذا سماه مؤلفه تحديثات مكتملة. في جدول الحالة الافتراضي، يتبع قبول المسح فشل تخزين، ولذلك يجب أن يبقى عدد المكتمل صفراً. أدرج مسارات الفشل والإلغاء في مراجعة التصميم. لا تصدر حدث الاكتمال نفسه من مكتبة مشتركة ومستدعيها معاً، إلا إذا كانت مجموعتاهما مختلفتين بقصد ومسماة بوضوح. قد تضخم ازدواجية الرصد الأعداد بينما يبدو التفصيل الإضافي مطمئناً.
operation: parcel-scan-processing
state_sequence: [accepted, storage-attempted, storage-failed]
accepted_event: emit-on-acceptance
completed_event: emit-only-after-required-commit
expected_completed_count: 0
owner_boundary: application-business-transition
يوضح السجل حد اكتمال يأتي بعد الثبات المطلوب. وهو ليس شيفرة تطبيق أو إعداداً لـSDK تتبع.
اختبر الأحداث الدلالية بنموذج خالص
تسجل الدالة المحلية قبولاً دائماً لمسح افتراضي مؤهل، ثم تسجل الاكتمال فقط عندما تنجح نتيجة الحفظ في النموذج. ينتج النداءان مسار قبول وحده ومسار قبول مع اكتمال. يفحص ذلك التصنيف المقصود دون محاكاة تخزين. يحتاج التنفيذ الحقيقي أيضاً إلى مراعاة الاستثناءات وانهيار العملية وتكرار التسليم والنتائج الجزئية. افصل عقد حدث العمل عن آلية تصدير بيانات القياس؛ فلا ينبغي لفشل المصدر أن يغير حالة العمل بصمت أو يعيد تعريف هل اكتملت المعالجة فعلاً.
def observations(persisted):
events = ["scan.accepted"]
if persisted:
events.append("scan.completed")
return events
assert observations(False) == ["scan.accepted"]
assert observations(True) == ["scan.accepted", "scan.completed"]
print(observations(False))
print(observations(True))
['scan.accepted']
['scan.accepted', 'scan.completed']
القيمة المنطقية نتيجة افتراضية، وليست استجابة تخزين. يُتحقق فقط من تسلسل الأحداث الذي تصدره الدالة.
ميّز المكتبة التي تنتج الرصد
يحدد نطاق الرصد في OpenTelemetry المكتبة أو المكوّن المنتج لبيانات القياس، بينما تصف هوية المورد الكيان الجاري رصده. يساعد الفصل بين المفهومين على تفسير إصدار مكتبتين عمليات متشابهة أو تغير السمات بعد تحديث الرصد. سجل النسخ المتوافقة ومالك المشاهدات المخصصة. قد يفرض غلاف رصد مشترك أسماء وحقولاً آمنة، لكن الغلاف الجامد أكثر من اللازم قد يخفي معاني لازمة للإشارة. راجع عقد العمل وسلوك SDK الفعلي معاً. لا تفترض تطابق الميزات أو الافتراضات في تطبيقات اللغات لمجرد تشابه مفهوم API.
راجع الرصد بوصفه سلوكاً منشوراً
قد يضيف الرصد عملاً على المعالج وتخصيص ذاكرة وتزامناً وشبكة وكشفاً لبيانات خاصة. راجع المسارات الساخنة وقيم السمات المحدودة قبل إضافة التفاصيل، ثم اجمع دليلاً مناسباً للأداء في عزل عند الحاجة. استخدم معالجة أخطاء تحافظ على سلوك التطبيق المقصود دون إخفاء فشل القياس عن المشغلين. تتبع التغيرات الدلالية وحدّث الاستعلامات واللوحات والاختبارات معاً. تنفذ الدورة عينة تصنيف أحداث خالصة فقط؛ ولا تثبت وكيل رصد أو تتصل بعملية أو تدعي تكلفة تشغيلية أو تغطية سياق خاصة ببيئة معينة. تحتاج هذه الادعاءات البيئة المدعومة الفعلية ودليلاً صريحاً.
الأخطاء الشائعة وإصلاحها
يتضمن عدد التحديثات المكتملة كتابات فاشلة.
- لماذا يحدث؟
- صدر الرصد قبل الثبات المطلوب.
- كيف تصلحه؟
- انقل المشاهدة أو أعد تسميتها بحيث تطابق حد الحالة.
- كيف تتجنب تكراره؟
- اختبر معاني الفشل والاكتمال الجزئي.
يظهر كل نداء اعتمادية مرتين.
- لماذا يحدث؟
- تداخل الرصد الآلي مع اليدوي.
- كيف تصلحه؟
- افحص النطاق والملكية قبل إزالة التغطية المكررة.
- كيف تتجنب تكراره؟
- راجع تغييرات التكامل باستخدام تتبعات ممثلة.
يكسر تحديث SDK الاستعلامات بصمت.
- لماذا يحدث؟
- لم تُتتبع تغيرات السمات والاتفاقيات.
- كيف تصلحه؟
- راجع النسخ المدعومة وانقل المستهلكين بقصد.
- كيف تتجنب تكراره؟
- ثبت عقد الرصد ووثقه.
اختبر فهمك
1. تصدر مكتبة HTTP مقطع عميل بالفعل. هل ينبغي لشيفرة العمل دائماً إنشاء مقطع آخر مطابق؟
اعرض الحل المشروح
لا. حدد أولاً السؤال التشخيصي والتغطية الموجودة. قد تستحق عملية عمل مختلفة مقطعاً خاصاً، لكن تكرار حد النقل نفسه قد يشوه التفسير ويزيد التكلفة. حافظ على معاني النطاقات والأسماء، وتحقق من سلوك التكامل في بيئة التشغيل المدعومة فعلياً.
2. ماذا يجب أن يعني مقياس تحديثات مكتملة مخصص بعد الإقرار، ولكن قبل التخزين الدائم؟
اعرض الحل المشروح
لا ينبغي أن يدعي اكتمالاً دائماً عند تلك النقطة. إما أن ترصد القبول باسم صادق، أو تصدر الاكتمال بعد انتقال الحالة المطلوب. أدرج النتائج المجهولة والجزئية في العقد، وتأكد من أن سلوك تصدير القياس لا يعيد تعريف نتيجة العمل.
أهم ما تعلمته
- لا تستبدل التغطية الآلية معاني العمل الخاصة بالتطبيق.
- يحدد موضع المشاهدة صدق معنى الحدث.
- أنشئ نسخاً للرصد ومستهلكيه بوصفهم عقداً مترابطاً.