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

如何配置Prometheus仅抓取指定Kubernetes命名空间的指标

配置不生效的核心原因
  • 服务发现角色配置错误。你当前kubernetes-pods抓取job的kubernetes_sd_configs配置的role是node,该角色用于发现Kubernetes集群节点类资源,而节点属于集群级资源本身没有命名空间属性,不会携带__meta_kubernetes_namespace元标签,所以不管你用keep还是drop动作基于该标签做筛选,都不会生效。
  • 重标记规则逻辑错误。keep动作需要搭配regex参数使用,只有当source_labels提取到的值匹配regex规则时,才会保留该抓取目标;你配置的target_label参数仅用于标签重写/新增场景,对keep动作没有意义。
正确配置示例

如果你需要仅保留accounts命名空间下的Pod指标,丢弃其他命名空间的Pod指标,正确的job配置如下:

- job_name: 'kubernetes-pods'
  kubernetes_sd_configs:
    - role: pod # 服务发现角色改为pod,才能拿到Pod对应的命名空间元标签
  relabel_configs:
    - action: keep
      source_labels: [__meta_kubernetes_namespace]
      regex: accounts # 只有命名空间匹配accounts的抓取目标才会被保留

如果需要同时保留多个命名空间,比如要保留accounts和monitoring两个命名空间,regex按如下写法即可:

regex: (accounts|monitoring)
Helm部署的修改方式

如果你使用的是社区Prometheus Helm chart,不需要直接修改Prometheus的ConfigMap,直接在values.yaml中对应配置块修改即可:

  • 针对默认的kubernetes-pods抓取job,可以在prometheus.prometheusSpec.additionalScrapeConfigs中加入上述正确配置。
  • 如果你希望所有抓取任务全局只抓取特定命名空间的指标,可以直接在prometheus.prometheusSpec.namespaceSelector中配置要筛选的命名空间列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:06:10