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

SpringBoot/Jersey与Splunk/OTel Collector冲突致K8s探针失败求助

Spring Boot + Jersey 集成 Splunk OTel Agent 致 Actuator 探针失败问题

已知类似场景与排查方案

  • Servlet 拦截路径冲突
    Splunk OTel Java Agent 默认拦截所有 Servlet 请求,包括 Actuator 端点。你的应用中 Actuator 路径为 /api/users/actuator/*,Jersey 处理 /api/users/v2/*,Agent 可能误将 Actuator 请求导向 Jersey,或干扰 Spring MVC 的请求映射逻辑。可通过配置排除 Actuator 路径:

    otel.instrumentation.servlet.exclude-paths=/api/users/actuator/*
    
  • 过滤器执行顺序异常
    启用 OTel Agent 后,可能改变了 Servlet 容器内 Jersey 与 Spring MVC 的过滤器优先级,导致 Actuator 请求被 Jersey 拦截却无法处理。可调整 Jersey 过滤器的执行顺序,让 Spring MVC(Actuator)的过滤器先运行:

    @Configuration
    public class JerseyConfig extends ResourceConfig {
        public JerseyConfig() {
            // 原有Jersey配置逻辑
        }
    
        @Bean
        public FilterRegistrationBean<ServletContainer> jerseyFilterRegistration(ServletContainer servletContainer) {
            FilterRegistrationBean<ServletContainer> registration = new FilterRegistrationBean<>(servletContainer);
            registration.setOrder(2); // 数值越大执行越晚,确保Spring MVC过滤器(默认Order=1)优先
            return registration;
        }
    }
    
  • Jersey 增强模块干扰
    Splunk OTel Agent 内置了 Jersey 的 instrumentation 模块,可能在增强 Jersey 时破坏了 Spring Boot 上下文初始化流程。可尝试禁用该模块:

    otel.instrumentation.jersey.enabled=false
    

    注意:此操作会丢失 Jersey 端点的链路追踪能力,若需追踪可后续单独配置自定义采集规则。

  • Actuator 指标采集冲突
    OTel Agent 会自动采集 Actuator 指标,采集过程可能导致端点响应异常。可禁用 Actuator 相关的 instrumentation:

    otel.instrumentation.spring-boot-actuator.enabled=false
    

验证建议

  1. 在 K8s Pod 的环境变量中添加上述配置项,重新部署应用
  2. 查看 Pod 日志,确认 Actuator 端点请求是否返回 200 状态码
  3. 检查 Agent 日志(容器内通常可通过 kubectl logs <pod-name> -c splunk-otel-agent 查看),排查是否存在请求拦截或初始化错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 10:28:31