1-在为侦探进行POC时,我们收集到,如果对启用slueth的应用程序的传入请求具有跟踪/跨度和父ID,则它们会向前传播,并且不会生成新ID。但是,这似乎仅在所有3个都存在时才起作用。我们尝试在请求标头中仅使用跟踪ID,并由侦探生成了新的跟踪ID-请确认是否需要同时显示3个消息才能成功传播。
2-我们有多个相互通信的微服务。其中一些是直接从UI层调用的,其他一些是从非侦探应用程序调用的。在这两种情况下,都会在请求中发送128位UUID作为跟踪ID。如果要使用侦探,则需要从UI层和非侦探应用生成侦探兼容的64位ID,以便在请求执行期间通过多个启用侦探的应用成功继承它们。 能否请您提供关于如何实现64位ID生成的建议,以使它们符合sleuth标准并成功传播。有效的侦听ID有什么要求?
任何指针都将受到高度赞赏。
谢谢。
答案 0 :(得分:1)
启用了侦探的应用程序仅在http请求标头中查找名为x-b3-trace-id的标头的值。此值由发出请求的应用程序传递,并由启用了侦听功能的应用程序对其traceId重用。不需要什么了。另外请记住,默认情况下,所有日志条目的traceId和spanId都相等。
这个问题的答案也在上面的#1中。如果您在请求标头中嵌入了x-b3-trace-id,那么基本上这就是sleuth关心的是它的跟踪ID。
我希望这对您有帮助
答案 1 :(得分:0)
您无需指定它们中的任何一个即可工作。 跨度是已完成的一组工作,而跟踪 ID 是已完成的所有小工作之间的相关性。例如: