الاستعلام في ClickHouse Cloudتُخزَّن بيانات جدول النظام هذا محليًا على كل عقدة في ClickHouse Cloud. لذلك، يتطلب الحصول على رؤية كاملة لجميع البيانات استخدام الدالة
clusterAllReplicas. راجع هنا لمزيد من التفاصيل.الوصف
addressToLine وaddressToLineWithInlines وaddressToSymbol وdemangle.
الأعمدة
hostname(LowCardinality(String)) — اسم مضيف الخادم الذي ينفّذ الاستعلام.event_date(Date) — تاريخ لحظة أخذ العينة.event_time(DateTime) — الطابع الزمني للحظة أخذ العينة.event_time_microseconds(DateTime64(6)) — الطابع الزمني للحظة أخذ العينة بدقة الميكروثانية.timestamp_ns(UInt64) — الطابع الزمني للحظة أخذ العينة بالنانوثانية.revision(UInt32) — رقم build revision الخاص بـ ClickHouse server. عند الاتصال بالخادم باستخدامclickhouse-client، سترى سلسلة مشابهة لـConnected to ClickHouse server version 19.18.1.. يحتوي هذا الحقل علىrevision، وليسversionالخاص بالخادم.trace_type(Enum8(‘Real’ = 0, ‘CPU’ = 1, ‘Memory’ = 2, ‘MemorySample’ = 3, ‘MemoryPeak’ = 4, ‘ProfileEvent’ = 5, ‘JemallocSample’ = 6, ‘MemoryAllocatedWithoutCheck’ = 7, ‘Instrumentation’ = 8)) — نوع التتبّع: يمثّلRealجمع stack traces وفق wall-clock time. ويمثّلCPUجمع stack traces وفق وقت CPU. ويمثّلMemoryجمع allocations وdeallocations عندما يتجاوز تخصيص الذاكرة الـ watermark التالي. ويمثّلMemorySampleجمع allocations وdeallocations عشوائيًا. ويمثّلMemoryPeakجمع تحديثات peak memory usage. ويمثّلProfileEventجمع الزيادات في profile events. ويمثّلJemallocSampleجمع عينات jemalloc. ويمثّلMemoryAllocatedWithoutCheckجمع عمليات التخصيص الكبيرة (>16MiB) مع تجاهل أي memory limit (لمطوري ClickHouse فقط). ويمثّلInstrumentationtraces التي جُمعت عبر instrumentation المُنفَّذ بواسطة XRay.cpu_id(UInt64) — معرّف CPU.thread_id(UInt64) — معرّف thread.thread_name(LowCardinality(String)) — اسم thread.query_id(String) — معرّف الاستعلام الذي يمكن استخدامه للحصول على تفاصيل عن استعلام كان قيد التشغيل من system table المسماة query_log.trace(Array(UInt64)) — stack trace عند لحظة أخذ العينة. كل عنصر هو عنوان ذاكرة افتراضية داخل server process الخاص بـ ClickHouse.size(Int64) — بالنسبة إلى أنواع التتبّع Memory وMemorySample وMemoryAllocatedWithoutCheck وMemoryPeak، فهو مقدار الذاكرة المخصّصة، أما بالنسبة إلى أنواع التتبّع الأخرى فقيمته 0.ptr(UInt64) — عنوان الـ chunk المخصّص.memory_context(Enum8(‘Unknown’ = -1, ‘Global’ = 0, ‘User’ = 1, ‘Process’ = 2, ‘Thread’ = 3, ‘Max’ = 4)) — سياق memory tracker (فقط لـ Memory/MemoryPeak): يكون سياقUnknownغير معرّف لهذاtrace_type. ويمثّلGlobalسياق الخادم. ويمثّلUserسياق المستخدم/الدمج. ويمثّلProcessسياق العملية (أي الاستعلام). ويمثّلThreadسياق thread (thread الخاصة بعملية معيّنة). أماMaxفهي قيمة خاصة تعني أن memory tracker غير محظور (للعمود blocked_context).memory_blocked_context(Enum8(‘Unknown’ = -1, ‘Global’ = 0, ‘User’ = 1, ‘Process’ = 2, ‘Thread’ = 3, ‘Max’ = 4)) — السياق الذي يكون فيه متتبّع الذاكرة موقوفًا (لمطوري ClickHouse فقط): سياقUnknownغير معرّف لهذاtrace_type. يشيرGlobalإلى سياق الخادم. ويشيرUserإلى سياق المستخدم/الدمج. ويشيرProcessإلى سياق العملية (أي الاستعلام). ويشيرThreadإلى سياق الخيط (خيط العملية المعنية). أماMaxفهي قيمة خاصة تعني أن متتبّع الذاكرة غير موقوف (لعمودblocked_context).event(LowCardinality(String)) — بالنسبة إلى نوع التتبّع ProfileEvent، فهذا هو اسم حدث profile الذي تم تحديثه، أما في أنواع التتبّع الأخرى فهو سلسلة فارغة.increment(Int64) — بالنسبة إلى نوع التتبّع ProfileEvent، فهذا هو مقدار الزيادة في حدث profile، أما في أنواع التتبّع الأخرى فهو 0.symbols(Array(LowCardinality(String))) — إذا كان تحويل الرموز إلى أسماء مفعّلًا، فسيحتوي على أسماء الرموز بعد فك تشويهها، المقابلة لـtrace. يمكن تفعيل تحويل الرموز إلى أسماء أو تعطيله في الإعدادsymbolizeضمنtrace_logفي ملف تهيئة الخادم.lines(Array(LowCardinality(String))) — إذا كان تحويل الرموز إلى أسماء مفعّلًا، فسيحتوي على سلاسل تضم أسماء الملفات مع أرقام الأسطر، المقابلة لـtrace.function_id(Nullable(Int32)) — بالنسبة إلى نوع التتبّع Instrumentation، فهذا هو المعرّف المُسنَد إلى الدالة في القسم xray_instr_map من ملف ELF الثنائي.function_name(Nullable(String)) — بالنسبة إلى نوع التتبّع Instrumentation، فهذا هو اسم الدالة التي خضعت للـ instrumentation.handler(Nullable(String)) — بالنسبة إلى نوع التتبّع Instrumentation، فهذا هو handler الخاص بالدالة التي خضعت للـ instrumentation.entry_type(Nullable(Enum8(‘Entry’ = 0, ‘Exit’ = 1))) — بالنسبة إلى نوع التتبّع Instrumentation، فهذا هو نوع الإدخال للدالة التي خضعت للـ instrumentation.duration_nanoseconds(Nullable(UInt64)) — بالنسبة إلى نوع التتبّع Instrumentation، فهذا هو الزمن الذي استغرقتْه الدالة أثناء التشغيل، بالنانوثانية.
build_id— اسم مستعار لـ'E2EEB60ED9503BFFA825B628D480CCDC40B2D416'.
symbolize ضمن trace_log في ملف تهيئة الخادم.
مثال
التحويل إلى تنسيق تتبّع الأحداث في Chrome
chrome_trace.sql:
trace.json يمكن استيراده إما عبر Perfetto أو speedscope.
انظر أيضًا
- SYSTEM INSTRUMENT — أضف نقاط القياس أو أزلها.
- system.instrumentation — استعرض نقاط القياس المُضافة.
- system.symbols — استعرض الرموز لإضافة نقاط القياس إليها.