如何在Prometheus告警规则中匹配多标签值实现或条件触发通知
Prometheus Alertmanager 多标签值或匹配配置方案
现有配置的问题
你当前的配置存在两个明显问题:
- YAML 语法中同一层级下重复定义
severity键会被后定义的值覆盖,最终实际生效的只有severity: Level2的匹配规则,完全无法实现Level1、Level2都匹配的需求 - 直接写
severity: Level1|Level2不生效是因为默认match字段是全等匹配,不支持正则语法,需要使用专用的正则匹配配置项
正确配置方案
方案1:Alertmanager v0.22及以上版本(推荐)
使用官方推荐的matchers字段配合正则匹配运算符=~实现或逻辑:
- receiver: 'alert' matchers: - severity =~ "Level1|Level2" group_wait: 10s continue: true
=~运算符代表标签值匹配后续的正则表达式,直接满足多值或匹配的需求。
方案2:兼容旧版本Alertmanager
使用match_re字段实现正则匹配,建议加上正则首尾锚定符^和$避免误匹配其他相似值:
- receiver: 'alert' match_re: severity: ^(Level1|Level2)$ group_wait: 10s continue: true
内容的提问来源于stack exchange,提问作者cosmos-1905-14
相关产品推荐
相关产品推荐

