OpenTelemetry مقابل Prometheus: لا يمكنك إصلاح ما لا يمكنك رؤيته

29 مارس 2024

قراءة لمدة 7 دقائق

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

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

يعد كل من OpenTelemetry وPrometheus مشروعين مفتوحي المصدر تحت رعاية مؤسسة الحوسبةCloud Native Computing Foundation (CNCF)، ويقدمان أدوات مراقبة التطبيقات لزيادة القدرة على قابلية الملاحظة. تتطلب الأنواع المختلفة من البيانات والعمليات حلولا متميزة تعتمد على أهداف المؤسسة ومواصفات التطبيق. من المهم فهم الفروقات الأساسية بين المنصات مثل OpenTelemetry و Prometheus وما يقدمه كل منهما من حلول قبل اختيار أحدها للتنفيذ.

من الجدير بالذكر أيضًا أن OpenTelemetry و Prometheus يتكاملان مع بعضهما البعض ويمكنهما العمل معا كثنائي قوي لمراقبة التطبيقات. يتيح كل من OpenTelemetry و Prometheus جمع المقاييس وتحويلها، مما يسمح لفرق عمليات التطوير (DevOps) وتكنولوجيا المعلومات بتوليد رؤى حول الأداء واتخاذ الإجراءات اللازمة بناء على تلك الرؤى.

ما هو OpenTelemetry؟

OpenTelemetry أو OTel، هو منصة مصممة لإنشاء موقع مركزي لإنشاء بيانات القياس عن بعد وجمعها وتصديرها وإدارتها، بما في ذلك السجلات والمقاييس والتتبعات. نتج OTel عن عملية دمج بين OpenCensus وOpenTracing بهدف توفير واجهات برمجة التطبيقات ومجموعة أدوات تطوير البرامج (SDKs) ومكتبات وعمليات تكامل توحد عمليات جمع البيانات المتباينة. بفضل OTel، يمكن تضمين مخرجات المراقبة المطلوبة في تعليماتك البرمجية لتبسيط معالجة البيانات والتأكد من تصدير البيانات إلى الواجهة الخلفية المناسبة.

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

فيما يلي تناول سريع للجوانب الرئيسية لنظام OpenTelemetry البنائي:

واجهات برمجة التطبيقات: تترجم OpenTelemetry APIs (واجهات برمجة التطبيقات) لغات البرمجة عالميًا. تمكن هذه الإمكانية واجهات برمجة التطبيقات من جمع بيانات القياس عن بعد. تؤدي واجهات برمجة التطبيقات هذه دورًا رئيسيًا في توحيد مجموعة مقاييس OpenTelemetry.

