链路追踪
链路追踪用于分析一次请求经过哪些服务、每段耗时多少、在哪个依赖上失败。它适合微服务、网关、异步任务和多下游依赖场景。
- 请求跨多个微服务。
- 延迟升高但单个服务日志看不出原因。
- 需要定位下游依赖超时或错误。
- 需要把指标、日志和请求上下文串起来。
| 要求 | 说明 |
|---|---|
| 统一 trace_id | 每次请求全链路传递同一个 trace ID |
| 自动注入 | HTTP/gRPC 客户端和服务端自动埋点 |
| 采样策略 | 高流量服务按比例采样,错误请求优先保留 |
| 日志关联 | 日志中输出 trace_id,方便从日志跳转到 trace |
- 入口网关生成或透传 trace_id。
- 服务间调用统一使用支持 tracing 的客户端封装。
- 对数据库、缓存、消息队列等下游依赖建立 span。
- 错误 span 记录错误码、下游服务和超时信息。
- 采样率按业务等级和成本预算设置。
- 从告警进入服务维度看板。
- 找到异常时间段的高延迟或错误请求。
- 打开 trace,查看耗时最长或失败的 span。
- 使用 trace_id 查询相关应用日志。
- 结合事件和审计确认是否有发布或配置变更。