تزويد ClickHouse بسياق التتبع
clickhouse-client باستخدام الخيارين --opentelemetry-traceparent و--opentelemetry-tracestate.
إذا لم يتم تمرير سياق تتبع أصل، أو كان سياق التتبع الممرَّر غير متوافق مع معيار W3C المذكور أعلاه، يمكن لـ ClickHouse بدء تتبّع جديد باحتمال يتحكم فيه إعداد opentelemetry_start_trace_probability.
نشر سياق التتبع
- الاستعلامات المُرسلة إلى خوادم ClickHouse البعيدة، مثل عند استخدام محرك الجدول Distributed.
- دالة الجدول url. تُرسَل معلومات سياق التتبع ضمن ترويسة HTTP.
تتبّع طلبات ClickHouse Keeper
تمكين تتبّع طلبات Keeper
أنواع Span في Keeper
zookeeper.create— إنشاء عقدة جديدةzookeeper.get— جلب بيانات العقدةzookeeper.set— تعيين بيانات العقدةzookeeper.remove— إزالة عقدةzookeeper.list— سرد العقد الفرعيةzookeeper.exists— التحقّق مما إذا كانت العقدة موجودةzookeeper.multi— تنفيذ عدة عمليات بشكل ذرّيzookeeper.client.requests_queue— الزمن المستغرَق في انتظار الطلبات في الطابور قبل إرسالها
keeper.receive_request— استلام الطلب من العميل وتحليلهkeeper.dispatcher.requests_queue— انتظار الطلبات في طابور dispatcherkeeper.write.pre_commit— المعالجة التمهيدية لطلبات الكتابة قبل Raft commitkeeper.write.commit— معالجة طلبات الكتابة بعد Raft commitkeeper.read.wait_for_write— طلبات القراءة التي تنتظر عمليات الكتابة التابعةkeeper.read.process— معالجة طلبات القراءةkeeper.dispatcher.responses_queue— انتظار الاستجابات في طابور dispatcherkeeper.send_response— إرسال الاستجابة إلى العميل
أخذ العينات والأداء
تتبّع ClickHouse ذاته
trace spans لكل استعلام، وكذلك لبعض مراحل تنفيذ الاستعلام، مثل تخطيط الاستعلام أو الاستعلامات الموزعة.
ولكي تكون معلومات التتبّع مفيدة، يجب تصديرها إلى نظام مراقبة يدعم OpenTelemetry، مثل Jaeger أو Prometheus. ولا يعتمد ClickHouse على نظام مراقبة بعينه، بل يوفّر بيانات التتبّع فقط عبر جدول نظام. وتُخزَّن معلومات OpenTelemetry trace span التي يتطلبها المعيار في جدول system.opentelemetry_span_log.
يجب تمكين هذا الجدول في تهيئة الخادم؛ راجع العنصر opentelemetry_span_log في ملف الإعداد الافتراضي config.xml. وهو مفعّل افتراضيًا.
تُحفَظ العلامات أو السمات في مصفوفتين متوازيتين تحتويان على المفاتيح والقيم. استخدم ARRAY JOIN للعمل معها.
إعدادات سجل الاستعلام
التكامل مع أنظمة المراقبة
http://localhost:9411، بتنسيق Zipkin v2 JSON: