

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アラートの設定
<a name="v10-alerting-setup"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 10.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 9 での作業](using-grafana-v9.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.md)」を参照してください。

アラートの作成と管理に必要な機能と統合を設定します。

**前提条件**

アラートを設定する前に、以下を実行する必要があります。
+ [データソース](AMG-data-sources.md)を設定します。
+ 選択したデータソースが [Grafana アラート](v10-alerting-overview-datasources.md)と互換性があり、サポートされていることを確認します。

**アラートを設定するには**

1. [アラートルール](v10-alerting-configure.md)を設定します。
   + Grafana 管理またはデータソース管理のアラートルールと記録ルールを作成します。

1. [コンタクトポイント](v10-alerting-configure-contactpoints.md)を設定します。
   + デフォルトのコンタクトポイントを確認し、システムのコンタクトを更新します。
   + オプションで、新しいコンタクトポイントと統合を追加します。

1. [通知ポリシー](v10-alerting-explore-notifications-policies-details.md)を設定する
   + デフォルトの通知ポリシーを確認し、システムの通知ポリシーを更新します。
   + 必要に応じて、ネストされたポリシーを追加します。
   + また、ラベルとラベルマッチャーを追加してアラートルーティングを制御することもできます。

以下のトピックでは、外部アラートマネージャーの設定や Grafana マネージドアラートを Grafana の外部にルーティングする方法など、追加の設定オプションについて詳しく説明します。

**Topics**
+ [従来のダッシュボードアラートを Grafana アラートに移行する](v10-alerting-use-grafana-alerts.md)
+ [外部アラートマネージャーの追加](v10-alerting-setup-alertmanager.md)
+ [Grafana アラートリソースのプロビジョニング](v10-alerting-setup-provision.md)

# 従来のダッシュボードアラートを Grafana アラートに移行する
<a name="v10-alerting-use-grafana-alerts"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 10.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 9 での作業](using-grafana-v9.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.md)」を参照してください。

Grafana アラートを使用ししないワークスペースは、[従来のダッシュボードアラート](old-alerts-overview.md) を使用します。新しい Grafana アラートに切り替えるには、 機能にオプトインする必要があります。クラシックダッシュボードアラートと Grafana アラートの違いの詳細については、「[Grafana アラートとレガシーダッシュボードアラート](#v10-alerting-diff-old-new)」を参照してください。GrafanaLabs は、クラシックダッシュボードアラートがバージョン 11 で削除されることを発表しました。

クラシックダッシュボードアラートを使用している場合、Amazon Managed Grafana には Grafana アラートのプレビューが表示され、アップグレードを完了する前にアップグレードされたアラートを確認および変更できます。

## Grafana アラートのプレビュー
<a name="v10-alerting-preview-grafana-alerts"></a>

移行前に Grafana アラートでアラートをプレビューできます。プレビューでは、移行を変更するアラートを変更できます。

**Grafana アラートの移行をプレビューするには**

1. Grafana ワークスペースにサインインします。

1. 左側のメニューから **[アラート (レガシー))]** を選択して、現在のアラートを表示します。

1. 左側のメニューから、**[アラートのアップグレード]** を選択して、Grafana アラートでアラートを表示します。

   このビューから、移行後のアラートの状態を確認できます。

**注記**  
このビューから、移行に影響する変更を加えることもできます。変更を元に戻すには、[Upgrade] (アップグレード) ページの右上にある **[アップグレードをリセット]** を選択します。

アラートをアップグレードする準備ができたら、次のセクションを参照してください。

## Grafana アラートシステムへの移行
<a name="v10-alerting-use-grafana-alerts-opt-in"></a>

、、 AWS CLIまたは Amazon Managed Grafana API を使用して AWS マネジメントコンソール、Grafana アラートを使用するように Amazon Managed Grafana インスタンスを設定できます。Grafana アラートのオン/オフの切り替えなど、Amazon Managed Grafana の設定方法の詳細については、「[Amazon Managed Grafana ワークスペースを設定する](AMG-configure-workspace.md)」を参照してください。

