如何标记警报以了解在Prometheus中将警报发送给谁?

时间:2020-06-09 13:15:52

标签: prometheus prometheus-alertmanager prometheus-node-exporter

我正在普罗米修斯实习,遇到一个简单的问题: 我的老板想根据员工使用的服务来提醒他们。因此,例如,招聘人员只需要某些服务的“停机”警报,就需要其他服务的销售人员,等等。

(例如,如果服务1崩溃,则需要通知招聘人员和销售团队,而不是供应商,因为他们不需要该服务。)

因此,我需要能够将目标MULTIPLE值分配给单个标签,而从我不断读取的结果来看这是不可能的。 (类似于:服务:“招聘人员”,“销售人员”)

我该怎么做?能够根据目标使用者为目标标签提供多个值?

预先感谢您的回答,

达米恩

1 个答案:

答案 0 :(得分:0)

至少有三种解决方案:

  1. 为用例命名,并根据警报类别发送电子邮件
    - alert: ServiceIsDegraded
      labels:
        impact: client-level
  1. 使用代表团队的多个标签以及与团队相关的动作。
    - alert: ServerLost
      labels:
        dev_team: inform
        infra_support: page
  1. 使用代表多个条目的标签值,然后在警报管理器中使用正则表达式来标识它们。
    - alert: ClientDoesntSeeThatYet
      labels:
        notify: SUP,DEV,SRE,SOMEONE

data model中,您可以使用任何分隔符:

标签值可以包含任何Unicode字符。

在警报管理器中,您可以使用单词边界匹配组:

route:
  - receiver: 'support'
    match_re:
      notify: \bSUP\b
  - receiver: 'dev-team'
    match_re:
      notify: \bDEV\b

解决方案1需要大量工作,如果您对警报案例有任何正式定义,则该解决方案1是适用的。解决方案2为您提供了通知媒体方面的灵活性,但可能很冗长。

解决方案3看起来像您想要的。