メインコンテンツまでスキップ

アラートと通知

DOG StackはGrafanaを統合しているため、Grafana内で直接アラートの作成と管理を行うことができます。この記事では最も一般的なアラート操作を紹介します。より高度な機能については、Grafana Alerting documentationを参照してください。

図に示すように、Grafana Alertの中核メカニズムは以下の通りです:

  1. ユーザーが、基盤となるクエリとトリガー条件を含むアラートルールを定義します。
  2. システムが定期的にルールのクエリを実行し、トリガー条件を評価します。
  3. トリガー条件が満たされると、アラートインスタンスが生成されます。
  4. アラートがディスパッチされます — 直接コンタクトポイントに送信されるか、通知ポリシーを通じて柔軟にルーティングされます。

alert_overview

典型的なアラートルールの作成と管理フローは以下のようになります:

1. Grafana Alerting → Alert rulesを開き、「Create alert」をクリックします

alert_create

2. クエリとトリガー条件を定義します

まずDorisなどのデータソースを選択します。Builderモードでは、ビジュアルインターフェースをクリックしてシンプルなクエリを構築できます。Codeモードでは、より複雑なクエリ用にSQLを記述できます。この例では、Codeモードを使用して、過去10分間のotel.otel_logs内でbodyフィールドがキーワードerrorに一致する行数をクエリします。

次に、Expressionセクションで、クエリ結果をさらに集約する方法(オプション)を選択し、アラートをトリガーする閾値を設定します。この例では、閾値を「result > 10」に設定し、追加の集約は適用しません。

最後に、Previewをクリックして、クエリ結果とアラートが発火するかどうかをプレビューします。ここではクエリが882を返し、閾値の10を超えているため、ステータス1 Firingを表示します。

詳細については、Grafana docsを参照してください。

alert_condition

3. 評価間隔と組織を設定します

まず、アラートを整理するためのフォルダを選択し、次にアラートの評価間隔を設定し、最後にPending期間を選択します。この例では、毎分実行される評価グループを作成し、Pending = Noneを選択します — これは、条件が満たされた際に(例:1分間など)一定時間継続してからではなく、即座にアラートがFiring状態に移行することを意味します。

詳細については、Grafana docsを参照してください。

alert_evaluation

4. 通知チャネルを設定します

GrafanaはEmail、Slack、Discord、PagerDuty、Webhookなど、多くの通知チャネルをサポートしています。既存のコンタクトポイントを選択するか、独自に作成でき、ラベルに基づいてアラートをルーティングする柔軟な通知ポリシーも設定できます。

詳細については、Grafana docsを参照してください。

alert_label

alert_contact

5. 通知メッセージを設定します

通知コンテンツをカスタマイズできます — 要約、説明、対処方法を案内するrunbook URLを含めることで、受信者がより迅速に何が起こったかを把握できます。

alert_message

6. アラート管理

アラートルールの作成後、それらを管理できます — アラートの一時停止、一定期間の通知サイレンス、ルールの変更、通知チャネルの変更などです。

詳細については、Grafana docsを参照してください。

alert_management