Skip to content
业务稳定性与治理实践 · 第 4 篇 / 共 4 篇
领域项目实践
专题业务系统架构起步专题
当前序列业务稳定性与治理实践
阅读位置第 4 篇 / 共 4 篇当前专题第 2 个序列 / 共 5 个序列

链路追踪和日志关联怎么真正用于排障

先说结论

  • 链路追踪负责回答“请求经过了哪些服务、哪一段最慢”,日志负责回答“业务到底发生了什么”
  • traceId 一定要贯穿网关、应用、异步消息和定时任务,否则关键链路会断
  • 真正好用的不是采集越多越好,而是能用少量关键信息快速定位问题

一、为什么光有链路图还不够

很多系统已经接了 SkyWalking、Jaeger 或 OpenTelemetry,但出问题时还是要翻很久日志。原因通常是:

  • trace 只告诉你哪段慢
  • 但日志没打出订单号、用户号、请求参数、异常上下文
  • 或者日志打了,但没有 traceId,根本串不起来

所以更实际的目标是:
先用 trace 找到可疑链路,再用日志把这条链路里的业务事实补全。

二、最少要打通哪几条透传链路

1. 网关到服务

入口请求在网关生成 traceId,往后透传到每个微服务。

2. 服务到 MQ

消息生产时把 traceId、业务单号一起放进消息头或消息体元数据。

3. MQ 到消费者

消费者起处理链路时继续接住原 traceId,否则异步链路会变成断点。

4. 定时任务和补偿任务

这类任务也应该生成自己的 traceId,并把关联的业务 ID 打进去。

三、日志里真正值得保留什么

比起大段无意义文本,更有价值的是固定字段:

  • traceId
  • spanId
  • orderId / paymentId / userId
  • 服务名、实例名
  • 关键状态变更
  • 下游调用耗时
  • 异常码和异常摘要

日志要尽量结构化,否则你很难在高并发故障里快速筛出同一条业务链路。

四、最容易踩的坑

1. 采样做得太粗暴

全量采集成本太高,完全随机采样又可能漏掉关键异常。更推荐:

  • 高频正常流量按比例采样
  • 错误请求尽量全采
  • 关键交易链路提高采样率

2. traceId 有了,但业务 ID 没打

你能看到链路,却不知道它是哪笔订单、哪笔支付,排障效率还是很差。

3. MQ 和异步任务没透传上下文

这会让“订单已创建 -> 支付回调 -> 发货补偿”这类链路在图上看起来像多段孤岛。

4. 日志太多,但没有关键摘要

大量 debug 日志并不等于可观测,真正关键的是关键状态点是否打齐。

五、排障时更实用的顺序

  1. 先按错误时间段找到异常接口或异常 trace。
  2. 看最慢的 span 在哪一段。
  3. 再用 traceId 去日志系统查这条链路的业务上下文。
  4. 如果是异步问题,继续按业务 ID 串 MQ 消费和补偿任务。

这样比单独查日志或单独看追踪图都要高效。

总结

链路追踪和日志关联真正的价值,不是为了做出一张很漂亮的调用图,而是让你能在异常发生时,从入口请求一路追到业务事实。trace 找慢点,日志补语义,traceId 和业务 ID 一起透传,这套组合才真正能用于排障。

延伸阅读相关文章优先当前专题,再补跨专题关联。
同一序列 · 回看前文会更完整Sentinel 熔断降级和限流怎么接进业务适合把支付回调、秒杀、流控和链路追踪放在一起看。业务系统架构起步专题 · 商城高并发与治理实践同一序列 · 回看前文会更完整秒杀系统流量治理怎么做更稳适合把支付回调、秒杀、流控和链路追踪放在一起看。业务系统架构起步专题 · 商城高并发与治理实践同专题其他序列 · 共享标签:项目实战订单服务的事务边界应该怎么划分适合把认证、检索、购物车和订单边界放到一条业务链路里看。业务系统架构起步专题 · 商城业务链路设计实践同专题其他序列 · 共享标签:项目实战防腐层为什么在旧系统改造里很关键适合把 DDD、领域事件、BFF、防腐层和基础组件边界放在同一条项目起步主线上思考。业务系统架构起步专题 · 业务架构设计与项目起步判断跨专题关联 · 同场景:项目实战腾讯云部署 VitePress 技术站:Node、Docker Nginx 与发布全流程适合把站点初始化、HTTPS 域名接入和自动发布这条完整上线链路收拢到同一个专题里持续维护。个人技术站搭建专题 · 个人技术站搭建与上线跨专题关联 · 同类型:实践复盘标签基数为什么会拖垮 Prometheus适合把 Prometheus、Grafana、标签治理和告警分级放在一起看。可观测性专题 · 指标与告警体系设计
继续阅读业务稳定性与治理实践当前序列第 4 篇 / 共 4 篇当前专题第 2 个序列 / 共 5 个序列
往前看
上一篇Sentinel 熔断降级和限流怎么接进业务回到当前序列上一章上一序列业务骨架与核心链路从第 1 篇开始:商城微服务项目怎么起步:模块拆分、Nacos、OpenFeign、Gateway 的最小实践路径
往后看
下一序列商城业务链路设计实践从第 1 篇开始:商城认证服务怎么拆分更稳

把零散经验整理成可查、可复用、可持续更新的企业级知识门户