【问题标题】:AlertManager behaviour with FIRING alerts带有 FIRING 警报的 AlertManager 行为
【发布时间】:2018-07-17 15:12:14
【问题描述】:

我正在使用文本文件收集器导出到 statistics.prom 文件,由 update-statistics.sh 脚本每分钟更新一次。这是 .prom 文件的示例。

item_has_stock{id="item.aaa", store="x"} 1
item_has_stock{id="item.aaa", store="y"} 1
item_has_stock{id="item.bbb", store="z"} 1
item_has_stock{id="item.ccc", store="k"} 1

每次 update-statistics.sh 运行时,库存值可能会从“1”变为“0”,反之亦然。现在,假设 .prom 文件已更新为:

item_has_stock{id="item.aaa", store="x"} 1
item_has_stock{id="item.aaa", store="y"} 0
item_has_stock{id="item.bbb", store="z"} 0
item_has_stock{id="item.ccc", store="k"} 0

Alertmanager,发送以下警报:

[FIRING:3] Item Stock
Item item.aaa at store y
Item item.bbb at store z
Item item.ccc at store k

在下一次运行 update-statistics.sh 时,item_has_stock{id="aaa", store="y"} 的值从“0”变为“1”,如下所示。

item_has_stock{id="item.aaa", store="x"} 1
item_has_stock{id="item.aaa", store="y"} 1
item_has_stock{id="item.bbb", store="z"} 0
item_has_stock{id="item.ccc", store="k"} 0

现在,alertmanager 发送的警报如下所示:

[FIRING:2] Item Stock
Item item.aaa at store y
Item item.bbb at store z
Item item.ccc at store k

FIRING 计数正确递减,但不应再显示“Item item.aaa at store y”行...这是 alertmanager 配置:

route:
  receiver: 'default'

  routes:
  - receiver: 'item-stock'
    group_by: ['item_has_stock']
    group_wait: 45s
    group_interval: 1m
    repeat_interval: 2m
    match_re:
      id: .*item.*

receivers:
  - name: 'default'
    slack_configs:
    - send_resolved: true
      api_url: '...'
      channel: '#channel'
      username: 'alertmanager'

  - name: 'item-stock'
    slack_configs:
    - send_resolved: true
      api_url: '...'
      channel: '#channel'
      username: 'alertmanager'
      title: '[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] Item Stock'
      text: "{{ range .Alerts }}\nItem {{ .Labels.id }} at store {{ .Labels.store }}{{ end }}"

下一个 FIRING 警报,每 3 分钟触发一次 (group_interval + repeat_interval),看起来与上面的示例相同。仅在 15 分钟后(即 5 次警报后),“Item item.aaa at store y”行才最终消失。另外,我希望这条线会收到 RESOLVED 警报...

PS:item-stock.rule 文件包含表达式“expr: item_has_stock == 0”,用于在值从“1”变为“0”时触发警报。

【问题讨论】:

    标签: prometheus prometheus-alertmanager


    【解决方案1】:

    您设置了send_resolved: true,因此您的通知包含触发和已解决的警报,如[FIRING:2] 所示,正文中包含三个警报。

    您应该删除send_resolved: true

    【讨论】:

    • 谢谢。它解决了一部分。但是,我希望看到“项目 item.aaa at store y”的已解决警报。我该怎么做?
    • 您需要解决警报在模板中的已解决状态。
    • 它似乎只有在之前的所有“0”变为“1”之后才有效。我找不到为该单个 item_has_stock 发送单个 RESOLVED 警报的方法。
    • 为此,您需要将 idstore 添加到您的 group_by 中,这是不可取的,因为它可能会成为垃圾邮件。
    • 有趣的是,[FIRING:2] 中的“2”是什么意思?
    猜你喜欢
    • 2022-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2019-07-10
    • 2016-03-15
    相关资源
    最近更新 更多