SDKs: مجموعة أدوات تطوير البرامج هي أدوات لإنشاء البرامج. وتشمل إطار العمل ومكتبات التعليمات البرمجية ومصححات الأخطاء التي تعد اللبنات الأساسية لتطوير البرامج. تنفذ مجموعة أدوات تطوير البرامج (OTel (SDKs واجهات برمجة تطبيقات OpenTelemetry وتقدم الأدوات اللازمة لإنشاء بيانات القياس عن بعد وجمعها.

مجمّع OpenTelemetry: يستقبل مجمّع OTel بيانات القياس عن بُعد ويعالجها ويصدرها. يمكن تكوين مجمّع OTel لتصفية أنواع بيانات معينة إلى واجهة خلفية معينة.

مكتبة أجهزة القياس: توفر OTel نموذج أجهزة قياس يعمل على جميع المنصات. تُمكن مكتبات أجهزة القياس OTel من الاندماج مع أي لغة برمجة.

مزايا OpenTelemetry

يسهل بروتوكول OpenTelemetry (OTLP) عملية الملاحظة من خلال جمع بيانات القياس عن بعد، مثل المقاييس والسجلات والتتبعات، من دون تغيير التعليمات البرمجية أو البيانات الوصفية.

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

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

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

يتمكن نظام OTel من أخذ هذه الأنواع الثلاثة المختلفة من بيانات القياس عن بعد وتصديرها إلى واجهات خلفية مختلفة، بما في ذلك Prometheus. تمنع هذه الإمكانية التقيد بموردين معينين أو التقيد بواجهة خلفية معينة وتسمح للمطورين باختيار أدوات التحليل المفضلة لديهم. يدعم نظام OpenTelemetry مجموعة من عمليات التكامل مع المنصات الأخرى، بما في ذلك Prometheus، التي تتيح فرصًا أكبر لقابلية الملاحظة. يدعم نظام OTel لغات Java وPython وJavaScript وGo، ما يجعله حلاً أكثر مرونة. كما يسمح للمطورين وفرق تقنية المعلومات بمراقبة الأداء من أي متصفح ويب أو من أي موقع.

تكمن أعظم نقاط القوة في نظام OpenTelemetry في قدرته على جمع البيانات وتصديرها باستمرار عبر العديد من التطبيقات وتوحيده لعملية الجمع. OTel هي أداة فائقة الإمكانات في ملاحظة الأنظمة الموزعة والخدمات المصغرة.

ما هو Prometheus؟

Prometheus هي مجموعة أدوات مخصصة للمراقبة وإرسال التنبيهات، تم تطويرها لجمع وتنظيم مقاييس التطبيقات. تم تطوير خادم Prometheus في البداية في SoundCloud قبل أن يصبح أداة مفتوحة المصدر.

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

توفر مقاييس Prometheus نقاط بيانات تتكون من اسم المقياس والتسمية والطابع الزمني والقيمة باستخدام لغة استعلام تسمى PromQL. تسمح لغة PromQL للمطورين وأقسام تقنية المعلومات بتجميع مقاييس البيانات وتحويلها إلى مدرجات–ورسوم بيانية ولوحات معلومات للحصول على رؤية أوسع. يتمكن Prometheus من الوصول إلى البيانات من خلال قواعد بيانات الشركة أو من خلال المصدرين. المصدرون هم برامج مرتبطة بالتطبيقات تعمل على سحب المقاييس من مختلف التطبيقات ونقاط النهاية.

يجمع Prometheus أربعة أنواع من المقاييس:

العدادات: تقيس العدادات القيم العددية التراكمية التي تتزايد فقط. تُستخدم العدادات لقياس المهام المكتملة أو عدد الأخطاء التي حدثت خلال فترة محددة أو عدد العمليات الجارية أو الخدمات المصغرة.

المقاييس: ترصد المقاييس القيم العددية التي ترتفع وتنخفض حسب العوامل الخارجية. يمكنها مراقبة استخدام وحدة المعالجة المركزية والذاكرة أو درجة الحرارة أو حجم قائمة الانتظار.

الرسوم البيانية: تقيس المدة الزمنية للأحداث المتكررة مثل مدة الطلب أو حجم الاستجابة. ثم يقسمون نطاق هذه القياسات إلى فترات تسمى حاويات (buckets) ويحددون عدد هذه القياسات التي تقع في كل حاوية على حدة.

الملخصات: تقيس الملخصات أيضًا مدد الطلبات ومدى سرعة الاستجابة، مثلها مثل المدرجات، ولكنها توفر أيضًا عددًا إجماليًا لجميع الملاحظات وجميع القيم المرصودة.

من المميزات القيمة في Prometheus أنه يمكنه إنشاء لوحات معلومات ورسوم بيانية يسهل الوصول إليها بناء على البيانات التي تم جمعها.

مزايا Prometheus

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

يتكامل Prometheus بسلاسة مع Kubernetes، وهي منصة مفتوحة المصدر لتنسيق الحاويات مصممة لجدولة وأتمتة نشر تطبيقات الحاوية وإدارتها وتوسيع نطاقها. تسمح منصة Kubernetes للمؤسسات ببناء بيئات معقدة للسحابة الهجينة والمتعددة والتي تنشر مجموعة من الخدمات والخدمات المصغرة. يوفر دمج Prometheus مع Kubernetes عملية ملاحظة وإشراف شاملة لهذه الأنظمة المعقدة.

يتوافق Prometheus أيضًا مع Grafana، وهي أداة تصور فائقة الإمكانات تساعد على تحويل البيانات إلى لوحات معلومات ومخططات ورسوم بيانية وتنبيهات. عند إقرانها بـ Prometheus، تتمكن أداة Grafana من أخذ المقاييس وإنشاء رؤى واضحة. يسهل التوافق بين هاتين المنصتين من الوصول إلى البيانات المعقدة ومشاركتها بين الفرق المختلفة.

الاختلافات الرئيسية بين OpenTelemetry وPrometheus

يوفر Prometheus أدوات لمراقبة المقاييس وتخزينها وتصورها، لكنه لا يتتبع السجلات ولا يدعم التتبعات التي تستخدم لتحليل الأسباب الأساسية. بشكل عام، لدى Prometheus حالات استخدام محدودة أكثر من OpenTelemetry.

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

تفاصيل سريعة:

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

ستحدد احتياجات منظمتك أيًا من هذه الحلول يُعد مناسبًا لك. إذا كنت بحاجة إلى فهم أكثر شمولية لبياناتك، وتعمل في بيئات معقدة بها أنظمة موزعة، وتريد المزيد من المرونة، فقد يكون OpenTelemetry حلاً أكثر ملاءمة. وكذلك أيضًا إذا كنت بحاجة إلى مراقبة السجلات والتتبعات.

إذا كنت بحاجة إلى مراقبة الأنظمة أو العمليات الفردية، وتبحث عن نماذج تنبيه وتخزين وتصور، فقد يكون Prometheus هو الخيار المناسب.

الدمج بين OpenTelemetry وPrometheus

الخبر السار هو أنك غير مضطر لاختيار أحدهما على الآخر؛ فكل من OpenTelemetry وPrometheus منصات متوافقة. يمكن لمجموعة أدوات تطوير البرامج (SDKs) في OTel جمع المقاييس من نماذج بيانات Prometheus وكذلك يدعم Prometheus مقاييس OpenTelemetry. يمنحك استخدام هاتين المنصتين معًا أفضل ما في العالمين وخيارات مراقبة متقدمة. على سبيل المثال:

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

بالإضافة إلى ذلك، يتكامل OpenTelemetry وPrometheus مع IBM Instana وIBM Turbonomic لتوفير أدوات مراقبة إضافية. بفضل خريطة الاعتماد فائقة الإمكانات من Instana، واتصال الخدمات في المراحل الأولى والأخيرة والرؤية الشاملة، تم تعزيز قدرات نظام OTel للتأكد من أن جميع الخدمات مزودة بالأجهزة. تقدم Instana التجربة الرائعة نفسها بفضل بيانات OTel لأنها توفر لكل البيانات الأخرى مصادر، ما يمنحك السياق الذي تحتاجه لاستكشاف مشكلات التطبيق وإصلاحها بسرعة. باستخدام Turbonomic، يمكنك استخدام أدوات مراقبة البيانات من Prometheus لأتمتة قرارات توفير الموارد بناءً على عملية جمع البيانات الفورية. تعد عمليات التكامل هذه طرقًا محسنة لتعزيز سلامة النظام البنائي للتطبيق وتحسين الأداء العام.

 

المؤلف

Camilo Quiroz-Vázquez

IBM Staff Writer