用途:使用分布式追踪(OpenTelemetry / Tempo)了解本地 Materialize 实例中 SQL 语句执行时间花在哪里,用于调试与性能分析。
主要能力:启动本地监控栈并配合启用追踪的 environmentd;运行时设置 OpenTelemetry 过滤器;执行查询并捕获 trace id;从 Tempo 拉取 OTLP JSON 追踪数据;用 trace_tree.py 分析 span 树,查看 self-time、父子并发关系及 [src/...] 源码位置。
使用方式:先启动监控栈 bin/mzcompose --find monitoring run default,再启动 bin/environmentd --optimized --monitoring;用 emit_trace_id_notice 抓取 trace id,等待 span 刷新后从 http://localhost:3200/api/traces/$TRACE_ID 拉取数据,再运行 python3 .claude/skills/query-tracing/trace_tree.py /tmp/claude-1000/trace.json "My Query" 分析。
注意:必须追踪 --optimized 构建,debug 构建会引入偏差;须先启动监控栈再启动 environmentd,否则 span 丢失;所有网络调用需要 dangerouslyDisableSandbox;Tempo 默认仅保留 15 分钟追踪;首次拉取常返回未找到,需重试;网络调用与过滤设置见原文。