You need to enable JavaScript to run this app. Prometheus采集Jenkins指标:已配置Service及ServiceMonitor却未在Targets列表显示
优惠活动
大模型
产品
解决方案
定价
更多

Prometheus采集Jenkins指标:已配置Service及ServiceMonitor却未在Targets列表显示

配置问题排查与修正

核心故障根因

  • ServiceMonitor 端口匹配规则失效
    Prometheus Operator 规范中,ServiceMonitor.spec.endpoints.port 字段仅支持匹配目标 Service 已定义端口的 name 属性值,不支持直接填写数字端口号完成关联。
    当前定义的Service端口段未配置端口名称,同时在ServiceMonitor中直接填写 port: "8080",Operator 无法关联到有效Service端口,无法拼接生成合法的抓取目标。这也是为什么你能在Service Discovery页面识别到对应的ServiceMonitor资源,但Targets列表没有对应条目的核心原因。
  • 对应修正操作:
    1. 在Service的端口配置段补充端口名称,示例配置:
    spec:
      type: ClusterIP
      ports:
        - name: jenkins-web
          port: 8080
          targetPort: 8080
    
    1. 修改ServiceMonitor的endpoints配置,将port: "8080"替换为与Service端口名完全一致的port: jenkins-web

待核对配置项

  • 抓取路径一致性:当前ServiceMonitor配置的抓取路径为/prometheus/(带尾部斜杠),需确认Jenkins Prometheus插件返回200状态的实际路径与配置值完全匹配,避免因路径不匹配触发404异常,导致目标生成后被标记为失败状态
  • Service端点有效性:执行kubectl get ep jenkins -n <部署命名空间>,确认返回的端点列表无<none>空值,保证Service可正确关联到运行Jenkins的Pod实例
  • 冗余配置清理:Service上配置的prometheus.io/scrape、prometheus.io/port、prometheus.io/path注解属于非Operator模式下的静态抓取识别标识,在Prometheus Operator + ServiceMonitor的工作链路中这些配置不会被读取,可按需清理

生效验证

修正配置后等待1-2个抓取间隔,刷新Prometheus UI的Targets页面,即可看到对应的Jenkins抓取条目,状态显示为健康即代表配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 07:06:01