كشف مقاييس خادم ClickHouse
إذا كنت تستخدم ClickHouse Cloud، يمكنك كشف المقاييس لـ Prometheus باستخدام تكامل Prometheus.
<prometheus.handlers> لإنشاء معالجات موسّعة إضافية على المنفذ نفسه.
This section is similar to <http_handlers> but works for prometheus protocols:
تحقّق من نقطة النهاية:
واجهة Prometheus HTTP واجهة برمجة تطبيقات وPromQL
TimeSeries. يتولى معالج واحد عمليات الكتابة والقراءة عن بُعد، واستعلامات PromQL الفورية، واستعلامات PromQL للنطاق.
المتطلبات الأساسية
allow_experimental_time_series_table للمستخدم الذي يُنشئ الجدول ويصل إليه:
TimeSeries:
allow_experimental_time_series_table في ملف تعريف مستخدم واجهة برمجة التطبيقات.
تهيئة واجهة برمجة تطبيقات Prometheus
<defaults/> يحافظ على المعالجات المضمنة لنقاط النهاية، مثل /ping وطلبات SQL. تتيح البادئة أعلاه الوصول إلى هذه النقاط عبر معالج واحد:
يحذف المثال
database وtable من المعالج. يجب أن يتضمن كل طلب معلمة الاستعلام table. ويمكنه أيضًا تضمين database، أو استخدام اسم جدول مؤهل مثل prometheus.metrics، أو حذف قاعدة البيانات لاستخدام default. يتيح ذلك لمعالج واحد خدمة عدة جداول TimeSeries.
لاستخدام جدول ثابت واحد لكل طلب، هيّئه في المعالج:
استيعاب المقاييس عبر الكتابة عن بُعد
prometheus.metrics.
لتجميع البيانات من عدة طلبات كتابة عن بُعد متزامنة في عدد أقل من الأجزاء، فعّل عمليات الإدراج غير المتزامنة بإضافة إعداد async_insert إلى عنوان URL (أو بتفعيله في ملف تعريف المستخدم):
TimeSeries، بغض النظر عن إعداد wait_for_async_insert: إذ يتعامل بروتوكول الكتابة عن بُعد مع الكتابة المُقَرّ بها على أنها دائمة. وإذا أخفق التفريغ، يُرجع الطلب خطأً ويعيد Prometheus محاولة إرساله.
الاستعلام باستخدام PromQL
promql، ودالات الجداول.
Grafana
/api/v1:
/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
promql، ودالتي الجدول prometheusQuery وprometheusQueryRange.
شغّل PromQL مباشرةً باستخدام clickhouse-client:
الاستعلام عن البيانات الوصفية للمقاييس
/prometheus/api/v1/metadata البيانات الوصفية للمقاييس المخزنة في الجدول الهدف Metrics ضمن جدول TimeSeries، وهي تشمل النوع ونص المساعدة ووحدة كل عائلة مقاييس. وتدعم معلمات Prometheus التالية في سلسلة استعلام URL:
الجدول الهدف الافتراضي
Metrics هو جدول ReplacingMergeTree مرتب حسب اسم عائلة المقاييس، ويحتفظ بأحدث إدخال للبيانات الوصفية تمت كتابته لكل عائلة مقاييس. ولا تُعاد عدة إدخالات لكل عائلة إلا ما دام الجدول الهدف يحتفظ بها، أي قبل دمج أجزائه أو عند تعريف الجدول بمحرك يحافظ عليها.
قراءة المقاييس عبر القراءة عن بُعد
/prometheus/api/v1/read.
هيّئ خادم Prometheus للقراءة من جدول TimeSeries نفسه: