打开链路探索
左侧栏 Explore,选择 Tempo 数据源。两个主要入口:Search 按条件找链路,Trace ID 直达某条已知链路(通常从指标 Exemplars 或日志里拿到 ID)。
Search:按服务与属性查找
选择服务(resource 属性 service.name)、时间窗口,再叠加条件:最小延迟(min duration)、只看错误(Only show traces with errors)、属性过滤器。Tempo 新版本支持 TraceQL 风格的查询,例如:
{ .http.status_code = 500 } && duration > 1s
旧版本则以表单条件拼接为主;具体语法与入口随版本演进,以实际界面为准。
读懂一条链路
打开结果后的瀑布图关注三件事:
- 层级与时间占比:父子 span 缩进排列,条宽代表耗时占比;最长的叶子通常是元凶。
- 状态标记:错误 span 有红色标识,配合 Color by 设置按服务或状态着色。
- Span 详情:点开单个 span 看 tags、process 与日志挂载,例如:
{
"traceID": "567890abcdef1234567890abcdef1234",
"spanID": "0f1e2d3c4b5a6978",
"operationName": "HTTP GET /checkout",
"duration": 1843200,
"tags": [
{ "key": "http.status_code", "value": "500" },
{ "key": "error", "value": true }
]
}
提示:
duration的单位是微秒,上面1843200约等于 1.84 秒;读瀑布图时留意轴单位切换。
Trace to logs 与 Trace to metrics
在 span 详情区可以横向关联:
- Logs for this span:带着 trace ID 或 span 属性跳到 Loki 查同期日志。
- Metrics for this span:跳到该服务与操作对应的 RED 指标曲线。
这需要先把数据源关联配好:Tempo 数据源设置页的 Trace to logs(选 Loki 数据源并配标签映射或 traceID 检索)与 Trace to metrics 区块,名称以实际界面为准。配好之后,一次请求的全貌——链路、日志、指标——在 Explore 里闭环。
三条路汇入同一条链路
排障闭环的标准走法:指标发现异常 → 点 Exemplars 或跳 Tempo 找慢/错 span → Trace to logs 看当时的错误堆栈 → 拿 trace ID 反查全量日志。反向也通:从日志结构化字段里提取 trace ID 直接粘进 Trace ID 输入框。
常见坑
- Search 查不到:采样策略会丢长尾链路,先放宽时间窗与条件再下结论。
- 服务名对不上:链路的
service.name与指标标签是两套来源,接入时就要统一命名。 - Trace ID 查无此链:Tempo 保留期短于工单处理周期时,链路比日志先消失,核对保留配置。