这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
上下文传播
链路能工作的关键
链路追踪能工作,关键在于上下文传播。
入口服务生成 trace_id,后续每次 HTTP、RPC、消息队列调用都要把它传下去。常见方式是放在请求头:
traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
传播的路径
客户端请求
-> 网关:生成 trace_id
-> 订单服务:接收并传递
-> 支付服务:接收并传递
-> MySQL:记录在慢查询日志里(可选)
-> 消息队列:消息头携带 trace_id
断链的后果
如果某个服务没有继续传递 trace,上下游链路就会断开:
- 前半段一个 trace,后半段另一个 trace。
- 无法看到完整路径。
- 慢请求无法定位到具体环节。
覆盖率监控
平台需要监控 trace 覆盖率,发现未接入或传播失败的服务:
- 覆盖率 = 带 trace_id 的请求 / 总请求。
- 新服务上线后,覆盖率应接近 100%。
- 覆盖率下降,说明有服务断链。
一句话
链路追踪的关键是上下文传播:**trace_id 必须跨所有 HTTP、RPC、消息队列调用传递。**某处断链,链路就残缺——要用覆盖率监控来发现未接入或传播失败的服务。
发现内容有问题?
告诉我们哪里需要改进。
