Grafana は、複数のデータソースからメトリックをクエリ、可視化、アラート通知するためのオープンソースのモニタリングおよび可観測性プラットフォームです。Grafana を Application Real-Time Monitoring Service (ARMS) のアラート管理と統合することで、Grafana アラートを ARMS に転送し、アラートの集中管理、通知ルーティング、インシデント対応を実現できます。
この統合には、以下の 2 つのステップが必要です:まず ARMS で統合エンドポイントを作成し、次に Grafana を設定してそのエンドポイントへアラートを送信します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Application Real-Time Monitoring Service (ARMS) が有効化された Alibaba Cloud アカウント (root ユーザー)
実行中の Grafana インスタンス(セルフホストまたは Grafana Cloud)
ARMS への Grafana 統合の作成
ARMS コンソール にログインします。
左側ナビゲーションウィンドウで、 を選択します。
アラート統合 タブで、Grafana をクリックします。
Grafana 統合の作成 ダイアログボックスで、統合名を入力し、アラートイベントの自動回復時間を設定した後、保存 をクリックします。
説明自動回復時間内に同一のアラートイベントが再度発生しなかった場合、ARMS はそのアラートを自動的にクリアします。
アラート統合 タブで、作成した Grafana 統合を検索し、統合エンドポイント をコピーします。この URL は Grafana の設定時に必要になります。

Grafana からの ARMS へのアラート送信の設定
Grafana で、左側ナビゲーションウィンドウから に移動します。

新規チャネル をクリックします。初めて通知チャネルを追加する場合は、代わりに チャネルの追加 をクリックします。

新規通知チャネル ページで、以下の設定を行います。
名前:この通知チャネルの名前を入力します。
タイプ:Webhook を選択します。
URL:ARMS からコピーした統合エンドポイントを貼り付けます。
通知設定 の下で、以下のチェックボックスを選択します。
デフォルト
イメージを含める
リマインダーを送信 — アクティブなアラートに対して繰り返し通知を送信します。リマインダーの頻度は、ARMS で設定した自動回復時間を超えない値に設定してください。
説明リマインダーを送信 を選択しない場合、各アラートは ARMS に 1 回のみ報告されます。
テスト をクリックして、Grafana が ARMS アラート管理に接続できることを確認します。
テストが成功したら、OK をクリックします。

