0Pricing
DevOps Bootcamp · درس

المقاييس باستخدام Prometheus وGrafana

أعدّ Prometheus لجمع مقاييس العنقود والتطبيق، واعرضها بصريًا باستخدام Grafana

المقاييس باستخدام Prometheus وGrafana درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

قوة المقاييس

المقاييس هي قياسات رقمية تصف حالة تطبيقاتكم والبنية الأساسية لديكم وأداءهما. فكّروا فيها باعتبارها المؤشرات الحيوية لبرمجياتكم!

وهي توفّر رؤى قيّمة حول:

  • الأداء: ما مدى سرعة استجابة تطبيقكم؟
  • استخدام الموارد: هل توشك ذاكرة الخادم على النفاد؟
  • التوافر: هل خدمتكم قيد التشغيل ومتاحة للمستخدمين؟

ومن خلال تتبّع المقاييس، يمكنكم فهم الاتجاهات واكتشاف الحالات الشاذة واستكشاف المشكلات وإصلاحها بشكل استباقي.

تعرّفوا على Prometheus

إن Prometheus هو نظام مراقبة مفتوح المصدر مصمم لتحقيق الموثوقية وقابلية التوسع. وهو أداة أساسية ضمن حزمة قابلية المراقبة السحابية الأصلية.

وتتمثل مهمته الأساسية في:

  • الكشط: جمع المقاييس من الأهداف المُعدّة (مثل تطبيقاتكم).
  • التخزين: حفظ هذه المقاييس في قاعدة بيانات سلاسل زمنية.
  • الاستعلام: إتاحة طرح أسئلة حول البيانات التي جُمعت.

يساعدكم Prometheus في تكوين صورة واضحة عمّا يحدث داخل عنقود Kubernetes لديكم.

نموذج «الكشط» في Prometheus

يستخدم Prometheus نموذج «السحب» لجمع المقاييس. فبدلًا من أن تدفع التطبيقات البيانات إلى Prometheus، يقوم Prometheus بعملية «كشط» نشطة للمقاييس منها، أي يسحبها.

إليكم آلية عمله العامة:

  1. يعرض تطبيقكم المقاييس عبر نقطة نهاية HTTP محددة (غالبًا /metrics).
  2. يُعدّ Prometheus بقائمة من الأهداف (مثل عنوان IP والمنفذ الخاصين بتطبيقكم).
  3. على فترات زمنية منتظمة، يرسل Prometheus طلب HTTP إلى نقطة النهاية /metrics لكل هدف.
  4. يستجيب الهدف بمقاييسه الحالية، ثم يخزّنها Prometheus.

المقاييس: أزواج المفتاح والقيمة

يخزّن Prometheus البيانات على شكل سلاسل زمنية: تدفقات من القيم المرفقة بطوابع زمنية. وتُعرَّف كل سلسلة زمنية تعريفًا فريدًا باسم مقياس ومجموعة من أزواج المفتاح والقيمة تُسمّى التسميات.

مثال: http_requests_total{method="GET", path="/api"}

يمتلك Prometheus أنواعًا أساسية من المقاييس:

  • Counter: مقياس تراكمي لا يزداد إلا بمرور الوقت (مثل إجمالي الطلبات).
  • Gauge: قيمة يمكن أن ترتفع أو تنخفض (مثل الاستخدام الحالي لوحدة المعالجة المركزية).
  • Histogram/Summary: لأخذ عينات من الملاحظات وعدّها ضمن حِزم قابلة للتهيئة (مثل مدد الطلبات).

جعل التطبيقات «تتحدث» بالمقاييس

حتى يتمكن Prometheus من كشط المقاييس، يجب أن يعرضها تطبيقكم بتنسيق يفهمه Prometheus. ويتم ذلك عادةً عبر نقطة نهاية HTTP.

توفّر العديد من لغات البرمجة مكتبات عميلة تسهّل إضافة أدوات القياس إلى التعليمات البرمجية لديكم:

  • زيادة العدادات عند وقوع الأحداث.
  • تعيين مقاييس Gauge للحالات الحالية.
  • رصد مدد العمليات.

لنلقِ نظرة على مثال بالغ البساطة لتطبيق يعرض مقياس عدّاد أساسيًا.

