如何在Helm部署的Prometheus中排除不需要的Kubernetes监控指标
Prometheus Helm Chart 指标过滤配置方案
核心配置位置
你使用的 prometheus-community 官方 Prometheus Helm Chart 提供了两种层级的指标过滤配置入口,所有配置都可以通过自定义 values.yaml 覆盖默认参数实现:
- 全局生效:针对所有采集任务过滤指标,配置路径为
server.global.metric_relabel_configs - 特定采集任务生效:仅针对某个exporter(比如kube-state-metrics、node-exporter)的采集结果过滤,配置在对应组件的子配置段下,比如kube-state-metrics对应
kube-state-metrics.metricRelabelings,node-exporter对应nodeExporter.metricsRelabelings,自定义采集任务对应server.extraScrapeConfigs下每个任务的metric_relabel_configs
过滤规则写法示例
通常有两种过滤逻辑,按需选择即可:
# 规则1:仅保留指定指标,其余全部丢弃(适合需要监控的指标很少的场景) metric_relabel_configs: - source_labels: [__name__] regex: '(kube_pod_status_phase|kube_node_status_condition|node_cpu_seconds_total|node_memory_MemAvailable_bytes)' action: keep # 规则2:仅丢弃指定指标,其余全部保留(适合仅需要排除少量冗余指标的场景) metric_relabel_configs: - source_labels: [__name__] regex: '(kube_pod_labels|kube_pod_annotations|node_network_transmit_errors_total)' action: drop
配置生效步骤
- 导出当前Chart的默认配置到本地
helm show values prometheus-community/prometheus > values.yaml
- 编辑
values.yaml,按照你的过滤需求在对应配置段添加上述规则 - 如果你忘记了安装时自动生成的Release名称,执行以下命令查询
helm list -n prometheus
- 执行升级命令生效配置,替换命令中的占位符为你的实际值
helm upgrade <你的Prometheus Release名称> prometheus-community/prometheus -n prometheus -f values.yaml
注意事项
- 你的K8s版本为
1.18.6,请选择兼容1.18版本的Prometheus Helm Chart版本,不要直接使用最新版避免兼容性异常 - 配置生效后可以进入Prometheus Web界面的
Status > Configuration页面校验规则是否正确加载,也可以直接执行PromQL查询验证指标是否符合保留/丢弃预期
内容的提问来源于stack exchange,提问作者user1739504
相关产品推荐
相关产品推荐

