You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.0.0集成Jaeger 3.3.1无追踪数据问题咨询

问题分析与解决方案

核心原因

opentracing-spring-jaeger-cloud-starter 3.x版本仅适配Spring Boot 2.x(基于Java EE),而Spring Boot 3.x切换为Jakarta EE API,两者底层依赖不兼容,导致追踪数据无法正常上报。此外,手动创建JaegerTracer Bean的方式在Spring Boot 3的自动配置体系下存在冲突,无法与Spring的请求拦截、WebClient追踪等组件正确集成。

解决步骤

1. 升级依赖版本

替换原有的Jaeger starter依赖为适配Spring Boot 3的4.x版本:

<dependency>
    <groupId>io.opentracing.contrib</groupId>
    <artifactId>opentracing-spring-jaeger-cloud-starter</artifactId>
    <version>4.0.0</version> <!-- 可使用更高兼容版本 -->
</dependency>

2. 移除自定义Jaeger配置类

Spring Boot 3下,Jaeger starter会自动完成Tracer、采样器、上报器等核心组件的配置,手动创建JaegerTracer Bean会覆盖自动配置,导致集成异常。直接删除JaegerConfig类即可。

3. 通过配置文件简化配置

在application.yml或application.properties中添加Jaeger相关配置,替代硬编码的配置类:

opentracing:
  jaeger:
    service-name: jaeger-client
    sampler:
      type: const
      param: 1
    reporter:
      log-spans: true
    udp-sender:
      host: localhost # 根据Jaeger Agent实际部署地址调整
      port: 6831

4. 确保WebClient的追踪集成

若需使用WebClient调用其他服务并传递追踪上下文,无需手动创建WebClient Bean,starter会自动配置带有追踪拦截器的WebClient实例。若必须自定义WebClient,需注入OpenTracingWebClientCustomizer添加追踪支持:

@Configuration
public class WebClientConfig {
    @Bean
    public WebClient webClient(OpenTracingWebClientCustomizer customizer) {
        return WebClient.builder()
                .apply(customizer)
                .build();
    }
}

验证

重启应用后,检查启动日志确认Jaeger Tracer初始化成功,发送请求后即可在Jaeger UI中看到服务及追踪数据。

内容的提问来源于stack exchange,提问作者Prasad Jagtap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:35:14