Grafana アラートを有効にすると、既存の従来のダッシュボードアラートは Grafana アラートと互換性のある形式で移行されます。移行後のアラートと新しく作成したアラートは、Grafana インスタンスのアラートページに表示されます。Grafana アラートを使用した場合、Grafana が管理するアラートルールは、一致するときに 1 つのアラートではなく、複数の通知を送信します。

従来のダッシュボードアラートと Grafana アラートへの読み取りおよび書き込みアクセス権は、それらが保存されているフォルダのアクセス権限で制御されます。移行中、従来のダッシュボードアラートアクセス許可は、次のように新しいルールアクセス許可と照合されます。
+ 元のアラートが属するダッシュボードにアクセス権限が設定されている場合、移行時に元のダッシュボードの権限 (フォルダから継承された権限を含む) 設定で `Migrated {"dashboardUid": "UID", "panelId": 1, "alertId": 1}` という形式の名前のフォルダが作成されます。
+ ダッシュボードにアクセス権限が設定されておらず、ダッシュボードがフォルダ内にある場合、ルールはこのフォルダにリンクされ、そのアクセス権限が継承されます。
+ ダッシュボードにアクセス権限が設定されておらず、ダッシュボードが General (全般) フォルダにある場合、ルールは General (全般) アラートフォルダにリンクされ、ルールにはデフォルトのアクセス権限が継承されます。

**注記**  
Grafana のアラート設定には `NoData` に対する `Keep Last State` オプションがないため、このオプションは従来のルールを移行する際に `NoData` になります。`Error` 処理のためのオプション `Keep Last State` は、新しいオプション `Error` に移行されます。`Keep Last State` の動作に合わせるため、移行時には各アラートルールに対して 1 年間のサイレンスが Amazon Managed Grafana によって自動的に作成されます。

通知チャネルは、適切なルートと受信者が設定されたアラートマネージャー設定に移行されます。デフォルトの通知チャネルは、コンタクトポイントとしてデフォルトのルートに追加されますが、ダッシュボードアラートに関連付けられていない通知チャネルは `autogen-unlinked-channel-recv` ルートに送られます。

### 制限事項
<a name="v10-alerting-use-grafana-alerts-limitations"></a>
+ Grafana アラートシステムは、利用可能なすべての Prometheus、Loki、およびアラートマネージャーデータソースからルールを取得できますが、他のサポートされているデータソースからアラートルールを取得できない場合があります。
+ Grafana アラートと従来のダッシュボードアラートを交互に移行すると、どちらか一方でのみサポートされる機能のデータが失われる可能性があります。
**注記**  
従来のダッシュボードアラートに戻した場合、Grafana アラートが有効になっている間に新たに作成されたアラートルールやアラート設定に加えられたすべての変更は失われます。

## Grafana アラートとレガシーダッシュボードアラート
<a name="v10-alerting-diff-old-new"></a>

Grafana 8 で導入された Grafana アラートでは、従来のダッシュボードアラートと比較していくつかの機能強化が行われています。

### 多次元アラート
<a name="v10-alerts-diff-multi-dimensional"></a>

単一のアラートルールでシステム全体の可視性を提供するアラートを作成できるようになりました。複数のアラートインスタンスを 1 つのアラートルールから作成できます。例えば、1 つのルールで 1 台のホスト上に存在する複数のマウントポイントのディスク使用量をモニタリングするルールを作成できます。評価エンジンは 1 つのクエリから複数の時系列を返し、各時系列データはラベルセットで識別されます。

### ダッシュボード外のアラートの作成
<a name="v10-alerts-diff-alerts-outside-of-dashboards"></a>

