SkyWalking 源码分析 Agent 收集 Trace 数据
1. 概述
分布式链路追踪系统,链路的追踪大体流程如下:
1、 Agent收集Trace数据;
2、 Agent发送Trace数据给Collector;
3、 Collector接收Trace数据;
4、 Collector存储Trace数据到存储器,例如,数据库;
本文主要分享【第一部分】 SkyWalking Agent 收集 Trace 数据。文章的内容顺序如下:
- Trace 的数据结构
- Context 收集 Trace 的方法
不包括插件对 Context 收集的方法的调用,后续单独文章专门分享,胖友也可以阅读完本文后,自己去看 apm-sdk-plugin 的实现代码。
本文涉及到的代码如下图:

- 红框部分:Trace 的数据结构,在 「2. Trace」 分享。
- 黄框部分:Context 收集 Trace 的方法,在 「3. Context」 分享。
2. Trace
> 友情提示:胖友,请先行阅读 《OpenTracing语义标准》 。 > > 本小节,笔者认为胖友已经对 OpenTracing 有一定的理解。
org.skywalking.apm.agent.core.context.trace.TraceSegment ,是一次分布式链路追踪( Distributed Trace ) 的一段。