Prometheus / المتوسط: PromQL وعقود القواعد / الدرس 8
مطابقة المتجهات وإضافة البيانات الوصفية
اشرح كيف تقرن العمليات الثنائية السلاسل بالتسميات، وراجع التفرد قبل إضافة معدلات التجميع أو البيانات الوصفية إلى الاستعلام.
في هذه الصفحة
أهداف الدرس
- ميّز مطابقة الواحد بالواحد والمتعدد بالواحد.
- فسّر on وignoring وgroup_left بقصد واضح.
- اختبر مفاتيح البيانات الوصفية الناقصة والمكررة.
تحتاج العملية الثنائية عقد اقتران
عندما تجمع عملية حسابية متجهين آنيين، يجب أن تتطابق السلاسل وفق قواعد تسمياتها. قد تختفي العناصر غير المطابقة من النتيجة بدلاً من أن تصبح صفراً. تحدد on تسميات المطابقة، وتستبعد ignoring تسميات مسماة من القرار. يغير تعديل القائمتين علاقة المجموعات لا العرض فقط. ليست مطابقة PromQL لغة ربط علائقي عامة، وتختلف القواعد بين عائلات المؤثرات. اقرأ المرجع للحساب والمقارنة ومؤثرات المجموعات، ولا تفترض أن المعدل نفسه يعمل معها بالطريقة نفسها.
اشترط سجل بيانات وصفية واحداً لكل مفتاح
يضرب التعبير معدلات الطلبات في مقياس معلومات قيمته الافتراضية واحد، وينقل team من اليمين. قد تطابق عدة سلاسل عملية أو نتيجة في اليسار سجل معلومات واحداً لكل job وinstance في اليمين، فتعلن group_left هذه العلاقة. لا تجعل المفاتيح اليمنى المكررة آمنة. team سياق وصفي لا ادعاء تفويض. تأكد من حداثة المعلومات وملكيتها ومطابقتها هوية الهدف قبل تفسير الناتج. ليس تشابه اسم خدمة في بيئة أخرى مطابقة صالحة.
rate(warehouse_requests_total{job="warehouse-lab"}[5m])
* on (job, instance) group_left (team)
warehouse_target_info{job="warehouse-lab"}
يفترض المثال غير المنفذ سلسلة يمنى واحدة لكل مفتاح، وقيم معلومات تساوي واحداً. ولا يتحقق من تحقق الافتراضين.
نمذج رفض التكرار صراحة
تبني العينة فهرس معلومات وترفض المفاتيح المكررة قبل الإضافة. تطبع قراءة ناجحة الفريق الافتراضي، وينتج التكرار خطأ محدداً. يمثل ذلك شرط التفرد، لا تنفيذ مطابقة PromQL الكامل أو نص خطئه الفعلي. قد توجد مفاتيح ناقصة ومعلومات قديمة وأبعاد إضافية تغير التفرد زمنياً. اختبرها قبل التنبيه. لا تختر أول سجل اعتباطياً لإسكات خطأ؛ فقد تلصق ملكية خاطئة بدليل خدمة صحيح.
def index_metadata(rows):
result = {}
for key, team in rows:
if key in result:
raise ValueError("duplicate-metadata-key")
result[key] = team
return result
metadata = index_metadata([(("warehouse-lab", "worker-a"), "stock-team")])
print(metadata[("warehouse-lab", "worker-a")])
try:
index_metadata([("a", "team-one"), ("a", "team-two")])
except ValueError as error:
print(error)
stock-team
duplicate-metadata-key
يفحص نموذج القاموس مجال مفاتيح معلناً. لا ينفذ ربط PromQL أو استعلام مخزن أو اكتشاف أهداف أو تفويض ملكية.
افحص الاختفاء قبل توسيع المطابقة
إذا أعاد تعبير ثنائي سلاسل أقل، فقارن مجموعات التسميات ومفاتيح المطابقة والوقت. قد يمنع غياب البيئة أو تغير instance الاقتران. وقد ينشئ حذف مزيد من التسميات مطابقة بين بيئات أو غموض متعدد بمتعدد. لا يثبت تساوي القيم العددية الهوية. احتفظ بمحدد ضيق ومفتاح فريد موثق، ولا تستخدم معدلات التجميع بالتجربة. يجب ألا تسقط إضافة المعلومات أهدافاً بلا مالك بصمت من صحة الخدمة.
راجع المطابقة كعقد مخطط يتطور
قد تكسر إضافة تسميات أو تغيير أسماء أهداف أو تداخل نسخ نشر أو تكرار سلاسل المعلومات علاقة كانت صحيحة من قبل. أنشئ نسخاً لافتراضات المنتج والمستهلك، وتحقق من التفرد عند أوقات التقييم ذات الصلة. انقل إلى تسميات الناتج البيانات الوصفية المحدودة اللازمة فقط؛ فقد تزيد الإضافة أيضاً عدد السلاسل وتكشف ارتباطات حساسة. ينفذ هذا الدرس فحص تفرد قاموس فقط. لا يعمل محرك مطابقة حسابية أو بيانات مراقبة، ولا يدعي مقطع PromQL نتيجة عددية. تشرح المراجعة المفيدة لماذا تصح العلاقة، بدلاً من الاكتفاء بأن تعبيراً أعاد بيانات في وقت سابق.
الأخطاء الشائعة وإصلاحها
يفقد تعبير ثنائي أهدافاً صالحة بصمت.
- لماذا يحدث؟
- تختلف المفاتيح أو تغطية المعلومات.
- كيف تصلحه؟
- قارن التسميات والوقت قبل إضافة معدلات.
- كيف تتجنب تكراره؟
- اختبر المفاتيح غير المطابقة.
تضاف group_left لإصلاح معلومات مكررة.
- لماذا يحدث؟
- ما زال الطرف المطلوب فريداً غير فريد.
- كيف تصلحه؟
- أصلح الهوية أو العلاقة المقصودة.
- كيف تتجنب تكراره؟
- أكد تفرد المفتاح في العينات.
تلصق الإضافة فريق بيئة أخرى.
- لماذا يحدث؟
- أغفل المفتاح حد نطاق مطلوباً.
- كيف تصلحه؟
- استخدم هوية محددة موثوقة ومحددات ضيقة.
- كيف تتجنب تكراره؟
- راجع التفويض مستقلاً عن الوصف.
اختبر فهمك
1. تطابق ثلاث سلاسل طلبات سلسلتي بيانات وصفية بالمفتاح نفسه. هل تجعل group_left علاقة المطابقة صحيحة؟
اعرض الحل المشروح
لا. تظل المطابقة الحسابية متعدد بواحد مشروطة بتفرد الطرف المعين كواحد. حدد سبب تكرار المعلومات، مثل تداخل مثيلات أو مفتاح غير مكتمل. لا تتخلص من سجل اعتباطياً دون مراجعة الهوية والملكية الصحيحتين.
2. لماذا لا تصلح بيانات team الوصفية أساساً وحيداً لحدود التفويض؟
اعرض الحل المشروح
هي وصف في بيانات القياس، وقد يقدمها أو يحولها مصدر غير موثوق. يجب فرض الوصول بواسطة نظام المصادقة والتفويض الفعلي. اجعل الإضافة مفيدة للتنقل وسياق الملكية، دون السماح لتسمية بمنح وصول إلى البيانات أو امتيازات توجيه.
أهم ما تعلمته
- تحتاج المطابقة مفاتيح وتفرداً صريحين.
- تعلن معدلات التجميع علاقة ولا تصلح هوية خاطئة.
- لا تثبت البيانات الوصفية التفويض.