春天侦探 |创建新的(分离的/孤立的)跟踪
Posted
技术标签:
【中文标题】春天侦探 |创建新的(分离的/孤立的)跟踪【英文标题】:Spring Sleuth | Create fresh new (detached/orphaned) Trace 【发布时间】:2018-09-16 02:59:57 【问题描述】:我有一个Spring Boot 应用程序使用Spring Sleuth 来跟踪服务间调用。在该应用程序中存在一个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 调用都与单个跟踪相关联。很可能是因为跟踪上下文在调用ScheduledExecutorService::submit
期间被移交。
如何在开始下一次迭代之前清除当前跟踪,以便每个 http 调用都会产生一个新的分离/孤立跟踪?
【问题讨论】:
【参考方案1】:如果您使用的是 Sleuth 2.0,您可以调用 Tracer
方法来创建新跟踪。在旧版本的侦探中,我想我会使用一个 NOT bean 的执行程序。这样你会丢失跟踪,它会在某个时候重新启动(通过休息模板或类似的东西)。
【讨论】:
如何使用 Tracer 开始新的跟踪?我找不到这样的方法。能给个提示吗?以上是关于春天侦探 |创建新的(分离的/孤立的)跟踪的主要内容,如果未能解决你的问题,请参考以下文章