【问题标题】:How can I label an alert to know to whom it is intended in Prometheus?如何标记警报以了解 Prometheus 中的目标对象?
【发布时间】:2020-06-09 13:15:52
【问题描述】:

我正在为 Prometheus 做实习工作,但遇到了一个简单的问题: 我的老板想根据员工使用的服务来提醒他们。因此,例如招聘人员只需要来自某些服务的“向下”警报、来自其他一些服务的销售人员等。

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

所以我需要能够将目标 MULTIPLE 值赋予单个标签,从我一直阅读的内容来看,这是不可能的。 (类似于:服务:“招聘人员”、“销售人员”)

我该怎么做?能够根据谁使用一个标签给一个标签多个值?

提前感谢您的回答,

达米安

【问题讨论】:

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


    【解决方案1】:

    至少有三种解决方案:

    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 需要相当多的工作,如果您对警报案例有任何正式定义,则它是合适的。解决方案 2 在通知媒体方面为您提供了灵活性,但可能比较冗长。

    解决方案 3 看起来像您要求的那样。

    【讨论】:

    • 感谢您的回答,但恐怕它不能回答我最初的问题:我有一套规则,我可以在其中添加标签,是的,但这意味着规则是链接到标签。这不是我想要的,让我解释一下:
    • 假设我有“目标向下”规则,因为 up=0,每个向下的目标都会触发此规则。假设目标 A 和 B。如果目标 A 失败,我需要提醒招聘人员,如果目标 B 失败只有管理员。但是所有这些都在普罗米修斯的同一个警报中,所以如果我像你的示例所示那样标记,无论什么目标触发了规则,标签都是一样的,我希望我的解释是可以理解的..
    猜你喜欢
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2019-07-14
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多