跳到主要内容
跳到主要内容
本文档在人工智能的帮助下进行翻译

发现翻译问题?报告翻译问题,帮助我们改进翻译。

报告问题

system.trace_log

在 ClickHouse Cloud 中查询

该系统表中的数据在 ClickHouse Cloud 的每个节点上本地保存。因此,要获得所有数据的完整视图,需要使用 clusterAllReplicas 函数。有关更多详细信息,请参见 here

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

当设置 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。

  • symbols (Array(LowCardinality(String))),如果启用了符号化,包含与 trace 对应的去除修饰的符号名称。

  • lines (Array(LowCardinality(String))),如果启用了符号化,包含与 trace 对应的文件名和行号字符串。

符号化可以在服务器配置文件的 trace_log 下的 symbolize 中启用或禁用。

示例