一、功能
默认情况下,EVENT_TRACE 记录 SQL 执行过程中的事件(如 query end、closing tables 等)。当系统变量 tdstore_rpc_stat_mode 设置为 2 时,还会记录 TDStore 存储引擎的 RPC 调用事件,事件名格式为 tdstore_rpc/<RPC 类型>/begin 和 tdstore_rpc/<RPC 类型>/end,通过 trace_id 和 span_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 TraceSET GLOBAL tdstore_rpc_stat_mode = 2;– 执行业务 SQL(触发 TDStore RPC 调用)INSERT INTO t1 VALUES (1, 'test');– 查询 1: 所有 beginSELECT event_name, event_timestampFROM information_schema.event_traceWHERE event_name LIKE 'tdstore_rpc/%/begin'ORDER BY event_name, event_timestamp;– 查询 2: 所有 endSELECT event_name, event_timestampFROM information_schema.event_traceWHERE event_name LIKE 'tdstore_rpc/%/end'ORDER BY REPLACE(event_name, '/end', '/begin'), event_timestamp;
注意:说明: