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

Prometheus / المتوسط: PromQL وعقود القواعد / الدرس 12

مراحل الاكتشاف وإعادة التسميات

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

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

أهداف الدرس

  • ضع إعادة تسميات الأهداف والمقاييس في مرحلتيهما الصحيحتين.
  • اشرح تسميات الاكتشاف المؤقتة والهوية النهائية.
  • اختبر الإبقاء والإسقاط والناقص وتصادم الهوية.

تحدد المرحلة ما يمكن توفيره

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

ليست بيانات الاكتشاف هوية دائمة تلقائياً

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

اقرأ الإبقاء والإسقاط عند حدودهما

يبقي مقطع المهمة غير التنفيذي الأهداف التي تحمل service بقيمة warehouse-api، ثم يسقط عائلة debug افتراضية بعد الجمع. لن تحقق التسمية المفقودة شرط الإبقاء. يفترض الإعداد مرحلة اكتشاف أو تسميات ثابتة مخولة سابقة توفر service؛ ولا تصل الدورة إلى بيئة كهذه. تتبع الأنماط والاستبدال المرجع الثابت. راجع العاقبة؛ فقد يمحو نمط واسع أو حقل ناقص الدليل. لا يقدم المقطع بيانات اعتماد أو عنوان هدف أو تعليمة جمع تنفيذية.

yaml مقطع تعليمي لإعادة التسميات بمرحلتين
relabel_configs:
  - source_labels: [service]
    regex: warehouse-api
    action: keep
metric_relabel_configs:
  - source_labels: [__name__]
    regex: warehouse_debug_.*
    action: drop

هذا جزء غير كامل لمهمة جمع. تختار الأولى الأهداف قبل الجمع، وتصفّي الثانية العينات المجموعة، دون اختبار أي مرحلة.

نمذج أثر المراحل بمجموعتين منفصلتين

ترشح العينة قائمة أهداف معلنة وقائمة مستقلة لأسماء مقاييس افتراضية. يبقى worker-a وحده مؤهلاً وتحذف عائلة debug من المقاييس. تتعمد عدم تمثيل تثبيت الأنماط والتسميات الداخلية والسلاسل المولدة. توضح أن المرحلتين تعملان على كائنين مختلفين. لا تختبر الصياغة والسلوك الفعليين إلا بالأداة الصحيحة المخولة ومدخلات معزولة. لا يثبت ناتج قائمة بايثون إعادة تحميل خادم أو إزالة بيانات تاريخية.

python نموذج محلي لمراحل إعادة التسميات
targets = [("worker-a", "warehouse-api"), ("worker-b", "other-service")]
metric_names = ["warehouse_requests_total", "warehouse_debug_payload_size"]
kept_targets = [name for name, service in targets if service == "warehouse-api"]
kept_metrics = [name for name in metric_names if not name.startswith("warehouse_debug_")]
print("targets", kept_targets)
print("metrics", kept_metrics)
الناتج المتوقع
targets ['worker-a']
metrics ['warehouse_requests_total']

يستخدم النموذج قوائم ثابتة ومطابقة بادئة فقط. لا ينفذ اكتشافاً أو محرك إعادة تسميات أو جمعاً أو إعادة تحميل.

افحص التصادم وأثره في المستهلك

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

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

يُتوقع أن يلغي حذف المقاييس تكلفة المصدر.

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

تزيل keep كل الأهداف.

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

يُعد حذف تسمية تجميعاً.

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

اختبر فهمك

1. هل تستطيع metric_relabel_configs ضمان أن حقلاً حساساً لم يغادر التطبيق مطلقاً؟

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

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

2. لماذا يجب أن تتضمن اختبارات إعادة التسميات حالات غياب تسميات المصدر؟

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

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

أهم ما تعلمته

  • تحدد مرحلة إعادة التسميات نطاقها وأثر التكلفة.
  • تحتاج البيانات المؤقتة نقلاً وتقليلاً مقصودين.
  • حذف تسميات الهوية ليس تجميعاً.

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