####################################################################################################################### Prometheus を Datasource に設定して、HTTP 5XXエラー率による監視を行うアラートの作成方法サンプル ####################################################################################################################### Prometheus に収集されたメトリクスを利用して、 1時間あたりの5xxエラー率を基にアラートを作成する方法を説明します。 ``Alerting`` メニュー内の ``Alert rules`` を選択し、 ``New alert rule`` からアラートの作成画面へ遷移し、 以下に説明する項目を設定します。 * ``Set a query and alert condition`` にてアラートに利用するメトリクスを取得するクエリとアラート状態にする条件を設定します。 1. ダッシュボード作成時と同様に Datasource を選択します。今回は、 ``Managed Prometheus`` を選択します。 .. note:: Azureでは、2023年12月以前に開通されたお客様の環境では、Kubernetesクラスタ内に構築された Prometheus を参照している場合があります。 この場合は ``Datasource`` として ``Local Prometheus`` を選択します。 #. クエリの入力欄にアラートの判定規則となるクエリを入力します。 以下のクエリを入力し、サービスごとの5xxエラー率を出力します。なお、クエリの入力欄が表示されていない場合は ``Add query`` で入力欄を追加します。 .. code-block:: console 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`` にてアラート状態となったあと、実際にアラートを発報するまでの保留時間等を設定します。 1. ``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`` をクリックして、アラートを保存します。