目录
分布式链路追踪
分布式链路追踪最早在 Google 在 2010 年发表的论文《Dapper : a Large-Scale Distributed Systems Tracing Infrastructure》中提出。主要包含了 2 个概念:
-
追踪(Trace):从 Client 发起的 RequestX 抵达系统的边界开始,记录 RequestX 流经的每一个系统服务,直到到向 Client 返回 Response 为止,这整个过程就称为一次追踪。
-
跨度(Span):由于每次 Trace 都可能会调用数量不定、坐标不定的多个服务,为了能够记录具体调用了哪些服务,以及调用的顺序、开始时点、执行时长等信息,每次开始调用服务前都要先埋入一个调用记录,这个记录称为一个跨度。
Dapper 使用以 Span 为 Node 的 Trace Tree(跟踪树)来构建跟踪模型。并为每个 Span 记录了一个可读的 span name、span id 和 parent id,这样就能重建出一次分布式跟踪过程中不同跨度之间的关系。没有 parent id 的 Span 被称为 Root Span。一次特定跟踪的所有相关 Spans 会共