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

修改cAdvisor的Prometheus采集job标签导致Grafana仪表盘异常

修复方案

根因说明

kube-prometheus-stack 内置的Grafana Kubernetes监控仪表盘,默认所有cAdvisor相关指标的PromQL查询都绑定了默认采集任务的job标签值(通常为kubelet)。你为适配VPA修改采集任务名为kubernetes-cadvisor后,原有查询匹配不到指标,因此出现无数据提示。

修复方法(推荐优先使用第一种)

方法1:新增标签重写规则适配双场景

无需修改Grafana仪表盘,只需在你的采集配置中新增一条relabel规则,给cAdvisor指标额外添加原有默认的job标签即可同时满足VPA和Grafana的匹配需求。
修改values.yaml中additionalScrapeConfigs的对应配置:

additionalScrapeConfigs:
  - job_name: 'kubernetes-cadvisor'
    scheme: https
    metrics_path: /metrics/cadvisor
    tls_config:
      ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
      insecure_skip_verify: true
    bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - action: labelmap
      regex: __meta_kubernetes_node_label_(.+)
    # 新增以下配置,额外保留原有job标签
    - target_label: job
      replacement: kubelet

修改完成后执行helm upgrade更新配置即可,1-2分钟后Grafana图表就会恢复正常。

方法2:修改Grafana全局变量适配自定义job名

如果不想修改采集配置,可以直接调整Grafana仪表盘的全局job变量:

  1. 打开无数据的CPU仪表盘,点击右上角齿轮图标进入仪表盘设置
  2. 左侧菜单选择「变量」,找到名称为cadvisor_job、kubelet_job的变量
  3. 将变量的默认值修改为kubernetes-cadvisor,保存时勾选「应用到当前文件夹所有仪表盘」
  4. 若要避免后续helm升级覆盖配置,可在values.yaml中添加以下配置固化变量:
grafana:
  dashboards:
    kubernetes:
      values:
        cadvisorJob: kubernetes-cadvisor

方法3:调整VPA配置适配原有采集规则

如果你后续不需要保留自定义的cAdvisor采集job名,也可以直接修改VPA Recommender的启动参数,指定它使用原有默认的kubelet job名来读取指标,对应启动参数为--prometheus-job-name=kubelet。


内容的提问来源于stack exchange,提问作者Søren Pedersen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:57:04