Tempo 数据源是什么
Tempo 是链路数据的存储后端,Grafana 通过内置数据源接入,提供 TraceQL 检索与单条 trace 的瀑布图详情。它的优势是与指标、日志的互相跳转:从指标异常点跳到具体链路,或从日志里的 trace 标识跳到整条调用链。这类跳转依赖统一的标识注入,接入前要先确认应用侧已经正确传递追踪上下文。
基本信息
| 适用平台 | Grafana 与 Tempo 组合,Tempo 查询端口默认 3200 |
|---|---|
| 检索语言 | TraceQL,按资源属性、span 属性与耗时可筛选 |
| 详情视图 | span 瀑布图,含各阶段耗时与属性 |
| 依赖组件 | 服务图与部分指标依赖 Tempo 的指标生成器 |
典型使用场景
- 慢请求定位:按服务与耗时条件筛出慢链路,下钻到具体 span
- 错误链路排查:按错误状态筛选,定位失败的调用环节
- 跨服务影响面:确认一次请求经过哪些服务、各段耗时占比
- 指标联动:从指标面板的异常点跳到相关链路
- 日志联动:由日志中的 trace 标识跳到链路详情
- 版本对比:按服务版本筛选两个版本的链路,比较各段耗时的变化
配置与检索
配置与检索
# 数据源 URL:http://tempo:3200
# TraceQL 检索:按资源属性与耗时过滤
{resource.service.name="order-api" && duration > 500ms}
# 组合 span 属性条件
{resource.service.name="order-api" && span.http.response.status_code=500}
# 联动入口
# 指标 Exemplar → Trace 详情
# 日志 trace_id → Trace 详情
# 注意:trace_id 大小写与格式必须一致,否则跳转后查不到数据检索条件与用途
| 条件 | 写法示例 | 用途 |
|---|---|---|
| 资源属性 | resource.service.name=order-api | 按服务缩小范围 |
| span 属性 | span.http.response.status_code=500 | 定位失败调用 |
| 耗时阈值 | duration > 500ms | 筛出慢链路 |
| 状态 | status=error | 只看失败链路 |
| 组合条件 | 用 && 与 || 连接 | 多条件收敛样本 |
| span 名称 | name="POST /v1/orders" | 聚焦到具体操作 |
检索时间范围越大,TraceQL 查询代价越高:先从故障时间窗开始,确认条件有效后再放宽,不要一上来就查一周。
服务图与服务级指标依赖指标生成器组件,未部署时相关视图为空不是权限问题,而是组件缺失。
接入前先确认应用侧已经注入追踪上下文:缺少统一的服务名与 trace 标识时,Tempo 里有数据也无法与日志、指标对上,跳转功能等于不可用。