spring 云侦探如何运作?

How spring cloud sleuth works?

spring 云侦探如何在幕后工作?。它也能跟踪库调用吗?我有一个使用库 B 的 spring 引导项目 A。任何对项目 A 中端点的命中都由 sleuth 跟踪,但是当我尝试命中库 B 上的 rest 控制器时,sleuth 无法跟踪请求。有没有办法让侦探也跟踪库调用?

Spring Cloud Sleuth 直到版本 2.0 都有自己的跟踪器,并且从 2.0 开始它正在重用 https://github.com/openzipkin/brave 。跟踪器负责传递跟踪上下文。这是什么意思?这意味着您必须传播跟踪信息:

  • 当前span是多少(span是一个工作单元)
  • 当前trace是什么(trace是构成一个业务操作的所有工作单元的id)

跟踪信息传播 in-process(在不同的库、线程等之间),并在进程外(通过 Http headers、消息传递等),Sleuth 能够处理此信息并将其存储在本地以便继续跟踪。

您需要使用 SpanInjectorSpanExtractor(Sleuth 2.0 之前)或 Brave 的处理程序机制来正确处理跨度的接收和发送。