跳至主要内容

trace_log

包含由采样查询分析器收集的堆栈跟踪。

当设置trace_log服务器配置部分时,ClickHouse 会创建此表。另请参阅设置:query_profiler_real_time_period_nsquery_profiler_cpu_time_period_nsmemory_profiler_stepmemory_profiler_sample_probabilitytrace_profile_events

要分析日志,请使用addressToLineaddressToLineWithInlinesaddressToSymboldemangle自省函数。

  • 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) — 线程标识符。

  • query_id (String) — 查询标识符,可用于从query_log系统表获取有关正在运行的查询的详细信息。

  • trace (Array(UInt64)) — 采样时刻的堆栈跟踪。每个元素都是 ClickHouse 服务器进程内的虚拟内存地址。

  • size (Int64) - 对于跟踪类型MemoryMemorySampleMemoryPeak,是分配的内存量,对于其他跟踪类型,为 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