帮你快速理解、总结文档立即下载

EVENT_TRACE

最近更新时间:2026-08-21 16:29:32
我的收藏

功能

EVENT_TRACE 视图用于查询 TDSQL Boundless 内核中的事件信息。事件是一种特殊的日志类型,包含与跟踪数据进行联动的上下文信息,帮助用户深入了解系统内部操作流程。
默认情况下,EVENT_TRACE 记录 SQL 执行过程中的事件(如 query endclosing tables 等)。当系统变量 tdstore_rpc_stat_mode 设置为 2 时,还会记录 TDStore 存储引擎的 RPC 调用事件,事件名格式为 tdstore_rpc/<RPC 类型>/begintdstore_rpc/<RPC 类型>/end,通过 trace_idspan_id 可将 RPC 调用与 SQL 执行链路关联。

字段说明

字段名
类型
描述
event_timestamp
timestamp
事件发生的时间戳
event_name
varchar(65535)
事件的名称
tid
longlong
事件发生的线程 ID
trace_id
byte
事件对应的跟踪链路的标识 ID
span_id
longlong
对应 SPAN 的唯一标识

示例

tdsql > SELECT * FROM INFORMATION_SCHEMA.EVENT_TRACE;
+----------------------------+----------------------+---------+----------------------------------+---------+
| event_timestamp | event_name | tid | trace_id | span_id |
+----------------------------+----------------------+---------+----------------------------------+---------+
| 2025-12-01 16:34:44.589668 | query end | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:44.589679 | closing tables | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:44.589685 | freeing items | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:44.589723 | cleaning up | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.798871 | starting | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799009 | checking permissions | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799031 | Opening tables | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799151 | init | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799156 | System lock | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799193 | optimizing | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799195 | optimizing | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799202 | statistics | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799230 | preparing | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799251 | statistics | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799256 | preparing | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.799265 | executing | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.803909 | end | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.803913 | query end | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.803925 | closing tables | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.803937 | freeing items | 1048622 | 00000000000000000000000000000000 | 0 |
| 2025-12-01 16:34:45.804007 | cleaning up | 1048622 | 00000000000000000000000000000000 | 0 |
+----------------------------+----------------------+---------+----------------------------------+---------+
21 rows in set (0.02 sec)
查询 TDStore RPC 调用事件并计算每次调用的耗时。
先将 tdstore_rpc_stat_mode 设置为 2 开启 RPC 事件的 Event Trace 记录,执行业务 SQL 后,通过 begin/end 事件对的 span_id 关联计算端到端耗时:
-- 开启 RPC 统计 + Event Trace
SET GLOBAL tdstore_rpc_stat_mode = 2;

-- 执行业务 SQL(触发 TDStore RPC 调用)
INSERT INTO t1 VALUES (1, 'test');

-- 查询 1: 所有 begin
SELECT event_name, event_timestamp
FROM information_schema.event_trace
WHERE event_name LIKE 'tdstore_rpc/%/begin'
ORDER BY event_name, event_timestamp;

-- 查询 2: 所有 end
SELECT event_name, event_timestamp
FROM information_schema.event_trace
WHERE event_name LIKE 'tdstore_rpc/%/end'
ORDER BY REPLACE(event_name, '/end', '/begin'), event_timestamp;
说明:
tdstore_rpc_stat_mode 设置为 0(默认)时不记录 RPC 事件,设置为 1 时仅统计 RPC 调用但不写 Event Trace,设置为 2 时同时统计并写 Event Trace。
RPC 事件的 event_name 格式为 tdstore_rpc/<RPC 类型>/begin(调用开始)和 tdstore_rpc/<RPC 类型>/end(调用结束),其中 <RPC 类型>kPutRecordkGetRecordkCommit 等。
同一次 RPC 调用的 beginend 事件具有相同的 span_id,可通过该字段关联计算耗时。
tdstore_rpc_stat_mode = 2 会为每次 RPC 调用写入2条事件(begin/end 各一条),在 RPC 调用密集场景下会产生大量 Event Trace 数据,建议在问题定位时临时开启,排查完毕后恢复为 01