統合の確認
設定を完了すると、Grafana アラートは自動的に ARMS アラート管理に転送されます。
アラートが到着していることを確認するには:
ARMS コンソールで、 に移動します。
アラートイベント名をクリックして、詳細を表示します。
詳細については、「過去のアラートイベントの表示」をご参照ください。
(任意)フィールドマッピングおよび重複排除のカスタマイズ
ARMS では、Grafana アラートペイロードと ARMS アラートイベント間のデフォルトのフィールドマッピングが提供されています。これらのマッピングを追加または変更するには、統合を編集します。
テストデータの送信
アラート統合 タブで、Grafana 統合を検索し、操作 列の 編集 をクリックします。
イベントマッピング セクションで、テストデータの送信 をクリックします。
テストデータの送信 ダイアログボックスで、JSON 形式のサンプル Grafana アラートペイロードを入力し、送信 をクリックします。
サンプル Grafana アラートペイロード:
{ "@timestamp": "2021-09-09T12:25:09.556Z", "orgId": 0, "host": "10.1.11.14", "ruleName": "Test notification", "ruleUrl": "http://localhost:8001/grafana/", "state": "alerting", "title": "[Alerting] Test notification", "panelId": 1, "imageUrl": "https://grafana.com/assets/img/blog/mixed_styles.png", "evalMatches": [ { "metric": "High value", "value": 100, "tags": null }, { "metric": "Higher Value", "value": 200, "tags": null } ], "ruleId": 0, "tags": {}, "dashboardId": 1, "message": "Someone is testing the alert notification within grafana.", "@version": "1" }送信後に、以下のいずれかのメッセージが表示されます。
メッセージ 意味 アップロード済み。イベントは生成されません。元のデータに基づいてマッピングを構成してください。 アラートソースのフィールドが、まだ ARMS アラートイベントのフィールドにマッピングされていません。生データが左側パネルに表示されるため、マッピングの構成時にソースフィールドを選択できます。 アップロード済み。 アラートは [アラートイベント履歴] ページに正常に報告されました。詳細については、「過去のアラートイベントを表示する」をご参照ください。 
テストデータの送信 ダイアログボックスで、無効化 をクリックします。
フィールドマッピングの設定
イベントマッピング セクションの左側パネルで、データレコードをクリックして詳細を表示します。右側パネルで、Grafana アラートのソースフィールドを ARMS アラートフィールドにマッピングします。
ルートノードの選択(バッチ処理)
アラートペイロードに配列ノードが含まれる場合、そのノードをルートノードとして指定することで、要素を反復処理できます。
バッチ処理を使用 を選択し、ルートノードとして使用する配列ノードを選択します。
バッチ処理には、一度に 1 つの配列ノードのみを選択できます。
たとえば、上記のサンプルペイロード内の evalMatches 配列ノードには 2 つの要素が含まれており、それぞれに value フィールドがあります。
バッチ処理あり:
$.evalMatches[*].valueにより、配列内のすべてのvalueフィールドが、指定された ARMS アラートフィールドに反復的にマッピングされます。バッチ処理なし:
$.evalMatches[0].valueや$.evalMatches[1].valueのように、個別の要素を ARMS アラートフィールドに別々にマッピングします。
ソースフィールドからターゲットフィールドへのマッピング
マップ アイコンをクリックして、以下のマッピング方法のいずれかを選択します。
| 方法 | 説明 |
|---|---|
| 直接 | 単一の Grafana フィールドを ARMS アラートフィールドにマッピングします。 |
| シリーズ | 複数の Grafana フィールドをデリミタ(特殊文字のみ)で連結し、結果を ARMS アラートフィールドにマッピングします。たとえば、$.host と $.title を _ で連結すると $.host_$.title となり、これを alertname フィールドにマッピングします。 |
| 条件 | Grafana フィールドの値が指定された条件を満たす場合にのみ、ARMS アラートフィールドにマッピングします。 |
| マッピングテーブル | Grafana アラートソースの重大度レベルを ARMS の重大度レベルにマッピングします。この方法は severity フィールドでのみ使用します。 |
ARMS アラートフィールドのリファレンス
| アラートフィールド | 説明 |
|---|---|
alertname | カスタムアラート名。 |
severity | アラートレベル。このフィールドのマッピングには 直接 方法を使用します。 |
message | アラート通知の内容として使用されるアラート説明。最大文字数:15,000 文字。 |
value | サンプルメトリック値。 |
imageUrl | Grafana メトリックチャートの URL。 |
check | アラートのチェック項目(例:CPU、JVM、アプリケーションクラッシュ、デプロイメント)。 |
source | アラートソース。 |
class | アラートイベントをトリガーするオブジェクトの種類(例:ホスト)。 |
service | アラートのソースサービス(例:ログインサービス)。 |
startat | イベント開始時刻のタイムスタンプ。 |
endat | イベント終了時刻のタイムスタンプ。 |
generatorUrl | イベント詳細ページの URL。 |

イベントの重複排除の設定
イベントの重複排除は、選択したフィールドに基づいて重複するアラートイベントをマージし、アラート通知のノイズを低減します。
重複排除は、まだクリアされていないイベントにのみ適用されます。
イベント重複排除 セクション(統合の詳細 ページ)で、重複排除キーとして使用するフィールドを選択します。
選択したすべてのフィールドの値が一致するイベントは、単一のアラート通知にマージされます。たとえば、
metricおよびruleNameを重複排除キーとして選択した場合、同じメトリックおよびルール名を持つイベントがマージされますが、異なる値を持つイベントは別々に保持されます。重複排除テスト をクリックして、重複排除後の過去のイベントのグループ化状況をプレビューします。
説明重複排除テストは、イベントマッピング セクションにアップロードされた直近の 10 件のデータレコードに対して実行されます。

保存 をクリックします。
既存の統合の管理
アラート統合 タブ()では、以下の操作を実行できます。
| 操作 | 手順 |
|---|---|
| 統合の詳細の表示 | 統合の行をクリックして、統合の詳細 ページを開きます。 |
| 統合キーの更新 | 操作 列の OK をクリックします。 |
| 統合の編集 | 操作 列の 編集 をクリックし、設定を変更した後、保存 をクリックします。 |
| 統合の有効化/無効化 | 操作 列の 有効化 または 無効化 をクリックします。 |
| 統合の削除 | 操作 列の 削除 をクリックし、OK をクリックします。 |
| イベント処理フローの追加 | [イベント処理フローの追加] を [操作] 列でクリックします。詳細については、「イベント処理フローの操作」をご参照ください。 |
| 通知ポリシーの作成 | [操作] 列で、通知ポリシーの作成と管理」をご参照ください。 |
統合キーを更新した後は、Grafana の通知チャネルで Webhook URL を新しい統合エンドポイントに更新してください。
次のステップ
通知ポリシーを作成して、ARMS による Grafana アラートのアラート通知の生成とルーティングを制御します。詳細については、「通知ポリシーの作成と管理」をご参照ください。
通知ポリシーによって生成されたアラートを確認するには、「過去のアラートを表示する」をご参照ください。