Open gbling opened 2 months ago
目前不支持,如果有此方面的需求,可以说明使用场景和示例,我们看看能否支持。
目前我们基础架构上已经有实现一套链路追踪的机制,从客户端发起调用的时候就会在请求的Query参数里带上tracerId字段,接到请求的系统都会保存这个值继续传递; 这种方式会比较容易拿到tracerId在日志里查询到从客户端到服务端的整条链路
@gbling 能否举个例子,确保后面我们的实现不会有偏差。
比如 A->B->C 的场景下,将 A->B 和 B->C 的 URL 举例一下
@gbling 能否举个例子,确保后面我们的实现不会有偏差。
比如 A->B->C 的场景下,将 A->B 和 B->C 的 URL 举例一下
调用链路上关联的系统 client -> bbs -> mall -> trade
客户端发起调用,如下 http://bbs.test.com/v1/forum?tracerId=12345
bbs调用到下一个系统mall:bbs系统从query中获取到tracerId字段的内容,在请求mall系统时候带上,如下 http://mall.test.com/v1/shop?tracerId=12345
mall调用到下一个系统trade:mall系统从query中获取到tracerId字段的内容,在请求trade系统时候带上,如下 http://trade.test.com/v1/order?tracerId=12345
这样在日志搜索的时候就可以通过tracerId字段内容搜到整条链路的请求
你可以尝试将traceId放到header中使用x-request-id 中透传相同的id,然后deepflow中的x-request-id-0就会带上,trace的时候就会有上下文的关联,尽管看了很多资料,不确定是否是一个稳定可靠的方案,但是经过测试链路是关联起来了。
@Fancyki1 请问一下,当时测试的时候是在链路开始的时候修改x-request-id即可,还是整条调用链路的每个系统都需要做这个动作?
A(x-request-id修改) --> B --> C
还是 A(x-request-id修改) --> B(x-request-id修改) --> C(x-request-id修改)
@sharang
目前不支持,如果有此方面的需求,可以说明使用场景和示例,我们看看能否支持。
请问一下这块后续有支持计划吗
@sharang 另外看咱们是有支持wasm plugin的,不晓得用wasm能不能做到将请求query中的 tracerId 字段获取到再放到header中的操作
@gbling A(x-request-id=123456) --> B(x-request-id:123456) --> C(x-request-id:123456),可以看下deepflow论文的部分,你用x-request-id就行,要不然用wasm实现协议解析适配也行(不推荐麻烦),如果你只实现链路追踪x-request-id简单做就行了
@Fancyki1 多谢
Search before asking
Description
文档上介绍是可以自定义header字段作为串联调用链路的字段,能否通过query参数中指定的字段来串联请求的链路?
Use case
无
Related issues
无
Are you willing to submit a PR?
Code of Conduct