レガシーダッシュボードアラートとは異なり、Grafanaのアラート機能では複数のデータソースからのデータを独自に組み合わせたクエリや式を作成できます。また、ID を使用してダッシュボードとパネルをアラートルールにリンクし、観察中のシステムのトラブルシューティングをすばやく行うことができます。

統合アラートはパネルクエリに直接関連付けられなくなるため、通知メールに画像やクエリ値は含まれませんが、カスタマイズされた通知テンプレートを使用して、クエリ値を表示できます。

### Loki および Grafana Mimir アラートルールの作成
<a name="v10-alerts-diff-loki-mimir-alerting-rules"></a>

Grafana アラートでは、Grafana 管理のアラートと同じ UI と API を使用して Loki および Grafana Mimir のアラートルールを管理することができます。

### Prometheus 互換データソースからのアラートの表示と検索
<a name="v10-alerts-diff-view-alerts-from-prometheus"></a>

Prometheus 互換データソースのアラートが Grafana アラートセクションに表示されるようになりました。これにより、複数のデータソースでラベルを検索して、関連するアラートをすばやく見つけることができます。

### 特別な (NoData、Error アラート状態) アラート
<a name="v10-alerts-diff-special-alerts"></a>

Grafana アラートでは、アラート状態の新しい概念が導入されています。アラートルールの評価によって状態 NoData またはエラーが発生すると、Grafana アラートは、次のラベルを含む特別なアラートを生成します。
+ `alertname` (状態に応じて DatasourceNoData または DatasourceError の値を伴う)。
+ `rulename` (特別なアラートが属するアラートルールの名前)
+ `datasource_uid` は、 状態の原因となったデータソースの UID を持ちます。
+ 元のアラートルールのすべてのラベルと注釈

これらのアラートは、サイレンスを追加したり、コンタクトポイントにルーティングしたりすることで、通常のアラートと同じ方法で処理できます。

**注記**  
ルールが複数のデータソースを使用し、そのうち 1 つ以上がデータを返さない場合、アラート状態の原因となったデータソースごとに特別なアラートが作成されます。

# 外部アラートマネージャーの追加
<a name="v10-alerting-setup-alertmanager"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 10.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 9 での作業](using-grafana-v9.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.md)」を参照してください。

Grafana を設定して、外部のアラートマネージャーを単一のアラートマネージャーとして使用してすべてのアラートを受信するようにできます。この外部アラートマネージャーは、Grafana 内から設定および管理できます。

**注記**  
Amazon Managed Service for Prometheus を外部アラートマネージャーとして使用することはできません。

アラートマネージャーを追加したら、Grafana アラート UI を使用して、サイレンス、コンタクトポイント、通知ポリシーを管理できます。これらのページのドロップダウンオプションを使用すると、アラートマネージャーを切り替えることができます。

外部アラートマネージャーは、メインの Grafana ナビゲーションメニューから Grafana 設定を使用してデータソースとして設定されます。これにより、Grafana 内から外部アラートマネージャーの連絡先と通知ポリシーを管理できるようになり、以前は URL で外部アラートマネージャーを構成するときに表示されていた HTTP 基本認証資格情報も暗号化されます。

**注記**  
Grafana 9.2 以降、アラートページの [管理] タブからの外部アラートマネージャーの URL 設定は廃止されました。これは、今後のリリースで削除されます。

**外部アラートマネージャーを追加するには**

1. 左のメインメニューから、**[接続]** を選択します。

1. `Alertmanager` を検索します。

1. **[新しいデータソースの作成]** ボタンを選択します。

1. 必要に応じて、ページのフィールドに入力します。

   データソースをプロビジョニングする場合は、`jsonData` フィールドの `handleGrafanaManagedAlerts` フラグを `true` に設定して、Grafana が管理するアラートをこのアラートマネージャーに送信します。
**注記**  
アラートマネージャーの Prometheus、Grafana Mimir、および Cortex 実装がサポートされています。Prometheus の場合、Grafana アラート UI のコンタクトポイントと通知ポリシーは読み取り専用です。

