Alerting設定 <route> - Prometheusドキュメント

routeブロックは、ルーティングツリーの一つのノードおよびその子ノードを定義する。オプションの設定項目は、設定されていなければ、親ノードから引き継ぐ。

各アラートは、トップレベルのrouteからルーティングツリーに入り、子ノードをtraverseする。continueがfalseの場合、最初にマッチした子ノードの後で停止する。continueがマッチしたノードでtrueの場合、アラートは後続のノードに対してもマッチングを継続する。もし、どの子ノードにもマッチしなければ(マッチする子ノードがない場合も子ノード自体がない場合も)、アラートはカレントノードの設定に基づいて処理される。

[ receiver: <string> ]
# これらのラベルで入ってきたアラートがまとめられる。例えば、cluster=Aと
# alertname=LatencyHighに対して入ってきた複数のアラートが1つのグループにまとめられる。
#
# あり得るラベル全てでまとめるためには、特殊値'...'を1つのラベル名として使う。
# 例えば、以下のようにする。
# group_by: ['...'] 
# This effectively disables aggregation entirely, passing through all 
# alerts as-is. This is unlikely to be what you want, unless you have 
# a very low alert volume or your upstream notification system performs 
# its own grouping.
[ group_by: '[' <labelname>, ... ']' ]

# アラートが後続の兄弟ノードとのマッチングを継続すべきかどうか
[ continue: <boolean> | default = false ]

# このノードとマッチするためにアラートが満たすべき等値マッチャー集合
match:
  [ <labelname>: <labelvalue>, ... ]

# このノードとマッチするためにアラートが満たすべき正規表現マッチャー集合
match_re:
  [ <labelname>: <regex>, ... ]

# アラートのグループが通知を送信するために最初に待つべき時間の長さ。
# アラートの抑制が同じグループに初期アラートをより多く集めることができるようになる。
# 通常は、~0sから数分
[ group_wait: <duration> | default = 30s ]

# 初期通知が既に送信されたグループに追加された新しいアラート
# の通知を送信するまでに待つ時間の長さ
# 通常は、~5mかそれ以上
[ group_interval: <duration> | default = 5m ]

# 通知が既に送信成功している場合、再送信するまでに待つ時間の長さ
# 通常は、~3hまたはそれ以上
[ repeat_interval: <duration> | default = 4h ]

# 0以上の子ルート
routes:
  [ - <route> ... ]

# 全てのパラメーターを持つrootルート。これらのパラメーターは、子ルートで
# 上書きされてなければ、引き継がれる
route:
  receiver: 'default-receiver'
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 4h
  group_by: [cluster, alertname]
  # 以降の子ルートにマッチしないアラートは、rootノードに残り、
  # 'default-receiver'に送信される
  routes:
  # service=mysqlまたはservice=cassandraを持つアラートは、
  # database pagerに送信される
  - receiver: 'database-pager'
    group_wait: 10s
    match_re:
      service: mysql|cassandra
  # team=frontendというラベルを持つアラートはこのサブルートにマッチする。
  # clusterとalertnameではなくproductとenvironmentでまとめられる。
  - receiver: 'frontend-pager'
    group_by: [product, environment]
    match:
      team: frontend

参考リンク

おすすめ書籍

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

和訳活動の支援

Prometheusドキュメント和訳が役に立った方は、以下QRコードからPayPayで活動を支援して頂けるとありがたいです。

PayPayによる支援用QRコード
上のQRコードからPayPayによる支援