アラートと通知
DOG Stack には Grafana が統合されているため、Grafana で直接アラートを作成・管理できます。この記事では、一般的なアラート操作を紹介します。より高度な機能については、Grafana Alerting のドキュメントを参照してください。
図に示すように、Grafana のアラートの基本的な仕組みは次のとおりです。
- ユーザーが、基となるクエリと発火条件を含むアラートルールを定義します。
- システムが定期的にルールのクエリを実行し、発火条件を評価します。
- 発火条件が満たされると、アラートインスタンスが生成されます。
- アラートはコンタクトポイントに直接送信されるか、通知ポリシーを通じて柔軟に振り分けられます。

一般的なアラートルールの作成と管理の流れは次のとおりです。
1. Grafana Alerting → Alert rules を開き、「Create alert」をクリックする

2. クエリと発火条件を定義する
まず、Doris などのデータソースを選択します。Builder モードでは、画面上の操作で簡単なクエリを構築できます。Code モードでは、より複雑なクエリを SQL で記述できます。この例では Code モードを使用し、直近 10 分間に otel.otel_logs の body フィールドがキーワード error にマッチする行の数を取得します。
次に、Expression セクションで、必要に応じてクエリ結果をさらに集計する方法を選び、アラートの発火しきい値を設定します。この例ではしきい値を「result > 10」に設定し、追加の集計は行いません。
最後に Preview をクリックし、クエリ結果とアラートが発火するかどうかを確認します。ここではクエリ結果が 882 で、しきい値の 10 を超えているため、ステータスは 1 Firing と表示されます。
詳しくは、Grafana のドキュメントを参照してください。

3. 評価間隔とアラートの整理方法を設定する
まずアラートを整理するフォルダーを選び、次にアラートの評価間隔を設定し、最後に Pending duration を選択します。この例では、毎分実行される評価グループを作成し、Pending = None を選択します。これは、条件が一定時間(例えば 1 分間)継続するのを待たず、条件が満たされるとアラートが直ちに Firing 状態になることを意味します。
詳しくは、Grafana のドキュメントを参照してください。

4. 通知チャネルを設定する
Grafana は Email、Slack、Discord、PagerDuty、Webhook など、多くの通知チャネルに対応しています。既存のコンタクトポイントを選ぶか、新しく作成できます。また、ラベルに基づいてアラートを振り分ける通知ポリシーも設定できます。
詳しくは、Grafana のドキュメントを参照してください。


5. 通知メッセージを設定する
通知を受け取る人が状況をすばやく把握できるよう、概要、説明、対応手順を示すランブックの URL など、通知内容をカスタマイズできます。

6. アラートを管理する
アラートルールの作成後は、アラートの一時停止、一定期間の通知のミュート、ルールの変更、通知チャネルの変更などを行えます。
詳しくは、Grafana のドキュメントを参照してください。