1. **[保存してテスト]** を選択します。

# Grafana アラートリソースのプロビジョニング
<a name="v10-alerting-setup-provision"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 10.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 9 での作業](using-grafana-v9.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.md)」を参照してください。

多くの場合、アラートインフラストラクチャは複雑で、パイプラインの多くの部分が異なる場所に存在することがよくあります。これを複数のチームや組織にまたがってスケールすることは、特に難しい作業です。Grafana アラートプロビジョニングを使用すると、組織に最適な方法でアラートデータを作成、管理、維持できるため、このプロセスが容易になります。

選択できるオプションは 2 つあります。

1. アラートプロビジョニング HTTP API を使用してアラートリソースをプロビジョニングします。
**注記**  
通常、Grafana UI から API でプロビジョニングされたアラートルールを編集することはできません。  
編集を有効にするには、 API でアラートルールを作成または編集するときに、x-disable-provenance ヘッダーを次のリクエストに追加します。  

   ```
   POST /api/v1/provisioning/alert-rules
   PUT /api/v1/provisioning/alert-rules/{UID}
   ```

1. Terraform を使用してアラートリソースをプロビジョニングします。

**注記**  
現在、Grafana アラートのプロビジョニングでは、アラートルール、コンタクトポイント、ミュートタイミング、テンプレートがサポートされています。ファイルプロビジョニングまたは Terraform を使用してプロビジョニングされたアラートリソースは、それらを作成したソースでのみ編集でき、Grafana やその他のソース内から編集することはできません。例えば、ディスクからのファイルを使用してアラートリソースをプロビジョニングする場合、Terraform または Grafana 内からデータを編集することはできません。

**Topics**
+ [Terraform を使用したアラートリソースの作成と管理](v10-alerting-setup-provision-terraform.md)
+ [Grafana でのプロビジョニングされたアラートリソースの表示](v10-alerting-setup-provision-view.md)

# Terraform を使用したアラートリソースの作成と管理
<a name="v10-alerting-setup-provision-terraform"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 10.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 9 での作業](using-grafana-v9.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.md)」を参照してください。

Terraform の Grafana プロバイダーを使用してアラートリソースを管理し、Grafana システムにプロビジョニングします。Terraform プロバイダーによる Grafana アラートのサポートにより、Grafana アラートスタック全体をコードとして簡単に作成、管理、維持できます。

