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

Grafana仅识别Prometheus所在Namespace/Node指标的技术问题求助

问题排查与解决步骤

1. 验证Prometheus指标采集完整性

先直接在Prometheus UI执行查询,确认是否真的能获取到目标Namespace的指标:

  • 执行查询语句:kube_deployment_status_replicas{namespace="ns-app-dev"},检查是否返回对应数据
    • 若无数据,说明Prometheus采集kube-state-metrics时做了过滤,需检查采集job的metric_relabel_configs配置,比如是否存在仅保留grafana-lokiNamespace的规则:
      # 错误示例:需删除或修改此类规则
      metric_relabel_configs:
      - source_labels: [namespace]
        regex: grafana-loki
        action: keep
      
      将regex改为.*即可保留所有Namespace的指标。

2. 检查Grafana变量与查询的绑定

若Prometheus能查到数据,问题出在Grafana配置:

  • 进入面板的变量设置页,确认Namespace变量的查询语句是否正确,正确写法应为:
    label_values(kube_deployment_status_replicas, namespace)
    
    确保变量能拉取全量Namespace列表。
  • 修正面板查询语句,将变量正确引入:
    sum(kube_deployment_status_replicas{namespace=~"$namespace"})
    
    其中$namespace需与你定义的变量名称完全一致。

3. 确认Prometheus的RBAC权限

检查Prometheus使用的ServiceAccount是否有集群级别的资源访问权限,部分场景下RBAC规则会限制仅能访问特定Namespace:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: prometheus-kube-state-metrics
rules:
- apiGroups: [""]
  resources: ["pods", "services", "nodes", "namespaces"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["apps"]
  resources: ["deployments", "statefulsets", "daemonsets"]
  verbs: ["get", "list", "watch"]

确保ClusterRole包含所有需要的资源权限,并绑定到Prometheus的ServiceAccount。

4. 校验指标标签一致性

确认kube-state-metrics输出的指标中,namespace标签的拼写、大小写完全正确,避免因标签名不匹配导致筛选失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:22