trace_log
包含由采样查询分析器收集的堆栈跟踪。
当设置trace_log服务器配置部分时,ClickHouse 会创建此表。另请参阅设置:query_profiler_real_time_period_ns、query_profiler_cpu_time_period_ns、memory_profiler_step、memory_profiler_sample_probability、trace_profile_events。
要分析日志,请使用addressToLine
、addressToLineWithInlines
、addressToSymbol
和demangle
自省函数。
列
hostname
(LowCardinality(String)) — 执行查询的服务器的主机名。event_date
(Date) — 采样时刻的日期。event_time
(DateTime) — 采样时刻的时间戳。event_time_microseconds
(DateTime64) — 具有微秒精度的采样时刻的时间戳。timestamp_ns
(UInt64) — 以纳秒为单位的采样时刻的时间戳。revision
(UInt32) — ClickHouse 服务器构建版本。当通过
clickhouse-client
连接到服务器时,您会看到类似于Connected to ClickHouse server version 19.18.1.
的字符串。此字段包含revision
,但不包含服务器的version
。trace_type
(Enum8) — 跟踪类型Real
表示按挂钟时间收集堆栈跟踪。CPU
表示按 CPU 时间收集堆栈跟踪。Memory
表示当内存分配超过后续水位线时收集分配和释放。MemorySample
表示收集随机分配和释放。MemoryPeak
表示收集峰值内存使用情况的更新。ProfileEvent
表示收集配置文件事件的增量。
thread_id
(UInt64) — 线程标识符。trace
(Array(UInt64)) — 采样时刻的堆栈跟踪。每个元素都是 ClickHouse 服务器进程内的虚拟内存地址。size
(Int64) - 对于跟踪类型Memory
、MemorySample
或MemoryPeak
,是分配的内存量,对于其他跟踪类型,为 0。event
(LowCardinality(String)) - 对于跟踪类型ProfileEvent
,是更新的配置文件事件的名称,对于其他跟踪类型,为空字符串。increment
(UInt64) - 对于跟踪类型ProfileEvent
,是配置文件事件的增量,对于其他跟踪类型,为 0。
示例
SELECT * FROM system.trace_log LIMIT 1 \G
Row 1:
──────
hostname: clickhouse.eu-central1.internal
event_date: 2020-09-10
event_time: 2020-09-10 11:23:09
event_time_microseconds: 2020-09-10 11:23:09.872924
timestamp_ns: 1599762189872924510
revision: 54440
trace_type: Memory
thread_id: 564963
query_id:
trace: [371912858,371912789,371798468,371799717,371801313,371790250,624462773,566365041,566440261,566445834,566460071,566459914,566459842,566459580,566459469,566459389,566459341,566455774,371993941,371988245,372158848,372187428,372187309,372187093,372185478,140222123165193,140222122205443]
size: 5244400