alertmanagerがメッセージを繰り返し送信する問題を解決する


1、質問


前のブログでalertmanagerを使ってrepeat_を設定してもintervalですが、2つのアラートが受信され、間隔はforラベルの時間です。


Alertmanagerフラグメントの例:
routes:
  - receiver: message
    match:
      xxxx:xxxx
    repeat_interval: 3600s
    continue: true
receivers:
- name: message
  webhook_configs:
  - send_resolved: true
    url: http://localhost:8080/message/yyyy

prometheusルールフラグメントの例:
rules:
- alert: alertName
  expr: up == 1
  for: 5m
  labels:
    xxxx:xxxx

2、可能な原因


1,send_resloved = true


このラベルは、アラームが回復した後、通知が送信され、正常になったことを示しています.(このラベルの鍋です)

2,group_がありませんbyラベル。


後で検証して、group_がありませんbyラベルは、デフォルトではグループ内にあるので、影響もありません.

3,repeat_intervalが設定したのはsかhかです。


これはもっとおかしいです.Prometheusのdurationにはよく使われる時間単位があります.もちろんsも含まれています.

3、結果


1、試してみましたsend_resloved=trueによって引き起こされる。


2つのアラームを受け取ったのは、2つ目のアラームがアラーム回復通知だったからだと思いますが、routesにはwebが配置されているためです。hookは、ビジネスインタフェースにトリガーされ、アラームとして処理されているので、実は2番目の通知の内容は、アラームではなくアラームが回復した通知である可能性があるので、ここではビジネスロジックのバグかもしれませんが、send_を設定しています。resloved=false後、2番目のメッセージは受信されませんでした。ps,send_reslovedのデフォルトはfalseで、私は手が不自由で、大丈夫です。これを設定して、テストはバグを専門に提出しました。承服する。


2,repeat_についてintervalの理解。


repeat_interval:1 hでは、この時間内に複数のアラームが発生した場合、1回、1つのメッセージしか通知されません。