迁移到 Spring Boot 3 后,TraceId 和 SpanId 不可用

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

将 Spring Boot 从版本 2.x 迁移到版本 3 后,我们在日志中丢失了 traceId 和 spanId。

我们删除了所有 sleuth 依赖项并添加了

implementation 'io.micrometer:micrometer-core'
implementation 'io.micrometer:micrometer-tracing'
implementation 'io.micrometer:micrometer-tracing-bridge-brave'
implementation platform('io.micrometer:micrometer-tracing-bom:latest.release')

以及

logging.pattern.level: "%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]"

但没有记录任何traceIds和spanIds。

我们有什么遗漏的吗?

java spring-boot micrometer spring-micrometer
2个回答
9
投票

您需要执行器和桥,不需要您包含的其余部分:

implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-tracing-bridge-brave'

如果您还想报告您的跨度,您也应该添加 zipkin 报告器:

implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-tracing-bridge-brave'
implementation 'io.zipkin.reporter2:zipkin-reporter-brave'

这是 start.spring.io 上的一个示例,并且 micrometer-samples 存储库中有很多示例。


0
投票

如果是 Spring Webflux 项目,您将无法看到traceId和spanId,因为千分尺在sprint boot 3中不支持。如果是Spring MVC,那么您应该能够看到traceId和SpanId。

https://github.com/spring-projects/spring-boot/issues/33372

https://github.com/spring-projects/spring-framework/issues/29466

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