Spring Boot 3.x 与 spring-cloud-gateway 的微米跟踪问题

问题描述 投票:0回答:1

我们正在尝试将 spring-cloud-gateway 从带有 Sleuth 和 Brave 的 Spring Boot 2.7.18 升级到 3.1.5。与微米追踪和勇敢。 到目前为止一切顺利。

在 Spring Boot (Webflux) 之前 3 中,我们可以使用 io.projectreactor.netty:reactor-netty-http-brave 将spanIds和traceIds添加到HttpClient和HttpServer日志中。 请参阅:Micrometer Tracing 中的ReactorNettyHttpTracing(已弃用)等效项

这种方法不再适用于测微计追踪。

我们面临多个问题:

  • 来自HttpClient和HttpServer的请求日志不再包含traceIds或spanIds
  • Netty访问日志也不再包含traceIds或spanIds

我创建了一个示例项目来演示 JUnit 测试的问题: https://github.com/sandra-markerud/spring-cloud-gateway-upgrade ‘master’分支包含 spring boot 2x 版本 “feature/upgrade”分支包含 spring boot 3.1.5 版本

任何帮助将不胜感激。

到目前为止我做了什么:

根据文档进行设置:

到目前为止,只有以下功能有效:

  • 在应用程序内的“正常”日志语句中记录traceId和spanId
  • b3 跟踪标头在请求中发送到下游服务
spring-webflux spring-cloud-gateway spring-cloud-sleuth spring-boot-3 micrometer-tracing
1个回答
0
投票

因此,由于 #2850#3003spring-boot-3-tracing-coroutine 中的发现和修复,我终于可以拼凑出一个工作示例了:

spring-cloud-gateway-upgrade 分支“spring-boot-3.x-upgrade”包含版本 spring-boot-3-2-1 的 spring-cloud-gateway 和日志 3.7.2。

测试表明,日志记录和跟踪现在终于可以正常工作,具体取决于日志簿的启用或禁用。

我希望这可以帮助其他遇到同样问题的人:)

© www.soinside.com 2019 - 2024. All rights reserved.