您的位置:首页 > 科技 > IT业 > SkyWalking 跨进程传播的头部协议

SkyWalking 跨进程传播的头部协议

2024/12/26 1:19:56 来源:https://blog.csdn.net/damokelisijian866/article/details/140783397  浏览:    关键词:SkyWalking 跨进程传播的头部协议

SkyWalking 跨进程传播协议的头部信息被称为 sw8 协议,版本 3.0。sw8 协议的头部(header)包含了用于上下文传播的关键信息,其名称为 sw8,头值由 - 分隔的 8 个字段组成,且头值的长度应小于 2KB。

这 8 个字段的具体含义如下:

  1. 采样(sample):取值为 0 或 1,0 表示上下文存在,但可能被忽略;1 表示这个追踪需要采样并发送到后端。
  2. 追踪 ID(traceid):是经过 base64 编码的字符串,其内容是由 . 分割的三个 long 类型值,表示此追踪的唯一标识。
  3. 父追踪片段 ID(parenttracesegmentid):同样是 base64 编码的字符串,代表全局唯一的字符串。
  4. 父跨度 ID(parentspanid):是一个从 0 开始的整数,这个跨度 ID 指向父追踪片段中的父跨度。
  5. 父服务名称(parentservice):为 base64 编码的字符串,是一个长度小于或等于 50 个 UTF-8 编码的字符串。
  6. 父服务实例标识(parentserviceinstance):也是 base64 编码的字符串,内容是长度小于或等于 50 个 UTF-8 编码的字符串。
  7. 父服务的端点(parentendpoint):通过 base64 编码的字符串,表示父追踪片段中第一个入口跨度的操作名,由长度小于或等于 50 个 UTF-8 编码的字符组成。
  8. 本请求的目标地址(peer):采用 base64 编码的字符串,其内容是客户端用于访问目标服务的网络地址(不一定是 IP + 端口)。

例如,有两个服务 onemore-aonemore-b,用户通过 HTTP 调用 onemore-a/onemore-a/get,然后 onemore-a/onemore-a/get 又通过 HTTP 调用 onemore-b/onemore-b/get,那么在 onemore-b/onemore-b/get 的请求头中,sw8 键对应的值可能如下:1-ytrlyzzmyzhjy2fingjingi2odiwnjq2othjyzk3ztyunzqumtyymtgzodexmdq1ntawmdk=-ytrlyzzmyzhjy2fingjingi2odiwnjq2othjyzk3ztyunzqumtyymtgzodexmdq1ntawmdg=-2-b25lbw9yzs1h-ztfkmmziyjyzymjhndmwndk5ywy4otvjmdqwztmyzmvamtkylje2oc4xljewmq==-l29uzw1vcmutys9nzxq=-mtkylje2oc4xljewmjo4ma==

- 字符进行分割,可以得到以下内容:

  • 1:采样,表示这个追踪需要采样并发送到后端。
  • ytrlyzzmyzhjy2fingjingi2odiwnjq2othjyzk3ztyunzqumtyymtgzodexmdq1ntawmdk=:追踪 ID,解码后为 a4ec6fc8ccab4bb4b682064698cc97e6.74.16218381104550009
  • ytrlyzzmyzhjy2fingjingi2odiwnjq2othjyzk3ztyunzqumtyymtgzodexmdq1ntawmdg=:父追踪片段 ID,解码后也为 a4ec6fc8ccab4bb4b682064698cc97e6.74.16218381104550009
  • 2:父跨度 ID。
  • b25lbw9yzs1h:父服务名称,解码后为 onemore-a
  • ztfkmmziyjyzymjhndmwndk5ywy4otvjmdqwztmyzmvamtkylje2oc4xljewmq==:父服务实例标识,解码后为 e1d2fbb63bba430499af895c040e32fe@192.168.1.101
  • l29uzw1vcmutys9nzxq=:父服务的端点,解码后为 /onemore-a/get
  • mtkylje2oc4xljewmjo4ma==:本请求的目标地址,解码后为 192.168.1.102:80

此外,还有扩展头部(extension header)项,其名称为 sw8-x,头值由 - 分割,字段可扩展。当前扩展头部值包括的字段为追踪模式(tracingmode),取值为空、0 或 1,默认为空或 0,表示在这个上下文中生成的所有跨度应该跳过分析,默认情况下会在上下文中传播到服务端,除非在跟踪过程中被更改。其主要是为高级特性设计的,用于提供部署在上游和下游服务中的探针之间的交互功能。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com