【问题标题】: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 调用都会产生一个新的分离/孤立跟踪?

【问题讨论】:

    标签: spring zipkin spring-cloud-sleuth


    【解决方案1】:

    如果您使用的是 Sleuth 2.0,您可以调用 Tracer 方法来创建新跟踪。在旧版本的侦探中,我想我会使用一个 NOT bean 的执行程序。这样你会丢失跟踪,它会在某个时候重新启动(通过休息模板或类似的东西)。

    【讨论】:

    • 如何使用 Tracer 开始新的跟踪?我找不到这样的方法。能给个提示吗?
    猜你喜欢
    • 1970-01-01
    • 2010-12-10
    • 2017-10-26
    • 1970-01-01
    • 2018-07-13
    • 2012-07-01
    • 1970-01-01
    • 2023-01-14
    • 1970-01-01
    相关资源
    最近更新 更多