Table of contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Skywalking 3 Cross Process Propagation Headers Protocol
- Version 1.0
这是Skywalking3跨进程传输头协议第一个公开版本。Skywalking是一个偏向APM的分布式追踪系统,所以,为了提供服务端处理性能。头信息会比其他的追踪系统要更复杂一些。你会发现,这个头信息,更像一个商业APM系统,并且,一些商业APM系统的头信息,比我们的要复杂的多。所以,如果你希望开发或者贡献其他语言探针、或者JAVA探针的其他市县模式,请耐心阅读,并理解此协议内容。
Header Item
- Header Name:
sw3 - Header Value: 使用
|分隔,包含以下内容
Values
- Trace Segment Id
Trace segment,即分布式调用链片段。这个ID为此调用链片段全局唯一ID。此ID由一次分布式调用链的一个线程执行过程独享(在Java模型中)。ID由三个Long型组成,如: "1.2343.234234234
- 第一部分代表应用的实例ID(
application instance id),此ID通过注册接口由Collector分配。一般取值范围为整形,利于protobuf传输。 - 第二部分为线程号,Java模型中,一般也是整形。
- 第三部分又由两部分组成
- 时间戳,单位毫秒
- 线程内的自增序列。0到9999之间。
如果你使用其他语言实现探针,你只需要保证你的ID由三个Long型构成,并全局唯一,不必完全遵守Java的ID生成规则。
- Span Id
一个整数,在trace segment内唯一,从0开始自增。
- Parent Application Instance
父级应用节点的应用实例ID。如:在一个RPC调用中,HEAD中是客户端的应用实例ID。
- Entry Application Instance
入口应用节点的应用实例ID。如:在一个分布式链路A->B->C中,此字段为A应用的实例ID。
- Peer Host
服务端的Peer Host或Peer Id。如:客户端使用182.14.39.1:9080服务端,则这个就是对应的Peer Host。
此值可以通过Collector服务获得对应的ID。如果非ID,则使用#开头,如果使用ID,则为整数类型。
- Entry Span Operation Name of First Trace Segment
调用链入口节点的应用实例下,入口Span的operation name或id。
此值可以通过Collector服务获得对应的ID。如果非ID,则使用#开头,如果使用ID,则为整数类型。
- Entry Span Operation Name of Parent Trace Segment
调用链父级节点的应用实例下,入口Span的operation name或id。
此值可以通过Collector服务获得对应的ID。如果非ID,则使用#开头,如果使用ID,则为整数类型。
- Distributed Trace Id
分布式链路ID一般是整个调用链的全局唯一ID。如果针对批量消费情况,这个ID是批量中,第一个生产者的trace ID。此ID生成规则和Trace Segment Id一致,由三个Long型数字构成。
Sample value
value值示例:
1.2343.234234234|1|1|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|1.2343.2342342341.2343.234234234|1|1|1|#127.0.0.1:8080|#/portal/|1038|1.2343.234234234
WIKI documents are maintained by @OpenSkywalking