链路追踪

链路追踪

traceId
Dapper 论文

inpoint 实践

  1. 需要为每一个组件生成一个 component id
  2. 对于每一个 http 请求生成一个唯一的 request id,并且通过线程局部变量(ThreadLocal)传递下去
  3. 对于请求内新起来的线程,需要修改线程创建类,把 request id 继续传递下去
  4. 对于请求内产生的 rpc 调用,需要修改请求端代码,把 request id 信息带入 header,并在接收端解析这个 header 注入到线程本地变量
  5. 每次调用到一个组件(component),就使用 (request id, component id) 组合记录一个 Trace Log