简介SkyWalking跨进程通信协议用于上下文通信。本文介绍的版本是3.0,也就是所谓的sw8协议。HeaderitemHeader应该是上下文传播的最低要求。标头名称:sw8。标头值:由8个字段组成,以-分隔。Header值的长度应小于2KB。头值头值具体包括以下8个字段:样本(Sample),0或1,0表示上下文存在,但可以(也可能)忽略;1表示此跟踪需要被采样并发送到后端。TraceID(TraceId)是一个BASE64编码的字符串,它的内容是三个以.分隔的long型值,代表这条trace的唯一标识。ParenttracesegmentID(ParenttracesegmentId),是一个BASE64编码的字符串,其内容是一个字符串,全局唯一。ParentspanID是一个从0开始的整数。这个spanID指向parenttrackingsegment中的parentspan。父服务名称(Parentservice),是一个BASE64编码的字符串,其内容是一个UTF-8编码的字符串,长度小于等于50。父服务实例标识(Parentserviceinstance)是一个BASE64-encoded字符串,内容为UTF-8编码字符串,长度小于等于50。父服务端点(Parentendpoint)为BASE64编码字符串,内容为操作名称父跟踪段(segment)中的第一个入口跨度(span),由UTF-8编码,长度小于或等于50个字符组成。本次请求的目标地址(Peer)是一个BASE64编码的字符串,其内容是客户端访问目标服务所使用的网络地址(不一定是IP+端口)。Headervalueexample上面的描述太干了,我们举一个具体的例子来更好的理解。Therearetwoservices,onemore-aandonemore-b,theusercalls/onemore-a/getofonemore-aviaHTTP,and/onemore-a/getofonemore-acalls/ofonemore-bviaHTTPonemore-b/get,流程图就是这样的:那么,我们在onemore-b的/onemore-b/get的Header中就可以发现一个叫做sw8的key,其值为:1-YTRlYzZmYzhjY2FiNGJiNGI2ODIwNjQ2OThjYzk3ZTYuNzQuMTYyMTgzODExMDQ1NTAwMDk=-YTRlYzZmYzhjY2FiNGJiNGI2ODIwNjQ2OThjYzk3ZTYuNzQuMTYyMTgzODExMDQ1NTAwMDg=-2-b25lbW9yZS1h-ZTFkMmZiYjYzYmJhNDMwNDk5YWY4OTVjMDQwZTMyZmVAMTkyLjE2OC4xLjEwMQ==-L29uZW1vcmUtYS9nZXQ=-MTkyLjE2OC4xLjEwMjo4MA=Splitby-characters,youcanget:1,sampleandsendtothebackendtoindicatetheneedfortracking.YTRlYzZmYzhjY2FiNGJiNGI2ODIwNjQ2OThjYzk3ZTYuNzQuMTYyMTgzODExMDQ1NTAwMDk=,追踪ID,解码后为:a4ec6fc8ccab4bb4b682064698cc97e6.74.16218381104550009YTRlYzZmYzhjY2FiNGJiNGI2ODIwNjQ2OThjYzk3ZTYuNzQuMTYyMTgzODExMDQ1NTAwMDg=,父追踪片段ID,解码后为:a4ec6fc8ccab4bb4b682064698cc97e6.74.162183811045500092,父跨度ID。b25lbW9yZS1h,父服务名称,解码后为:onemore-aZTFkMmZiYjYzYmJhNDMwNDk5YWY4OTVjMDQwZTMyZmVAMTkyLjE2OC4xLjEwMQ==,父服务实例标识,解码后为:e1d2fbb63bba430499af895c040e32fe@192.168.1.101L29uZW1vcmUtYS9nZXQ=,父服务的端点,解码后为:/onemore-a/getMTkyLjE2OC4xLjEwMjo4MA==,本次请求的目标地址,解码后为:192.168.1.102:80ExtendedHeaderItemExtendedHeaderitem是为高级特性设计的,提供上下游服务部署的探针之间的交互功能。Header名称:sw8-xHeadervalue:以-分隔,字段可扩展。extendedHeader值的当前值中包含的字段:TracingMode,空,0或1,默认为空或0。表示在这个上下文中生成的所有span都应该跳过分析。默认情况下,这应该传播到上下文中的服务器,除非它在跟踪期间发生更改。最后谢谢大家的喜欢和关注,帅气又漂亮。
