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

prometheus-adapter请求Prometheus成功但返回items为空问题排查

问题原因

你在prometheus-adapter的规则中配置了resources.overrides,将Prometheus指标的job标签映射为K8s的namespace资源。prometheus-adapter处理指标时会强制校验:*标签值必须和集群中实际存在的对应K8s资源名完全匹配:

  • 你从Prometheus拿到的go_routines_total指标job标签值为rt-scrape,该值不是K8s集群中实际存在的Namespace名称,因此适配器直接过滤掉了这条指标,导致最终返回的items列表为空。

修复方案

方案1:调整标签映射规则(推荐)

优先调整Prometheus采集规则,给go_routines_total指标注入K8s原生标签(如namespace、service等),再修改prometheus-adapter的values.yaml配置:

rules:
  default: false
  custom:
  - seriesQuery: '{__name__=~"go_routines_total"}'
    resources:
      overrides:
        # 替换为指标中实际存在的、值为真实K8s Namespace名称的标签名
        namespace: {resource: "namespace"}
        # 替换为指标中实际存在的、值为真实K8s Service名称的标签名
        service: {resource: "service"}
    name:
      matches: ^(.*)
      as: "go_routines_total"
    metricsQuery: go_routines_total{job=~"rt-scrape"}

方案2:临时验证(不推荐生产使用)

如果仅用于临时验证,可直接在K8s集群中创建名为rt-scrape的Namespace,重启prometheus-adapter后即可看到指标返回。

验证步骤

修改配置并重启prometheus-adapter后,执行以下命令验证:
kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/*/metrics/go_routines_total" | jq .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:15:03