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

覆盖Spring cloud sleuth跟踪Id格式

宇文德明
2023-03-14

我们正在考虑利用spring cloud sleuth进行分布式跟踪,并且我们已经开发了一个PoC。这似乎是一个很好的解决方案,开箱即用。

但我有一个后续问题:

我们使用随机UUID和64位ID作为跟踪ID。我们知道自定义头(例如,一个新的跟踪Id)可以与sleuth头一起添加,但是否可以覆盖slueth的默认跟踪Id格式?我们已经查看了文档,也许传播是我们要走的路。有谁做了这一点,可以指出我们在正确的方向和一些例子,如果可能的话。我们将非常感谢你的帮助。

我们将非常感谢任何帮助/指示。

谢谢,GK

共有1个答案

柳越
2023-03-14

Spring-sleuth没有提供覆盖默认ID的方法。根据OpenZipkin的说法,跟踪标识符是64位或128位的,但跟踪中的所有跨距标识符都是64位的。所有标识符都是不透明的‘

请参阅:https://github.com/openzipkin/b3-propagation#identifiers

因此,您可以将生成的请求ID作为标记(“Tag”:“request ID”),也可以将生成的UID放置在不同的字段中,并使用传播技术。参考ExtraFieldPropagationTest。https://github.com/openzipkin/brave/blob/master/brave/src/test/java/brave/propagation/extrafieldpropagationtest.java

 类似资料:
  • 我有一个spring应用程序,它接受长期存在的连接——每个请求启动一个kafka消费者,然后它将消费和处理的消息写入请求客户端。每个已使用的kafka消息都包含侦探跟踪头,例如: 但是,由于kafka使用者是根据传入请求动态生成的,因此每个传入请求都会生成另一组span/id。 因此,在将kafka消息推送到客户端之前,在处理kafka消息期间生成的所有日志都会使用请求的跟踪/跨度进行跟踪,在我的

  • 我有一个在Wildfly 9服务器上运行的Java Web应用程序,我使用jmeter-maven插件在我的应用程序的运行实例上运行一些性能测试。这些测试对应用程序的服务运行简单的 REST 请求。 我想做的是检索性能测试的代码覆盖率统计数据,这样我就可以知道我的性能测试的代码覆盖率。 在此之后,我在服务器上设置了JaCoCoJava代理。这是启动时的代理配置 此外,我在测试Maven项目上配置了

  • 我正在尝试运行一个Spring启动应用程序,并在Sleuth的支持下跟踪其执行情况。日志显示了服务名称,但没有显示跟踪id或跨度id。我得到的只是[myservice,,,,]。 我错过了什么? 这是日志中的一些台词。 2017-04-30 14:41:38.750INFO[myservice,,] 7 --- [ main]s. c. a.注释配置应用上下文:刷新org.springframew

  • 如何在log4j2中获取跟踪id和span id,而不是在[traceId,spanId]中获取? 预期输出:[APPNAME,5A59B2372D9A3814,5A59B2372D9A3814] 实际输出:[loglevel=error]--2021-01-21 11:30:32,489+0530--http-nio-8080-exec-1 com.springboot.test.aspect.

  • 我希望为每个请求生成唯一的traceId,并将其传递给所有服务。在SpringMVC中,使用MDC上下文并将traceId放在头文件中相当容易,但在反应式堆栈中,由于ThreadLocal,它根本不起作用。 一般来说,我希望使用单个traceId记录我拥有的每个服务上的每个请求和响应,该traceId可以识别整个系统中的特定操作。 我试图根据文章创建自定义过滤器:https://azizulhaq

  • 跟踪行为控制着 Entity Framework Core 是否会在其变更跟踪器里维持实体实例的信息。如果实体是被跟踪的,任何检测到的该实体的变更都将在 SaveChanges() 时持久化到数据库中。Entity Framework Core 还会对已跟踪的、之前已加载到 DbContext 实例中的查询和实体进行相互的导航属性装配。 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。