Prometheus を Datasource に設定して、HTTP 5XXエラー率による監視を行うアラートの作成方法サンプル¶
Prometheus に収集されたメトリクスを利用して、 1時間あたりの5xxエラー率を基にアラートを作成する方法を説明します。
Alerting
メニュー内の Alert rules
を選択し、 New alert rule
からアラートの作成画面へ遷移し、
以下に説明する項目を設定します。
Set a query and alert condition
にてアラートに利用するメトリクスを取得するクエリとアラート状態にする条件を設定します。ダッシュボード作成時と同様に Datasource を選択します。今回は、
Managed Prometheus
を選択します。
注釈
Azureでは、2023年12月以前に開通されたお客様の環境では、Kubernetesクラスタ内に構築された Prometheus を参照している場合があります。 この場合は
Datasource
としてLocal Prometheus
を選択します。クエリの入力欄にアラートの判定規則となるクエリを入力します。 以下のクエリを入力し、サービスごとの5xxエラー率を出力します。なお、クエリの入力欄が表示されていない場合は
Add query
で入力欄を追加します。
100 * sum(rate(istio_requests_total{response_code=~"5[0-9][0-9]", reporter="destination"}[5m])) by (destination_service) / sum(rate(istio_requests_total{reporter="destination"}[5m])) by (destination_service)
取得したクエリをどの単位で集約してアラート検知するか設定します。 今回は、
Reduce
のFunction
をMean
に設定します。 なお、設定項目が表示されていない場合はAdd expression
で追加します。アラート実施する閾値を設定します。 今回は、
Threshold
にてIS ABOVE
80
を設定し、5xxエラー率が80%を超えたらアラート実施するようにします。 なお、設定項目が表示されていない場合はAdd expression
で追加します。
Alert evaluation behavior
にてアラート状態となったあと、実際にアラートを発報するまでの保留時間等を設定します。Folder
にてアラートフォルダを、Evaluation group
にてグループを設定します。 ここで設定した内容がアラートのラベルに付与されます。Pending period
にアラートを保留する時間を設定します。今回は5mを設定します。Configure no data and error handling
にてデータが存在しない場合の対処方法を設定します。今回は1件も5xxエラーがない場合にデータ欠損するクエリなので、
Alert state if no data or all values are null
は OK を設定します。また、クエリ実行に失敗したときはアラート状態としたいので、
Alert state if execution error or timeout
は NG を設定します。
その他、アラートの名前の設定など記載し、
Save and exit
をクリックして、アラートを保存します。