Skip to main content

كشف مقاييس خادم ClickHouse

إذا كنت تستخدم ClickHouse Cloud، يمكنك كشف المقاييس لـ Prometheus باستخدام تكامل Prometheus.
هيّئ منفذًا مخصصًا عندما يحتاج خادم Prometheus إلى كشط مقاييس ClickHouse الخاصة:
يمكن استخدام القسم <prometheus.handlers> لإنشاء معالجات موسّعة إضافية على المنفذ نفسه. This section is similar to <http_handlers> but works for prometheus protocols:
الإعدادات: تحقّق من نقطة النهاية:

واجهة Prometheus HTTP واجهة برمجة تطبيقات وPromQL

يطبّق ClickHouse واجهة Prometheus HTTP واجهة برمجة تطبيقات على جدول TimeSeries. يتولى معالج واحد عمليات الكتابة والقراءة عن بُعد، واستعلامات PromQL الفورية، واستعلامات PromQL للنطاق.

المتطلبات الأساسية

فعِّل الإعداد allow_experimental_time_series_table للمستخدم الذي يُنشئ الجدول ويصل إليه:
أنشئ قاعدة بيانات وجدولًا من نوع TimeSeries:
لطلبات واجهة برمجة تطبيقات HTTP، فعِّل allow_experimental_time_series_table في ملف تعريف مستخدم واجهة برمجة التطبيقات.

تهيئة واجهة برمجة تطبيقات Prometheus

هيِّئ معالجًا واحدًا قائمًا على توجيه البادئة على منفذ HTTP الرئيسي لـ ClickHouse:
<defaults/> يحافظ على المعالجات المضمنة لنقاط النهاية، مثل /ping وطلبات SQL. تتيح البادئة أعلاه الوصول إلى هذه النقاط عبر معالج واحد: يحذف المثال database وtable من المعالج. يجب أن يتضمن كل طلب معلمة الاستعلام table. ويمكنه أيضًا تضمين database، أو استخدام اسم جدول مؤهل مثل prometheus.metrics، أو حذف قاعدة البيانات لاستخدام default. يتيح ذلك لمعالج واحد خدمة عدة جداول TimeSeries. لاستخدام جدول ثابت واحد لكل طلب، هيّئه في المعالج:
لا يمكن تجاوز جدول مُهيأ في المعالج باستخدام معاملات الطلب. إعدادات التوجيه والمعالج:

استيعاب المقاييس عبر الكتابة عن بُعد

يدعم ClickHouse بروتوكول الكتابة عن بُعد لـ Prometheus. هيّئ Prometheus للكتابة إلى المعالج:
يرسل Prometheus العينات إلى جدول prometheus.metrics. لتجميع البيانات من عدة طلبات كتابة عن بُعد متزامنة في عدد أقل من الأجزاء، فعّل عمليات الإدراج غير المتزامنة بإضافة إعداد async_insert إلى عنوان URL (أو بتفعيله في ملف تعريف المستخدم):
لا يقرّ ClickHouse طلب الكتابة عن بُعد غير المتزامن إلا بعد تفريغ البيانات إلى جميع الجداول الداخلية لجدول TimeSeries، بغض النظر عن إعداد wait_for_async_insert: إذ يتعامل بروتوكول الكتابة عن بُعد مع الكتابة المُقَرّ بها على أنها دائمة. وإذا أخفق التفريغ، يُرجع الطلب خطأً ويعيد Prometheus محاولة إرساله.

الاستعلام باستخدام PromQL

استخدم نقطة نهاية الاستعلام الفوري لتقييم تعبير PromQL في نقطة زمنية محددة:
استخدم نقطة نهاية استعلام النطاق لتقييم تعبير ضمن نطاق زمني:
راجع ميزات PromQL المدعومة للاطلاع على قائمة الدالات وعوامل التجميع التي تستخدمها واجهة برمجة تطبيقات HTTP، ولهجة promql، ودالات الجداول.

Grafana

هيّئ مصدر بيانات Prometheus باستخدام عنوان URL أساسي ينتهي قبل /api/v1:
يُلحق Grafana المسارَين ‎/api/v1/query أو ‎/api/v1/query_range بعنوان URL الأساسي هذا، ويضيف customQueryParameters إلى كل طلب.
لا تُنفَّذ إلا نقطتا نهاية الاستعلام ‎/api/v1/query و‎/api/v1/query_range ونقاط نهاية البيانات الوصفية ‎/api/v1/series و‎/api/v1/labels و‎/api/v1/metadata. تتطلب ‎/api/v1/series محدِّد سلاسل واحدًا على الأقل من match[]، وتدعم المعلمات الاختيارية start وend وlimit، وتُرجع اتحاد السلاسل المطابقة لكل محدِّد. تقبل ‎/api/v1/labels المعلمات نفسها، مع كون match[] اختياريًا، وتُرجع أسماء التسميات المرتبة للسلاسل المطابقة (أو لجميع السلاسل عند عدم تقديم أي محددات). أما نقطة نهاية قيم التسميات (‎/api/v1/label/<name>/values) التي يستخدمها مصدر بيانات Prometheus في Grafana لتصفّح التسميات ومتغيرات القوالب والإكمال التلقائي في أداة إنشاء الاستعلامات، فهي غير منفَّذة وتُرجع خطأً. اكتب تعبيرات PromQL في وضع الشيفرة بدلاً من أداة إنشاء الاستعلامات.

نقاط إدخال SQL

يستخدم ClickHouse محوّل PromQL نفسه لواجهة برمجة تطبيقات HTTP، ولهجة promql، ودالتي الجدول prometheusQuery وprometheusQueryRange. شغّل PromQL مباشرةً باستخدام clickhouse-client:
استخدم دوال الجداول لتضمين PromQL في استعلام SQL:

الاستعلام عن البيانات الوصفية للمقاييس

تعيد نقطة النهاية /prometheus/api/v1/metadata البيانات الوصفية للمقاييس المخزنة في الجدول الهدف Metrics ضمن جدول TimeSeries، وهي تشمل النوع ونص المساعدة ووحدة كل عائلة مقاييس. وتدعم معلمات Prometheus التالية في سلسلة استعلام URL: الجدول الهدف الافتراضي Metrics هو جدول ReplacingMergeTree مرتب حسب اسم عائلة المقاييس، ويحتفظ بأحدث إدخال للبيانات الوصفية تمت كتابته لكل عائلة مقاييس. ولا تُعاد عدة إدخالات لكل عائلة إلا ما دام الجدول الهدف يحتفظ بها، أي قبل دمج أجزائه أو عند تعريف الجدول بمحرك يحافظ عليها.

قراءة المقاييس عبر القراءة عن بُعد

يدعم ClickHouse بروتوكول القراءة عن بُعد لـ Prometheus على المسار /prometheus/api/v1/read. هيّئ خادم Prometheus للقراءة من جدول TimeSeries نفسه:
آخر تعديل في ٢٨ أغسطس ٢٠٢٦