能否将Trace Status作为Grafana Tempo可视化中的字段使用?
在Grafana中基于Tempo追踪状态可视化自定义Span数据
完全可以实现你要的效果,具体步骤如下:
1. 编写TraceQL查询提取核心字段
首先要确保查询能返回追踪的状态、时间(或其他XY轴字段)以及唯一标识,示例查询如下:
{ | status.status_code, trace_id, start_time(start), duration(start) }
该查询会返回所有追踪的状态码、追踪ID、开始时间和持续时间——这些是可视化的核心数据。如果你的状态是自定义属性而非OTel标准status字段,把status.status_code替换为你的自定义属性路径(比如.custom_trace_status)即可。
2. 选择可视化面板并配置字段映射
Time Series面板配置:
- 将
start_time(start)设置为X轴(时间轴) - 在Legend设置中选择
status.status_code,不同状态的追踪会自动分组,Grafana会为每组分配不同颜色 - 把
trace_id添加到Tooltip字段,鼠标悬停时可查看具体追踪ID
XY Chart面板配置:
- X轴选
start_time(start)(追踪开始时间),Y轴可选duration(start)(追踪耗时)或你需要的其他自定义字段 - 在Color设置中选择
status.status_code,让不同状态的点对应不同颜色 - 同样可将
trace_id加入Tooltip字段,方便定位具体追踪
3. 自定义状态颜色(可选)
如果想给指定状态固定颜色:
- 进入面板的Options → Color设置
- 找到Legend values或Custom color mapping选项
- 分别给
error、ok、unset(注意匹配TraceQL返回的大小写,比如OTel标准是ERROR/OK/UNSET)设置对应颜色,比如红色、绿色、灰色
4. 验证效果
运行查询后,检查每个点的颜色是否与状态匹配,悬停时是否能看到完整的追踪信息。你使用的Tempo main-358d837是开发版,完全支持TraceQL字段提取,Grafana 12.4.0对这类可视化的兼容性也没问题。
内容的提问来源于stack exchange,提问作者Tom




