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

如何实现Spring Boot应用100%请求追踪并上报至OpenTelemetry Collector

Spring Boot 3 + OpenTelemetry 实现100%请求追踪采样

你遇到的核心问题是Spring Boot原生的追踪采样配置和OpenTelemetry Starter的采样机制不兼容。management.tracing.sampling.probability是Spring Boot自身Micrometer Tracing的配置,但OpenTelemetry Starter有独立的采样器体系,不会读取这个配置,导致实际采样率远低于预期的100%。

解决步骤

1. 替换采样配置为OpenTelemetry专属配置

修改application.yml,移除原有的management.tracing.sampling节点,添加OpenTelemetry的强制采样配置:

spring:
  datasource:
    url: "jdbc:h2:mem:db"
management:
  endpoints:
    web:
      exposure:
        include: "*"
# OpenTelemetry 强制100%采样配置
otel:
  traces:
    sampler: always_on

always_on采样器会对所有请求生成完整的追踪数据,完全满足测试阶段的需求。

2. 清理版本不匹配的依赖

你的pom.xml中引入的opentelemetry-samplers(版本1.42.0-alpha)和opentelemetry-instrumentation-bom(版本2.11.0)版本差异过大,可能引发依赖冲突。建议直接移除这个不必要的依赖,因为OpenTelemetry Starter已经内置了所需的采样器实现:

<!-- 移除该依赖 -->
<!--<dependency>
    <groupId>io.opentelemetry.contrib</groupId>
    <artifactId>opentelemetry-samplers</artifactId>
    <version>1.42.0-alpha</version>
</dependency>-->

3. 验证效果

重启应用后,多次请求/hello端点,检查OpenTelemetry Collector的接收数据,此时每条请求都应该生成对应的追踪链路。

如果后续需要调整采样率(比如生产环境降低采样比例),可以改用基于TraceID比例的采样器,配置示例:

otel:
  traces:
    sampler: traceidratio
    sampler:
      traceidratio:
        ratio: 1.0 # 1.0表示100%采样,可根据需求调整为0.1(10%)等数值

内容的提问来源于stack exchange,提问作者Tiago Leite

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:19:50