كيف يعمل الرسم البياني بروميثيوس؟

تم إعداد ترجمة للمقال قبل بدء الدورة "المراقبة والتسجيل: Zabbix ، Prometheus ، ELK" .




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

فيما يلي مثال على تنسيق تسمية Prometheus للتعريضhandler :

# HELP prometheus_http_request_duration_seconds Histogram of latencies for HTTP requests.
# TYPE prometheus_http_request_duration_seconds histogram
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.1"} 25547
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.2"} 26688
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.4"} 27760
prometheus_http_request_duration_seconds_bucket{handler="/",le="1"} 28641
prometheus_http_request_duration_seconds_bucket{handler="/",le="3"} 28782
prometheus_http_request_duration_seconds_bucket{handler="/",le="8"} 28844
prometheus_http_request_duration_seconds_bucket{handler="/",le="20"} 28855
prometheus_http_request_duration_seconds_bucket{handler="/",le="60"} 28860
prometheus_http_request_duration_seconds_bucket{handler="/",le="120"} 28860
prometheus_http_request_duration_seconds_bucket{handler="/",le="+Inf"} 28860
prometheus_http_request_duration_seconds_sum{handler="/"} 1863.80491025699
prometheus_http_request_duration_seconds_count{handler="/"} 28860

_sumوهي _countتعمل بنفس الطريقة تمامًا مثل الملخص ، ويمكن استخدامها للحصول على متوسط ​​وقت التنفيذ خلال الدقائق الخمس الماضية:

 rate(prometheus_http_request_duration_seconds_sum[5m]
/
  rate(prometheus_http_request_duration_seconds_count[5m])

ومع ذلك ، هناك حالات نادرة جدًا حيث تكون _sumغائبة ، على سبيل المثال ، في بعض المقاييس من مصدر MySQLd.

الجزء البارز من الرسم البياني هو السلسلة الزمنية _bucket، والتي هي في الواقع جزء الرسم البياني للمقياس. بشكل أكثر تحديدًا ، هذه عدادات تشكل رسم بياني تراكمي. leتدل على أو أقل من. وبالتالي ، استغرق 26688 طلبًا أقل من أو يساوي 200ms ، و 27760 طلبًا أقل من أو يساوي 400ms ، وكان هناك 28860 طلبًا في المجموع. القيم الموجودة في الدلو لن تكون رتيبة بشكل متناقص ، +Infوسيكون للدلو أكبر قيمة. +Infيجب أن يكون الدلو موجودًا دائمًا ويتطابق مع القيمة _count.

لحساب كمية مثل 0.9 (النسبة المئوية 90) ، يجب عليك استخدام:

histogram_quantile(0.9, 
  rate(prometheus_http_request_duration_seconds_bucket[5m])
)

ميزة واحدة كبيرة من الرسوم البيانية على الملخصات هي أنه يمكنك تجميع الدلاء قبل حساب الكمية - مع الحرص على عدم فقدان الملصق le:

histogram_quantile(0.9, 
  sum without (handler)(
    rate(prometheus_http_request_duration_seconds_bucket[5m])
  )
)

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

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

في الختام ، تسمح الرسوم البيانية بحساب مجموع الكميات ، على الرغم من أن عدد العناصر يجب أن يؤخذ في الاعتبار. تذكر أن الملخص بدون الكميات هو خيار أرخص إذا كنت لا تحتاج إلى رسم بياني.



المزيد عن الدورة



All Articles