تطبيق Python يعرض المقاييس

إليكم تطبيق Flask صغيرًا بلغة Python يعرض مقياس عدّاد بسيطًا. وهو يحاكي عدّ مشاهدات الصفحات.

شغّلوا هذه التعليمات البرمجية، ثم حاولوا الوصول إلى /metrics في متصفحكم أو طرفيتكم (مثلًا، بعد التشغيل، انتقلوا إلى http://localhost:5000/metrics).

from flask import Flask
from prometheus_client import Counter, generate_latest
import time

app = Flask(__name__)
c = Counter('my_app_requests_total', 'Total requests to my app')

@app.route('/')
def hello():
    c.inc() # Increment the counter
    return "Hello, CoddyKit!"

@app.route('/metrics')
def metrics():
    return generate_latest().decode('utf-8')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Prometheus في عنقودكم

في Kubernetes، غالبًا ما يتضمن نشر Prometheus بكفاءة استخدام Prometheus Operator. ويساعد هذا المشغّل في إدارة مثيلات Prometheus وإعداداتها.

موارد Kubernetes الأساسية الخاصة بـ Prometheus:

  • ServiceMonitor: يخبر Prometheus بمكان العثور على نقاط نهاية المقاييس (مثل Services وPods التي ينبغي كشطها).
  • PodMonitor: مشابه لـ ServiceMonitor، لكنه يستهدف Pods مباشرةً.

تتيح هذه الموارد لـ Prometheus اكتشاف المقاييس من تطبيقاتكم المنشورة وكشطها تلقائيًا.

Grafana: مايسترو لوحات المعلومات

بينما يجمع Prometheus المقاييس ويخزّنها، تُعدّ Grafana أداتكم الأساسية لعرضها بصريًا. وهي تطبيق ويب مفتوح المصدر للتحليلات والتصور التفاعلي.

تتيح لكم Grafana ما يلي:

  • إنشاء لوحات معلومات جميلة وغنية بالمعلومات.
  • الاستعلام من مصادر بيانات متعددة (مثل Prometheus).
  • إعداد تنبيهات تستند إلى حدود المقاييس.

وتحوّل بيانات المقاييس الخام إلى رؤى قابلة للتنفيذ.

Grafana وPrometheus: ثنائي قوي

لا تخزّن Grafana بيانات المقاييس بنفسها، بل تستعلم عنها من مصادر بيانات خارجية. ولعرض مقاييس Kubernetes بصريًا، ستُعدّ Prometheus مصدر بيانات في Grafana.

الخطوات:

  1. في Grafana، أضيفوا مصدر بيانات جديدًا.
  2. اختاروا «Prometheus» نوعًا للمصدر.
  3. أدخلوا عنوان URL لخادم Prometheus لديكم.
  4. ابدؤوا بإنشاء لوحات المعلومات باستخدام لغة الاستعلام الخاصة بـ Prometheus، وهي PromQL!

يمنحكم هذا الاقتران تحكمًا كاملًا في مراقبة عنقودكم.

اختبروا معلوماتكم!

حان وقت التحقق من فهمكم لـ Prometheus وGrafana!

مراجعة: المقاييس والتصور

أحسنتم! لقد تعلّمتم في هذا الدرس ما يلي:

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

يُعدّ فهم هذه الأدوات أمرًا بالغ الأهمية للحفاظ على صحة تطبيقات Kubernetes وأدائها. واصلوا استكشاف كيفية إضافة أدوات القياس إلى تطبيقاتكم الخاصة!

الأسئلة الشائعة

هل درس «المقاييس باستخدام Prometheus وGrafana» مجاني؟

نعم — نص درس «المقاييس باستخدام Prometheus وGrafana» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «المقاييس باستخدام Prometheus وGrafana»؟

أعدّ Prometheus لجمع مقاييس العنقود والتطبيق، واعرضها بصريًا باستخدام Grafana تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «المقاييس باستخدام Prometheus وGrafana»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. التسجيل باستخدام kubectl logs
  2. المقاييس باستخدام Prometheus وGrafana
  3. فحوصات الصحة: فحوصات الحيوية والجاهزية
  4. التتبّع الموزّع والأحداث
← العودة إلى DevOps Bootcamp