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

如何在Prometheus中正确筛选以my-app为前缀的Kubernetes Pod?

解决Pod前缀筛选问题的正确方法

你之前的正则规则^([^-]+)-.*只能捕获第一个减号前的内容,比如my-app-23hj2会被提取为my而非my-app,这就是规则失效的核心原因。以下是两种可行的解决方案:

方案一:修改Relabel规则提取完整前缀

如果你的Pod命名固定为前缀-随机标识格式(如my-app-xxxxxx),可以使用以下relabel规则提取完整前缀:

- source_labels: [__meta_kubernetes_pod_name]
  regex: "^(my-app)-.*"
  target_label: pod_prefix
  replacement: $1

该规则仅匹配以my-app-开头的Pod,将前缀my-app写入新标签pod_prefix,后续在Grafana中即可通过pod_prefix="my-app"精准筛选目标Pod。

若需支持多个前缀(例如同时匹配my-app和your-app),可扩展正则表达式:

- source_labels: [__meta_kubernetes_pod_name]
  regex: "^(my-app|your-app)-.*"
  target_label: pod_prefix
  replacement: $1

方案二:直接在PromQL中筛选(无需修改Prometheus配置)

如果不想调整Prometheus的relabel配置,可直接在Grafana的PromQL查询中使用正则匹配:

sum(container_cpu_usage_seconds_total{pod=~"^my-app-.*"}) by (pod)

这里的=~是PromQL的正则匹配运算符,^my-app-.*会精确匹配以my-app-开头的Pod名称,不会误匹配url-shortener-2u3j2这类无关Pod。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:14:51