如何在 Prometheus 警报中匹配多个标签?

Posted

技术标签:

【中文标题】如何在 Prometheus 警报中匹配多个标签?【英文标题】:How to match more than one labels in Prometheus alerts? 【发布时间】:2021-11-22 08:23:32 【问题描述】:

我想发送具有 Level1 或 Level2 的通知。但我不确定 Prometheus 是否会尝试同时找到两个标签,事实并非如此。我该怎么做?

- receiver: 'alert'
  match:
    severity: Level1
    severity: Level2
  group_wait: 10s
  continue: true

更新:严重性:Level1|Level2 无效。

【问题讨论】:

【参考方案1】:

正如in the documentation 解释的那样,match 的指令必须完成每个条目。我什至对您的配置有效。

警报必须满足的一组相等匹配器才能匹配节点。

如果你想使用正则表达式,你可以使用match_re:

- receiver: 'alert'
  match_re:
    severity: Level1|Level2
  group_wait: 10s
  continue: true

请注意,alertmanager (v0.22) 引入了matchers 的用法,其语法重用了 PromQL:

- receiver: 'alert'
  matchers: [ 'severity=~"Level1|Level2"' ]
  group_wait: 10s
  continue: true

在 Prometheus GUI 中更容易编写和探索。

【讨论】:

以上是关于如何在 Prometheus 警报中匹配多个标签?的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus 抑制但没有匹配的实例标签

Prometheus 按标签查询范围向量

如何使用 Prometheus 警报规则检测新指标

Prometheus 警报总和 1 个标签但输出 2 个标签

prometheus alertmanager 规则的自动标签

Prometheus学习系列(三十七)之报警客户端