Terraform を使用してアラートリソースを管理する方法の詳細については、Terraform ドキュメントの [[Grafana プロバイダー]](https://registry.terraform.io/providers/grafana/grafana/latest/docs) ドキュメントを参照してください。

Terraform を使用してアラートリソースを作成および管理するには、次のタスクを実行します。

1. プロビジョニング用の API キーを作成します。

1. Terraform プロバイダーを設定します。

1. Terraform でアラートリソースを定義します。

1. `terraform apply` を実行して、アラートリソースをプロビジョニングします。

## 前提条件
<a name="v10-alerting-setup-provision-tf-prerequisites"></a>
+ grafana/grafana [[Terraform プロバイダー]](https://registry.terraform.io/providers/grafana/grafana/1.28.0) 1.27.0 以降があることを確認します。
+ また、Grafana 9.1 以降を使用していることを確認します。Grafana バージョン 9 で Amazon Managed Grafana インスタンスを作成した場合、これは当てはまります。

## プロビジョニング用の API キーの作成
<a name="v10-alerting-setup-provision-tf-apikey"></a>

[通常の Grafana API キーを作成して](Using-Grafana-APIs.md)、Grafana で Terraform を認証できます。API キーを使用する既存のツールのほとんどは、新しい Grafana アラートサポートと自動的に連携します。Terraform で使用するキーの作成の詳細については、[[Amazon Managed Grafana オートメーションでの Terraform の使用]](https://aws-observability.github.io/observability-best-practices/recipes/recipes/amg-automation-tf/)を参照してください。

**プロビジョニング用の API キーを作成するには**

1. CI パイプラインの新しいサービスアカウントを作成します。

1. ロール「アラートルールプロビジョニング API にアクセス」を割り当てます。

1. 新しいサービスアカウントトークンを作成します。

1. Terraform で使用するトークンに名前を付けて保存します。

または、基本認証を使用することもできます。サポートされているすべての認証形式を表示するには、Terraform ドキュメントの [[Grafana 認証]](https://registry.terraform.io/providers/grafana/grafana/latest/docs#authentication) を参照してください。

## Terraform プロバイダーの設定
<a name="v10-alerting-setup-provision-tf-configure"></a>

Grafana アラートのサポートは、[[Grafana Terraform プロバイダー]](https://registry.terraform.io/providers/grafana/grafana/latest/docs) の一部として含まれています。

以下は、Terraform プロバイダーの設定に使用できる例です。

```
terraform {
    required_providers {
        grafana = {
            source = "grafana/grafana"
            version = ">= 1.28.2"
        }
    }
}

provider "grafana" {
    url = <YOUR_GRAFANA_URL>
    auth = <YOUR_GRAFANA_API_KEY>
}
```

## コンタクトポイントとテンプレートのプロビジョニング
<a name="v10-alerting-setup-provision-tf-contacts"></a>

コンタクトポイントは、アラートスタックを外部に接続します。これは、外部システムに接続する方法と通知の配信先を Grafana に伝えます。選択できる[統合](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/contact_point#optional)は 15 種類以上あります。この例では、Slack コンタクトポイントを使用します。

**コンタクトポイントとテンプレートをプロビジョニングするには**

1. このコードブロックをローカルマシンの .tf ファイルにコピーします。*<slack-webhook-url>* を Slack Webhook URL (またはその他のコンタクトポイントの詳細) に置き換えます。

   この例では、アラート通知を Slack に送信するコンタクトポイントを作成します。

   ```
   resource "grafana_contact_point" "my_slack_contact_point" {
       name = "Send to My Slack Channel"
   
       slack {
           url = <slack-webhook-url>
           text = <<EOT
   {{ len .Alerts.Firing }} alerts are firing!
   
   Alert summaries:
   {{ range .Alerts.Firing }}
   {{ template "Alert Instance Template" . }}
   {{ end }}
   EOT
       }
   }
   ```

1. 通知のテキストをテキストフィールドに入力します。

   `text` フィールドは [Go 形式のテンプレート](https://pkg.go.dev/text/template)をサポートします。これにより、Terraform で Grafana アラート通知テンプレートを直接管理できます。

1. `terraform apply` コマンドを実行します。

1. Grafana UI に移動し、コンタクトポイントの詳細を確認します。

   UI から Terraform 経由でプロビジョニングされたリソースを編集することはできません。これにより、アラートスタックは常にコードと同期したままになります。

1. **[テスト]** をクリックして、コンタクトポイントが正しく機能することを確認します。

**注記**  
多くのコンタクトポイントで同じテンプレートを再利用できます。上記の例では、`{{ template "Alert Instance Template" . }}` ステートメントを使用して共有テンプレートが埋め込まれています。  
その後、このフラグメントは Terraform で個別に管理できます。  

```
resource "grafana_message_template" "my_alert_template" {
    name = "Alert Instance Template"

    template = <<EOT
{{ define "Alert Instance Template" }}
Firing: {{ .Labels.alertname }}
Silence: {{ .SilenceURL }}
{{ end }}
EOT
}
```

## 通知ポリシーとルーティングのプロビジョニング
<a name="v10-alerting-setup-provision-tf-notifications"></a>

通知ポリシーは、アラートインスタンスをどこにルーティングするかではなく、どのようにルーティングするかを Grafana に指示します。ラベルとマッチャーのシステムを使用して、発動アラートを以前に定義したコンタクトポイントに接続します。

**通知ポリシーとルーティングをプロビジョニングするには**

1. このコードブロックをローカルマシンの .tf ファイルにコピーします。

   この例では、アラートは `alertname` によってグループ化されます。つまり、同じ名前のアラートから送信される通知は、同じ Slack メッセージにグループ化されます。

   特定の通知を別の方法でルーティングする場合は、サブポリシーを追加できます。サブポリシーを使用すると、ラベルマッチングに基づいて異なるアラートにルーティングを適用できます。この例では、ラベル a=b のすべてのアラートにミュートタイミングを適用します。

   ```
   resource "grafana_notification_policy" "my_policy" {
       group_by = ["alertname"]
       contact_point = grafana_contact_point.my_slack_contact_point.name
   
       group_wait = "45s"
       group_interval = "6m"
       repeat_interval = "3h"
   
       policy {
           matcher {
               label = "a"
               match = "="
               value = "b"
           }
           group_by = ["..."]
           contact_point = grafana_contact_point.a_different_contact_point.name
           mute_timings = [grafana_mute_timing.my_mute_timing.name]
   
           policy {
               matcher {
                   label = "sublabel"
                   match = "="
                   value = "subvalue"
               }
               contact_point = grafana_contact_point.a_third_contact_point.name
               group_by = ["..."]
           }
       }
   }
   ```

1. mute\$1timings フィールドで、ミュートタイミングを通知ポリシーにリンクします。

1. `terraform apply` コマンドを実行します。

1. Grafana UI に移動し、通知ポリシーの詳細を確認します。
**注記**  
Terraform からプロビジョニングされたリソースを UI から編集することはできません。これにより、アラートスタックは常にコードと同期したままになります。

1. **[テスト]** をクリックして、通知ポイントが正しく機能していることを確認します。

## ミュートタイミングのプロビジョニング
<a name="v10-alerting-setup-provision-tf-mutetiming"></a>

ミュートタイミングを使用すると、定義された期間のアラート通知をミュートできます。

**ミュートタイミングをプロビジョニングするには**

1. このコードブロックをローカルマシンの .tf ファイルにコピーします。

   この例では、アラート通知は週末にミュートされます。

   ```
   resource "grafana_mute_timing" "my_mute_timing" {
       name = "My Mute Timing"
   
       intervals {
           times {
             start = "04:56"
             end = "14:17"
           }
           weekdays = ["saturday", "sunday", "tuesday:thursday"]
           months = ["january:march", "12"]
           years = ["2025:2027"]
       }
   }
   ```

1. `terraform apply` コマンドを実行します。

1. Grafana UI に移動し、ミュートタイミングの詳細を確認します。

1. `mute_timings` フィールドを使用して、通知ポリシーで新しく作成したミュートタイミングを参照します。これにより、通知の一部またはすべてにミュートタイミングが適用されます。
**注記**  
Terraform からプロビジョニングされたリソースを UI から編集することはできません。これにより、アラートスタックは常にコードと同期したままになります。

1. **[テスト]** をクリックして、ミュートタイミングが正しく機能していることを確認します。

## アラートルールのプロビジョニング
<a name="v10-alerting-setup-provision-tf-rules"></a>

[アラートルール](v10-alerting-configure.md)を使用すると、あらゆる Grafana データソースに対してアラートを実行できます。これは、既に設定済みのデータソースを使用することも、アラートルールとともに [[Terraform でデータソースを定義]](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/data_source)することもできます。

**アラートルールをプロビジョニングするには**

1. クエリするデータソースと、ルールを保存するフォルダを作成します。

   この例では、[テスト用 TestData データソースの設定](testdata-data-source.md) データソースが使用されます。

   アラートは Grafana の任意のバックエンドデータソースに対して定義できます。

   ```
   resource "grafana_data_source" "testdata_datasource" {
       name = "TestData"
       type = "testdata"
   }
   
   resource "grafana_folder" "rule_folder" {
       title = "My Rule Folder"
   }
   ```

1. アラートルールを定義します。

   アラートルールの詳細については、[[Grafana マネージドアラートの作成方法]](https://grafana.com/blog/2022/08/01/grafana-alerting-video-how-to-create-alerts-in-grafana-9/) を参照してください。

1. 1 つ以上のルールを含むルールグループを作成します。

   この例では、`grafana_rule_group` リソースグループが使用されます。

   ```
   resource "grafana_rule_group" "my_rule_group" {
       name = "My Alert Rules"
       folder_uid = grafana_folder.rule_folder.uid
       interval_seconds = 60
       org_id = 1
   
       rule {
           name = "My Random Walk Alert"
           condition = "C"
           for = "0s"
   
           // Query the datasource.
           data {
               ref_id = "A"
               relative_time_range {
                   from = 600
                   to = 0
               }
               datasource_uid = grafana_data_source.testdata_datasource.uid
               // `model` is a JSON blob that sends datasource-specific data.
               // It's different for every datasource. The alert's query is defined here.
               model = jsonencode({
                   intervalMs = 1000
                   maxDataPoints = 43200
                   refId = "A"
               })
           }
   
           // The query was configured to obtain data from the last 60 seconds. Let's alert on the average value of that series using a Reduce stage.
           data {
               datasource_uid = "__expr__"
               // You can also create a rule in the UI, then GET that rule to obtain the JSON.
               // This can be helpful when using more complex reduce expressions.
               model = <<EOT
   {"conditions":[{"evaluator":{"params":[0,0],"type":"gt"},"operator":{"type":"and"},"query":{"params":["A"]},"reducer":{"params":[],"type":"last"},"type":"avg"}],"datasource":{"name":"Expression","type":"__expr__","uid":"__expr__"},"expression":"A","hide":false,"intervalMs":1000,"maxDataPoints":43200,"reducer":"last","refId":"B","type":"reduce"}
   EOT
               ref_id = "B"
               relative_time_range {
                   from = 0
                   to = 0
               }
           }
   
           // Now, let's use a math expression as our threshold.
           // We want to alert when the value of stage "B" above exceeds 70.
           data {
               datasource_uid = "__expr__"
               ref_id = "C"
               relative_time_range {
                   from = 0
                   to = 0
               }
               model = jsonencode({
                   expression = "$B > 70"
                   type = "math"
                   refId = "C"
               })
           }
       }
   }
   ```

1. Grafana UI に移動し、アラートルールを確認します。

   アラートルールが発射しているかどうかを確認できます。また、アラートルールの各クエリステージを視覚化することもできます。

   アラートが発生すると、Grafana は定義したポリシーを通じて通知をルーティングします。

   例えば、コンタクトポイントとして Slack を選択した場合、Grafana の埋め込み[アラートマネージャー](https://github.com/prometheus/alertmanager)は Slack にメッセージを自動的に投稿します。

# Grafana でのプロビジョニングされたアラートリソースの表示
<a name="v10-alerting-setup-provision-view"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 10.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 9 での作業](using-grafana-v9.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.md)」を参照してください。

アラートリソースが Grafana で作成されたことを確認できます。

**Grafana でプロビジョニングされたリソースを表示するには**

1. Grafana インスタンスを開きます。

1. アラートに移動します。

1. アラートルールなど、アラートリソースフォルダをクリックします。

   プロビジョニング済みのリソースには **[プロビジョニング済み]** というラベルが付けられているため、手動で作成されていないことがわかります。

**注記**  
Grafana からプロビジョニングされたリソースを編集することはできません。リソースプロパティを変更するには、プロビジョニングファイルを変更して Grafana を再起動するか、ホットリロードを実行します。これにより、ファイルが再度プロビジョニングされた場合やホットリロードが実行された場合に上書きされるリソースへの変更を防止します。