TimeSeries. يتولى معالج واحد عمليات الكتابة والقراءة عن بُعد، واستعلامات PromQL الفورية، واستعلامات PromQL للنطاق.
لعرض مقاييس ClickHouse الخاصة لكي يجمعها خادم Prometheus، راجع نقطة نهاية مقاييس Prometheus.
المتطلبات الأساسية
تختلف خطوات الإعداد بين ClickHouse Cloud وClickHouse المُدار ذاتيًا. اتبع القسم الخاص بنوع النشر لديك.ClickHouse Cloud
دعم PromQL في ClickHouse Cloud متاح في private preview. الخدمات المشاركة في private preview مهيّأة مسبقًا بالإعداد
enable_time_series_table وبنقاط نهاية واجهة برمجة تطبيقات Prometheus. أما خدمات ClickHouse Cloud الأخرى فلا تتضمّن هذه التهيئة، ولا يمكنك تفعيل هذه الميزة بنفسك على خدمة من هذا النوع. أما عبارة SET enable_time_series_table وتهيئة http_handlers الواردتان في الأقسام التالية فتنطبقان على عمليات النشر المُدارة ذاتيًا.مُدار ذاتيًا: تفعيل إعداد TimeSeries
فعِّل الإعدادenable_time_series_table للمستخدم الذي يُنشئ الجدول ويصل إليه:
enable_time_series_table في ملف تعريف مستخدم واجهة برمجة التطبيقات.
مُدار ذاتيًا: تهيئة نقاط نهاية واجهة برمجة تطبيقات Prometheus
هيِّئ معالجًا واحدًا قائمًا على توجيه البادئة على منفذ HTTP الرئيسي لـ ClickHouse:<defaults/> يحافظ على المعالجات المضمنة لنقاط النهاية، مثل /ping وطلبات SQL. تتيح البادئة أعلاه الوصول إلى هذه النقاط عبر معالج واحد:
يحذف المثال
database وtable من المعالج. يجب أن يتضمن كل طلب معلمة الاستعلام table (باستثناء /format_query، الذي يحلل تعبير PromQL المُعطى فقط ولا يحتاج إلى جدول). ويمكنه أيضًا تضمين database، أو استخدام اسم جدول مؤهل مثل prometheus.metrics، أو حذف قاعدة البيانات لاستخدام default. يتيح ذلك لمعالج واحد خدمة عدة جداول TimeSeries.
لاستخدام جدول ثابت واحد لكل طلب، هيّئه في المعالج:
إنشاء جدول TimeSeries
أنشئ قاعدة بيانات وجدولًا من نوعTimeSeries:
استيعاب المقاييس عبر الكتابة عن بُعد
يدعم ClickHouse بروتوكول الكتابة عن بُعد لـ Prometheus. هيّئ Prometheus للكتابة إلى المعالج:prometheus.metrics.
لتجميع البيانات من عدة طلبات كتابة عن بُعد متزامنة في عدد أقل من الأجزاء، فعّل عمليات الإدراج غير المتزامنة بإضافة إعداد async_insert إلى عنوان URL (أو بتفعيله في ملف تعريف المستخدم):
TimeSeries، بغض النظر عن إعداد wait_for_async_insert: إذ يتعامل بروتوكول الكتابة عن بُعد مع الكتابة المُقَرّ بها على أنها دائمة. وإذا أخفق التفريغ، يُرجع الطلب خطأً ويعيد Prometheus محاولة إرساله.
الاستعلام باستخدام PromQL
استخدم نقطة نهاية الاستعلام الفوري لتقييم تعبير PromQL في نقطة زمنية محددة:--get، يرسل curl المعلمات بصيغة application/x-www-form-urlencoded عبر POST:
sum by (job) (http_requests_total{code="200"}) / 2. لا تقوم نقطة النهاية هذه بتقييم التعبير، لذا فهي لا تحتاج إلى المعلمتين database وtable.
راجع ميزات PromQL المدعومة للاطلاع على قائمة الدالات وعوامل التجميع التي تستخدمها واجهة برمجة تطبيقات HTTP، ولهجة promql، ودالات الجداول.
Grafana
هيّئ مصدر بيانات Prometheus باستخدام عنوان URL أساسي ينتهي قبل/api/v1:
/api/v1/query أو /api/v1/query_range بعنوان URL الأساسي هذا، ويضيف customQueryParameters إلى كل طلب.
عند استخدام httpMethod: POST، يرسل Grafana معلمات الاستعلام في متن الطلب. ويقرأ ClickHouse متن الطلب واستعلام عنوان URL معًا، لذا يظل customQueryParameters ساريًا. استخدم POST لتعبيرات PromQL الطويلة، لأن عنوان URL له حد أقصى للطول.
لا تُنفَّذ إلا نقاط نهاية الاستعلام
/api/v1/query و/api/v1/query_range و/api/v1/format_query ونقاط نهاية البيانات الوصفية /api/v1/series و/api/v1/labels و/api/v1/label/<name>/values و/api/v1/metadata. تتطلب /api/v1/series محدِّد سلاسل واحدًا على الأقل من match[]، وتدعم المعلمات الاختيارية start وend وlimit، وتُرجع اتحاد السلاسل المطابقة لكل محدِّد. تقبل /api/v1/labels المعلمات نفسها، مع كون match[] اختياريًا، وتُرجع أسماء التسميات المرتبة للسلاسل المطابقة (أو لجميع السلاسل عند عدم تقديم أي محددات). وتقبل /api/v1/label/<name>/values المعلمات نفسها التي تقبلها /api/v1/labels وتُرجع القيم المرتبة لتسمية واحدة، مع إمكانية استخدام <name> لإفلات Prometheus بصيغة U__... لأسماء التسميات التي تحتوي على محارف خارج النطاق [a-zA-Z0-9_]. تغطي نقاط النهاية هذه ما يستخدمه مصدر بيانات Prometheus في Grafana لتصفّح التسميات ومتغيرات القوالب والإكمال التلقائي في أداة إنشاء الاستعلامات.نقاط إدخال SQL
يستخدم ClickHouse محوّل PromQL نفسه لواجهة برمجة تطبيقات HTTP، ولهجةpromql، ودالتي الجداول prometheusQuery وprometheusQueryRange.
شغّل PromQL مباشرةً باستخدام clickhouse-client:
الاستعلام عن البيانات الوصفية للمقاييس
تعيد نقطة النهاية/prometheus/api/v1/metadata البيانات الوصفية للمقاييس المخزنة في الجدول الهدف Metrics ضمن جدول TimeSeries، وهي تشمل النوع ونص المساعدة ووحدة كل عائلة مقاييس. وتدعم معلمات Prometheus التالية في سلسلة استعلام URL:
الجدول الهدف الافتراضي
Metrics هو جدول ReplacingMergeTree مرتب حسب اسم عائلة المقاييس، ويحتفظ بأحدث إدخال للبيانات الوصفية تمت كتابته لكل عائلة مقاييس. ولا تُعاد عدة إدخالات لكل عائلة إلا ما دام الجدول الهدف يحتفظ بها، أي قبل دمج أجزائه أو عند تعريف الجدول بمحرك يحافظ عليها.
قراءة المقاييس عبر القراءة عن بُعد
يدعم ClickHouse بروتوكول القراءة عن بُعد لـ Prometheus على المسار/prometheus/api/v1/read.
هيّئ خادم Prometheus للقراءة من جدول TimeSeries نفسه: