当前位置: 首页 > 知识库问答 >
问题:

Spring Sleuth |创建新的(分离/孤立)跟踪

商宏爽
2023-03-14

我得到了一个SpringBoot应用程序,它使用SpringSleuth来跟踪服务间调用。在该应用程序中,存在一个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期间移交的。

如何在开始下一次迭代之前清除当前跟踪,以便每个超文本传输协议调用都将导致新的分离/孤立跟踪?

共有1个答案

简培
2023-03-14

如果您正在使用Sleuth 2.0,您可以调用Tracer方法来创建新的跟踪。在侦探的旧版本中,我想我会使用一个不是bean的执行者。这样你会失去跟踪,它会在某个时候重新开始(通过rest模板或类似的东西)。

 类似资料:
  • 是否有人有任何解决方案,使autosys的终止信号传播到实际进程? 谢了。

  • 我很想知道您是否可以,以及将提交合并到我的孤儿分支是否有任何问题。对于这个特定的实例,我的Salesforce存储库有一个主分支和一个预发布分支,但由于我们的沙盒环境通常有不属于生产的元数据,但我们希望对其进行版本控制,但与干净的预发布分支有足够的分离。 因此,我们有以下内容:

  • 我有div,可以拖放到绘图区域。可以使用鼠标从源endpoint拖放到目标endpoint手动连接这些div。在这样创建的连接上,连接被分离,但endpoint保留,删除的连接可以通过上述相同的手动过程重新创建。现在,我还将以json格式的连接节点流程图形式的绘图保存到磁盘文件中。在加载文件时,流程图会完美地显示所有连接和节点。现在我在点击一个节点时删除一个连接,它就可以工作了。但是现在我不能再次

  • 我正在考虑从主线程创建、的可能性,而分离的线程创建线程并等待之后再运行下一个线程。 但我不认为这是可能的,因为我总是在第一个线程之后而在下一个线程之前崩溃。 : : 因此,以下是我希望发生的事情: 更新:如何接受这个并将其分解,以便在标头中声明,但在需要的地方执行,然后执行

  • 在偶尔的情况下,你可能会想要保留那些与你的代码没有共同祖先的分支。例如在这些分支上保留生成的文档或者其他一些东西。如果你需要创建一个不使用当前代码库作为父提交的分支,你可以用如下的方法创建一个空分支: git symbolic-ref HEAD refs/heads/newbranch rm .git/index git clean -fdx <do work> git add your

  • 问题内容: 我刚刚检查了/ var / lib / docker / volumes文件夹,发现该文件夹正以名为Docker UUID的文件夹爆炸,每个文件夹都包含一个config.json文件,其内容与 哪里 是指向主机上的文件夹的路径,该主机已通过-v开关挂载到Docker容器上。我有这样的文件夹可以追溯到我对Docker进行实验的开始,即大约3周前。 有问题的容器很久以前就已停止并且dock