春季侦探 |创建新的(分离/孤立的)跟踪



我得到了一个Spring Boot应用程序,它利用Spring Sdetectth来跟踪服务间调用。在该应用程序中,存在一个 ScheduledExecutorService,它在循环中执行 http 请求(下面的伪代码):

class HttpCaller implements Runnable {
public void run() {
performHttpCall();
// "loop"
executor.submit(this::run);
}
}
// start it once
scheduler.submit(new HttpCaller());

如果我现在看一下Sleuth生成并存储在Zipkin中的跟踪,我可以看到所有http调用都与单个Trace相关联。很可能是因为跟踪上下文是在调用ScheduledExecutorService::submit期间移交的。

如何在开始下一次迭代之前清除当前跟踪,以便每个 http 调用都会导致新的分离/孤立跟踪?

如果您使用的是侦探 2.0,则可以调用Tracer方法来创建新跟踪。在旧版本的侦探中,我想我要做的是使用不是豆子的执行器。这样,您将丢失跟踪,并且它将在某个时候重新启动(通过 rest 模板或类似内容)。

最新更新