

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

# Grafana バージョン 10 のアラート
<a name="v10-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 バージョン 10 において、Amazon Managed Grafana には最新のアラートシステム *[Grafana アラート]*が含まれており、アラート情報を一元的に管理、検索できるビューが用意されています。Grafana アラートは Grafana バージョン 8 のオプション機能として導入され、GrafanaLabs はバージョン 11 でレガシーアラートの削除を発表しました。

**注記**  
このドキュメントでは、Grafana アラートについて説明します。レガシーアラートの詳細については、「[従来のダッシュボードアラート](old-alerts-overview.md)」を参照してください。

Grafana アラートを使用すると、システムの問題が発生した直後にその問題を把握できます。

受信メトリクスデータまたはログエントリをモニタリングし、アラートシステムをセットアップして特定のイベントや状況を監視し、問題が見つかったときに通知を送信します。

これにより、手動モニタリングが不要になり、重大なインシデントにつながる可能性のあるシステム停止や変更に対する防御策を講じることができます。

Grafana アラートを使用すると、データがどこに保存されていても、複数のデータソースからクエリと式を作成できます。これにより、データを柔軟に結合し、メトリクスとログを新しく独自の方法でアラートを送信できます。それに続いて、単一の統合されたビューからアラートを作成、管理、およびアクションを実行し、チームが問題をすばやく特定して解決する能力を向上させることができます。

Mimir と Loki のアラートルールを使用すると、データ周囲で大規模なアラート式を実行できます。これらはすべて、お使いの Grafana UI によって管理されます。

**注記**  
レガシー Grafana アラートを使用した以前のバージョンの Grafana から移行する場合は、[レガシーアラートと新しい Grafana アラートの違い](v10-alerting-use-grafana-alerts.md#v10-alerting-diff-old-new)を確認すると役立つ場合があります。

## 主な特徴と利点
<a name="v10-alerting-key-features"></a>

**すべてのアラートを単一のページに**

Grafana が管理するアラートと、Prometheus 互換データソースに存在するアラートの両方が 1 つの Grafana アラートページに統合されます。

**多次元アラート**

アラートルールは、「多次元アラート」と呼ばれるアラートルールごとに複数の個別のアラートインスタンスを作成できるため、1 つのアラートルールだけでシステム全体の可視性を得るための機能と柔軟性が得られます。多次元ルールを作成するには、クエリにラベルを追加して、モニタリング対象のコンポーネントを指定し、単一のアラートルールに対して複数のアラートインスタンスを生成します。例えば、クラスター内の各サーバーをモニタリングする場合、各 CPU で多次元アラートがアラートされ、サーバー全体で標準アラートがアラートされます。

**ルートアラート**

定義したラベルに基づいて、各アラートインスタンスを特定のコンタクトポイントにルーティングします。通知ポリシーは、アラートがどこで、いつ、どのようにコンタクトポイントにルーティングされるかを定義するルールのセットです。

**サイレンスアラート**

サイレンスは、通知の作成を停止し、指定された期間だけ継続します。サイレンスを使用すると、1 つ以上のアラートルールからの永続通知の受信を停止できます。また、特定の基準に基づいてアラートを部分的に一時停止することもできます。サイレンスには、整理と可視性を向上させるための独自の専用セクションがあるため、メインアラートビューを乱すことなく一時停止したアラートルールをスキャンできます。

**ミュートタイミング**

ミュートタイミングとは、ポリシーの新しい通知が生成されたり送信されないようにする繰り返しの時間間隔です。定期的なメンテナンス期間など、アラートが特定の期間や繰り返し発生するのを防ぐために使用されます。

サイレンスと似ていますが、ミュートタイミングはアラートルールの評価や、ユーザーインターフェースへのアラート表示を停止せず、通知の作成のみを防ぎます。

## アラートシステムを設計する
<a name="v10-alerting-design"></a>

複雑な IT システムを監視し、すべてが正しく動作しているかどうかを理解することは難しい作業です。したがって、効果的なアラート管理システムを設定して、問題が発生したときにビジネスの成果に影響を与える前に通知することが不可欠です。

機能するアラート管理設定の設計と構成には時間がかかります。

ここでは、ビジネスに効果的なアラート管理の設定を作成する方法に関するヒントをいくつか紹介します。

**監視およびアラートを行うビジネスの主要なメトリクスはどれですか？**
+ 受信者が無視するほど些細で頻繁ではない、知っておくべき重要なイベントを見つけます。
+ アラートは、即時の対応や介入を必要とする大きなイベントに対してのみ作成すべきです。
+ 量よりも質を考慮してください。

**どのタイプのアラートを使用しますか？**
+ Grafana が管理するアラート、Grafana Mimir または Loki が管理するアラート、またはその両方を選択します。

**アラートと通知をどのように整理しますか？**
+ アラートを受信するように設定するユーザーを選択します。対応中のユーザーまたは特定の Slack チャネルに送信することを検討してください。
+ アラート API またはコードとしてのアラート (Terraform) として使用して、可能な限り自動化します。

**アラート疲れを減らすにはどうすればよいですか？**
+ サイレンス、ミュートタイミング、アラートルール評価の一時停止を使用して、ノイズの多い不要なアラートを回避します。
+ アラートルールを継続的に調整して、有効性を確認します。アラートルールを削除して、重複や無効なアラートを防ぎます。
+ 優先度と重要度レベルを慎重に検討してください。
+ しきい値と評価ルールを継続的に確認します。

## Grafana アラートの制約事項
<a name="v10-alerting-limitations"></a>
+ 他のシステムからルールを集約する場合、Grafana アラートシステムは、利用可能なすべての Amazon Managed Service for Prometheus、Prometheus、Loki、およびアラートマネージャーデータソースからルールを取得できますが、他のサポートされているデータソースからはルールを取得できない場合があります。

**Topics**
+ [主な特徴と利点](#v10-alerting-key-features)
+ [アラートシステムを設計する](#v10-alerting-design)
+ [Grafana アラートの制約事項](#v10-alerting-limitations)
+ [概要:](v10-alerting-overview.md)
+ [アラートの設定](v10-alerting-setup.md)
+ [アラートを設定する](v10-alerting-configure.md)
+ [アラートの管理](v10-alerting-manage.md)

# 概要:
<a name="v10-alerting-overview"></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 アラートの経験豊富なユーザーでも、アラートの作成、管理、対応に役立つ基本と利用可能な機能の詳細を確認することで、問題を迅速に解決するチームの能力を向上させることができます。

## Principles
<a name="v10-alerting-overview-principles"></a>

Prometheus ベースのアラートシステムでは、アラートを作成するアラートジェネレーターと、アラートを受信するアラートレシーバーがあります。たとえば、Prometheusはアラートジェネレーターであり、アラートルールの評価を担当します。アラートマネージャーはアラートレシーバーであり、発射アラートと解決済みアラートに関する通知のグループ化、禁止、サイレンシング、送信を担当します。

Grafana アラートは、アラートシステムを設計する Prometheus モデルに基づいて設計されています。アラートルールのスケジュールと評価を担当する内部アラートジェネレーターと、通知のグループ化、禁止、サイレンシング、送信を担当する内部アラートレシーバーがあります。Grafana は Prometheus をアラートジェネレーターとして使用しません。これは、Grafana アラートが Prometheus に加えて他の多くのデータソースと連携する必要があるためです。ただし、アラートマネージャーをアラートレシーバーとして使用します。

アラートはアラートレシーバーに送信され、ルーティング、グループ化、禁止、サイレンシング、通知されます。Grafana アラートでは、デフォルトのアラートレシーバーは Grafana 内に埋め込まれたアラートマネージャーであり、Grafana アラートマネージャーと呼ばれます。ただし、他のアラートマネージャーを使用することもできます。これらは[外部アラートマネージャー](v10-alerting-setup-alertmanager.md)と呼ばれます。

## 基礎
<a name="v10-alerting-overview-fundamentals"></a>

以下に、Grafana アラートのさまざまな部分の概要を示します。

### アラートルール
<a name="v10-alerting-overview-alert-rules"></a>

アラートルールは、アラートがいつ発生するかを決定する一連の基準です。これは、1つ以上のクエリと式、満たす必要がある条件、アラートルールを評価する頻度を決定する間隔、およびアラートを発射するために条件を満たす必要がある期間で構成されます。

アラートルールはその間隔で評価され、各アラートルールは一度に0、1、または任意の数のアラートを発射できます。アラートルールの状態は、通常、保留中、または発射のいずれかの `severe` アラートによって決まります。例えば、アラートルールのアラートの少なくとも 1 つが発射されている場合、アラートルールも発射されます。アラートルールの状態は、最新の評価のステータスによって決まります。これらは、OK、Error、NoData のいずれかです。

アラートルールの非常に重要な特徴は、カスタム注釈とラベルをサポートすることです。これにより、概要や説明などの追加のメタデータを使用してアラートを計測し、特定の通知ポリシーにアラートをルーティングするためのラベルを追加できます。

### アラート
<a name="v10-alerting-overview-alerts"></a>

アラートは、ラベルと呼ばれるキーと値のペアのセットによって一意に識別されます。各キーはラベル名、各値はラベル値です。例えば、あるアラートにはラベル `foo=bar` があり、別のアラートにはラベル `foo=baz` がある場合があります。アラートには `foo=bar,bar=baz` などの多くのラベルを含めることができますが、`foo=bar,foo=baz` などの同じラベルを 2 回持つことはできません。2 つのアラートに同じラベルを付けることもできず、2 つのアラートに `foo=bar,bar=baz` と `foo=bar,bar=baz` などの同じラベルがある場合、いずれかのアラートが破棄されます。アラートは、アラートルールの条件が満たされなくなるか、アラートルールが削除されると解決されます。

Grafana マネージドアラートでは、アラートは、正常、保留中、アラート中、データなし、エラー状態のいずれかになります。Mimir や Loki などのデータソースマネージドアラートでは、アラートは正常、保留中、アラートにすることができますが、NoData やエラーにすることはできません。

### コンタクトポイント
<a name="v10-alerting-overview-contact-points"></a>

コンタクトポイントは、通知の送信先を決定します。例えば、E メールアドレス、Slack、Grafana OnCall や Pagerduty などのインシデント管理システム (IRM)、またはウェブフックに通知を送信するコンタクトポイントがあるとします。

コンタクトポイントから送信される通知は、通知テンプレートを使用してカスタマイズできます。通知テンプレートを使用して、通知の件名、メッセージ、構造を変更できます。通知テンプレートは、個々の統合やコンタクトポイントに固有のものではありません。

### 通知ポリシー
<a name="v10-alerting-overview-notification-policies"></a>

通知ポリシーはアラートをグループ化し、コンタクトポイントにルーティングします。通知が送信されるタイミングと、通知を繰り返す頻度を決定します。

アラートは、ラベルマッチャーを使用して通知ポリシーとマッチングされます。これらは、アラートのラベルが完全に一致するかどうか、完全に一致しないかどうか、予期されるテキストが含まれているかどうか、または含まれていないかどうかを示す、人間が判読できる式です。例えば、マッチャー `foo=bar` はアラートをラベル `foo=bar` に一致させ、マッチャー `foo=~[a-zA-Z]+` は foo という名前のラベルを正規表現 `[a-zA-Z]+` に一致する値に一致させます。

デフォルトでは、アラートは 1 つの通知ポリシーにのみ一致できます。ただし、 `continue` 機能を使用すると、任意の数の通知ポリシーを同時に一致させるようにアラートを作成できます。通知ポリシーの詳細については、[「通知ポリシー」](v10-alerting-explore-notifications-policies-details.md)を参照してください。

### サイレンスとミュートタイミング
<a name="v10-alerting-overview-silences-and-mute-timings"></a>

サイレンスとミュートタイミングを使用すると、特定のアラートまたは通知ポリシー全体の通知を一時停止できます。アラートの修正作業中など、サイレンスを使用してアドホックベースで通知を一時停止し、定期的なメンテナンスウィンドウ中など、ミュートタイミングを使用して定期的に通知を一時停止することができます。

**Topics**
+ [Principles](#v10-alerting-overview-principles)
+ [基礎](#v10-alerting-overview-fundamentals)
+ [データソースと Grafana アラート](v10-alerting-overview-datasources.md)
+ [数値データのアラート](v10-alerting-overview-numeric.md)
+ [ラベルと注釈](v10-alerting-overview-labels.md)
+ [アラートルールについて](v10-alerting-explore-rules.md)
+ [アラートマネージャー](v10-alerting-explore-alertmanager.md)
+ [コンタクトポイント](v10-alerting-explore-contacts.md)
+ [通知](v10-alerting-explore-notifications.md)
+ [高可用性のアラート](v10-alerting-explore-high-availability.md)

# データソースと Grafana アラート
<a name="v10-alerting-overview-datasources"></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 アラートでは、評価エンジンがバックエンドで実行されるため、データソースを使用してルールを評価するために、データソースプラグインを*バックエンド*プラグインにする必要があります。プラグインは、Grafana アラートと互換性があることも指定する必要があります。

データソースは時間の経過とともに追加および更新されます。以下のデータソースは、Grafana アラートと互換性があるものをご紹介しています。
+ [Amazon CloudWatch データソースへの接続](using-amazon-cloudwatch-in-AMG.md)
+ [Azure Monitor データソースへの接続](using-azure-monitor-in-AMG.md)
+ [Amazon OpenSearch Service データソースへの接続](using-Amazon-OpenSearch-in-AMG.md)
+ [Google Cloud Monitoring データソースへの接続](using-google-cloud-monitoring-in-grafana.md)
+ [Graphite データソースに接続する](using-graphite-in-AMG.md)
+ [InfluxDB ソースデータベースに接続するには](using-influxdb-in-AMG.md)
+ [Loki データソースに接続するには](using-loki-in-AMG.md)
+ [Microsoft SQL Server データソースに接続する](using-microsoft-sql-server-in-AMG.md)
+ [MySQL データソースに接続する](using-mysql-in-AMG.md)
+ [OpenTSDB データソースに接続する](using-opentsdb-in-AMG.md)
+ [PostgreSQL データソースに接続する](using-postgresql-in-AMG.md)
+ [Amazon Managed Service for Prometheus およびオープンソースの Prometheus データソースへの接続](prometheus-data-source.md)
+ [Jaeger データソースへの接続](jaeger-data-source.md)
+ [Zipkin データソースへの接続](zipkin-data-source.md)
+ [Tempo データソースへの接続](tempo-data-source.md)
+ [テスト用 TestData データソースの設定](testdata-data-source.md)

Amazon Managed Grafana のデータソースとデータソースプラグインの詳細については、「[データソースに接続する](AMG-data-sources.md)」を参照してください。

# 数値データのアラート
<a name="v10-alerting-overview-numeric"></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 が時系列データではなく数値データのアラートを処理する方法について説明します。

特定のデータソースでは、時系列ではない数値データをサーバーサイド式 (SSE) で直接アラートしたり、渡したりすることができます。これにより、データソース内の処理と効率が向上し、アラートルールを簡素化することができます。時系列データではなく数値データを基にアラートを送信する場合、ラベル付きの各時系列を 1 つの数値に集約する必要はありません。代わりに、ラベル付き番号が Grafana に返されます。

## 表形式のデータ
<a name="v10-alerting-numeric-tabular"></a>

この機能は、表形式データをクエリするバックエンドデータソースでサポートされています。
+ MySQL 、Postgres、MSSQL、Oracle などの SQL データソース。
+ Azure Kusto ベースのサービス: Azure Monitor (Logs)、Azure Monitor (Azure Resource Graph)、および Azure Data Explorer。

Grafana 管理のアラートまたは SSE を含むクエリは、以下の場合、これらのデータソースでは数値として扱われます。
+ データソースクエリの「Format AS」オプションが「テーブル」に設定されている。
+ クエリから Grafana に返されるテーブルレスポンスには、1 つの数値 (int、double、float など) 列と、オプションで追加の文字列列のみが含まれている。

文字列がある場合、それらの列はラベルになります。列の名前がラベル名になり、各行の値が対応するラベルの値になります。複数の行が返された場合、各行はラベルによって一意に識別される必要があります。

## 例
<a name="v10-alerting-numeric-tabexample"></a>

「DiskSpace」という名前の MySQL テーブルの場合:


| Time | ホスト | ディスク | PercentFree | 
| --- | --- | --- | --- | 
| 2021 年 6 月 7 日 | web1 | /etc | 3 | 
| 2021 年 6 月 7 日 | web2 | /var | 4 | 
| 2021 年 6 月 7 日 | web3 | /var | 8 | 
| ... | ... | ... | ... | 

データを時間でフィルタリングしてクエリを実行できますが、時間系列は Grafana に返す必要はありません。例えば、空き容量が 5% 未満の場合にホスト、ディスクごとにトリガーされるアラートです。

```
SELECT Host , Disk , CASE WHEN PercentFree  < 5.0 THEN PercentFree  ELSE 0 END FROM ( 
       SELECT
          Host, 
          Disk, 
          Avg(PercentFree) 
       FROM DiskSpace
       Group By
          Host, 
          Disk 
       Where __timeFilter(Time)
```

このクエリでは、次のようなレスポンステーブルが Grafana に返されます。


| ホスト | ディスク | PercentFree | 
| --- | --- | --- | 
| web1 | /etc | 3 | 
| web2 | /var | 4 | 
| web3 | /var | 0 | 

このクエリがアラートルールの**条件**として使用されると、ゼロ以外のクエリはアラートになります。その結果、次の 3 つのアラートインスタンスが生成されます。


| ラベル | ステータス | 
| --- | --- | 
| \$1Host=web1,disk=/etc\$1 | [アラート] | 
| \$1Host=web2,disk=/var\$1 | [アラート] | 
| \$1Host=web3,disk=/var\$1 | 普通 | 

# ラベルと注釈
<a name="v10-alerting-overview-labels"></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)」を参照してください。

ラベルと注釈には、アラートに関する情報が含まれています。ラベルと注釈はどちらも同じ構造であり、名前付き値のセットですが、用途は異なります。ラベルまたは同等の注釈の例は、`alertname="test"` である場合があります。

ラベルと注釈の主な違いは、ラベルはアラートを他のすべてのアラートと区別するために使用され、注釈は既存のアラートに追加情報を追加するために使用されるという点です。

例えば、2 つの高 CPU アラートを考えてみましょう。1 つは `server1` 用、もう 1 つは `server2` 用です。このような例では、最初のアラートに `server="server1"` というラベルがあり、2 番目のアラートに `server="server2"` というラベルがある、`server` というラベルがある場合があります。ただし、 `server1` や `75%` がサーバーの名前と CPU 使用率に置き換えられる `"The CPU usage for server1 is above 75%."` などの各アラートに説明を追加することもできます (これを行う方法については、[ラベルと注釈のテンプレート作成](v10-alerting-overview-labels-templating.md) のドキュメントを参照してください）。このような説明は、注釈としてより適しています。

## ラベル
<a name="v10-alerting-overview-labels-labels"></a>

ラベルには、アラートを識別する情報が含まれます。ラベルの例は `server=server1` です。各アラートには複数のラベルを含めることができ、アラートのラベルの完全なセットはラベルセットと呼ばれます。アラートを識別するのはこのラベルセットです。

例えば、アラートにラベルセット `{alertname="High CPU usage",server="server1"}` が設定されているのに対し、別のアラートにラベルセット `{alertname="High CPU usage",server="server2"}` が設定されている場合があります。`alertname` ラベルは同じですが、`server` ラベルは異なるため、これらは 2 つの別々のアラートです。

アラートのラベルセットは、データソースのラベル、アラートルールのカスタムラベル、`alertname` などの予約済みラベルの組み合わせです。

**カスタムラベル**

カスタムラベルは、アラートルールからの追加ラベルです。注釈と同様に、カスタムラベルには名前が必要です。その値には、アラートが発射したときに評価されるテキストコードとテンプレートコードの組み合わせを含めることができます。カスタムラベルをテンプレート化する方法については、 [こちら](v10-alerting-overview-labels-templating.md)を参照してください。

テンプレートでカスタムラベルを使用する場合、多数の個別のアラートが生成されるのを避けるため、ラベルの値がアラートルールの連続した評価間で変化しないようにすることが重要です。ただし、テンプレートが異なるアラートに対して異なるラベル値を生成しても問題ありません。例えば、値が変更されるたびに新しいアラートセットが作成されてしまうため、クエリの値をカスタムラベルに入れないでください。代わりに注釈を使用します。

また、アラートのラベルセットに同じ名前のラベルが 2 つ以上ないことを確認することも重要です。カスタムラベルの名前がデータソースのラベルと同じ場合は、そのラベルが置き換えられます。ただし、カスタムラベルの名前が予約済みラベルと同じ場合、カスタムラベルはアラートから省略されます。

## ‏注釈
<a name="v10-alerting-overview-labels-annotations"></a>

注釈は、既存のアラートに追加情報を追加する名前付きペアです。Grafana には、`description`、`summary`、`runbook_url`、`dashboardUId`、`panelId` など、推奨される注釈が多数あります。カスタムラベルと同様に、注釈には名前が必要です。その値には、アラートが発射したときに評価されるテキストコードとテンプレートコードの組み合わせを含めることができます。注釈にテンプレートコードが含まれている場合は、アラートが発生したときにテンプレートが 1 回評価されます。アラートが解決されても、再評価されません。注釈をテンプレートする方法については、[こちら](v10-alerting-overview-labels-templating.md)を参照してください。

**Topics**
+ [ラベル](#v10-alerting-overview-labels-labels)
+ [‏注釈](#v10-alerting-overview-labels-annotations)
+ [ラベル一致の仕組み](v10-alerting-overview-labels-matching.md)
+ [Grafana アラートのラベル](v10-alerting-overview-labels-alerting.md)
+ [ラベルと注釈のテンプレート作成](v10-alerting-overview-labels-templating.md)

# ラベル一致の仕組み
<a name="v10-alerting-overview-labels-matching"></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)」を参照してください。

ラベルとラベルマッチャーを使用して、アラートルールを通知ポリシーとサイレンスにリンクできます。これにより、アラートインスタンスを柔軟に管理し、処理するポリシーとサイレンスするアラートを指定できます。

ラベルマッチャーは、**ラベル**、**値**、**演算子** の 3 つの異なる部分で構成されます。
+ **[ラベル]**フィールドは、一致するラベルの名前です。ラベル名と完全に一致する必要があります。
+ **[値]**フィールドは、指定された**ラベル**名の対応する値と一致します。一致方法は、**演算子**の値によって異なります。
+ **[演算子]** フィールドは、ラベル値と一致させる演算子です。利用できる演算子は次のとおりです。


| 演算子 | 説明 | 
| --- | --- | 
| `=` | 値と完全に等しいラベルを選択します。 | 
| `!=` | 値と等しくないラベルを選択します。 | 
| `=~` | 値と正規表現が一致するラベルを選択します。 | 
| `!~` | 値と正規表現が一致しないラベルを選択します。 | 

複数のラベルマッチャーを使用している場合は、AND 論理演算子を使用して組み合わせられます。つまり、ルールをポリシーにリンクするには、すべてのマッチャーが一致する必要があります。

## 例
<a name="v10-alerting-overview-labels-matching-ex"></a>

アラートに次のラベルセットを定義する場合：

```
{ foo=bar, baz=qux, id=12 }
```

次に：
+ `foo=bar` として定義されたラベルマッチャーは、このアラートルールと一致します。
+ `foo!=bar` として定義されたラベルマッチャーがこのアラートルールと一致*しません*。
+ `id=~[0-9]+` として定義されたラベルマッチャーは、このアラートルールと一致します。
+ `baz!~[0-9]+` として定義されたラベルマッチャーは、このアラートルールと一致します。
+ `foo=bar`と`id=~[0-9]+`として定義された 2 つのラベルマッチャーは、このアラートルールと一致します。

## ラベルを除外する
<a name="v10-alerting-overview-labels-matching-exclude"></a>

また、ラベルを除外するためにラベルマッチャーを記述することもできます。

ラベル`team`を除外する方法を示す例を次に示します。これらの値のいずれかを選択して、ラベルを除外できます。
+ `team=""`
+ `team!~.+`
+ `team=~^$`

# Grafana アラートのラベル
<a name="v10-alerting-overview-labels-alerting"></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 アラート内のアラートを一意に識別するものです。
+ アラートマネージャーはラベルを使用して、通知ポリシーのサイレンスとアラートグループのアラートを照合します。
+ アラート UI には、そのルールの評価中に生成されたすべてのアラートインスタンスのラベルが表示されます。
+ コンタクトポイントには、通知を生成する際にラベルにアクセスして、そのアラートに固有の情報を含めることができます。
+ [アラートルール](v10-alerting-configure.md)にラベルを追加できます。ラベルは手動で設定でき、テンプレート関数を使用し、他のラベルを参照できます。アラートルールに追加されたラベルは、ラベル間で競合が発生した場合に優先されます (Grafana の予約済みラベルの場合を除きます。詳細については、以下を参照してください)。

## 外部アラートマネージャーの互換性
<a name="v10-alerting-overview-labels-alerting-external"></a>

Grafana の組み込みアラートマネージャーは、Unicode ラベルキーと値の両方をサポートしています。外部 Prometheus アラートマネージャーを使用している場合、ラベルキーは[[データモデル]](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)と互換性がある必要があります。つまり、ラベルキーには、**ASCII 文字**、**数字**および**アンダースコア**のみが含まれ、正規表現 `[a-zA-Z_][a-zA-Z0-9_]*` と一致する必要があります。無効な文字は、Grafanaアラートエンジンによって削除または置換されてから、次の規則に従って外部アラートマネージャーに送信されます。
+ `Whitespace` は削除されます。
+ `ASCII characters` は、`_`に置き換えられます。
+ `All other characters` は、小文字の 16 進数表現に置き換えられます。これが最初の文字の場合、`_` というプレフィックスがつきます。

**注記**  
複数のラベルキーが同じ値にサニタイズされている場合、重複にはサフィックスとして追加された元のラベルの短いハッシュが付加されます。

## Grafana 予約済みラベル
<a name="v10-alerting-overview-labels-alerting-reserved"></a>

**注記**  
`grafana_` のプレフィックスがついたラベルは、Grafana によって特別な用途のために予約されています。`grafana_` で始まる手動で設定されたラベルが追加されると、競合時に上書きされます。

Grafana 予約済みラベルは、手動で設定されたラベルと同じ方法で使用できます。利用可能な予約済みラベルの現在のリストは次のとおりです。


| ラベル | 説明 | 
| --- | --- | 
| grafana\$1folder | アラートを含むフォルダのタイトル。 | 

# ラベルと注釈のテンプレート作成
<a name="v10-alerting-overview-labels-templating"></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)」を参照してください。

テンプレートを使用して、クエリや式からのデータをラベルや注釈に含めることができます。たとえば、クエリの値に基づいてアラートの重大度ラベルを設定したり、クエリのインスタンスラベルをサマリー注釈で使用して、CPU使用率が高いサーバーを特定したりできます。

すべてのテンプレートは、[テキスト/テンプレート ](https://pkg.go.dev/text/template)で記述する必要があります。ラベルと注釈のどちらをテンプレート化するかにかかわらず、テンプレート化するラベルまたは注釈内に各テンプレートをインラインで記述する必要があります。つまり、ラベルと注釈間でテンプレートを共有することはできません。代わりに、テンプレートを使用する場所を問わず、テンプレートをコピーする必要があります。

各テンプレートは、アラートルールが評価されるたびに評価され、アラートごとに個別に評価されます。例えば、アラートルールにテンプレート作成されたサマリー注釈があり、アラートルールに 10 個の起動アラートがある場合、テンプレートはアラートごとに 10 回実行されます。テンプレートで高価な計算をできるだけ行わないようにする必要があります。

## 例
<a name="v10-alerting-overview-labels-templating-examples"></a>

次の例では、テキスト/テンプレートに関する完全なチュートリアルを記述するのではなく、テンプレートに関連する最も一般的なユースケースを示しています。これらの例を逐語的に使用したり、ユースケースに合わせて必要に応じて変更したりできます。テキスト/テンプレートの記述方法の詳細については、[テキスト/テンプレート](https://pkg.go.dev/text/template)のドキュメントを参照してください。

**すべてのラベルをカンマ区切りで印刷する**

すべてのラベルをカンマ区切りで印刷するには、`$labels` 変数を出力します:

```
{{ $labels }}
```

例えば、ラベル `alertname=High CPU usage`、`grafana_folder=CPU alerts`、および `instance=server1` を含むアラートがあると、以下が印刷されます: 

```
alertname=High CPU usage, grafana_folder=CPU alerts, instance=server1
```

**注記**  
クラシック条件を使用している場合、 `$labels` にはクエリからのラベルは含まれません。詳細については、[\$1labels 変数](#v10-alerting-overview-labels-templating-the-labels-variable)を参照してください。

**すべてのラベルを 1 行に 1 つずつ印刷する**

すべてのラベルを 1 行に 1 つずつ印刷するには、 `range` を使用して各キーと値のペアを反復し、個別に印刷します。ここでは、`$k` の名前と現在のラベルの値 `$v` を参照します。

```
{{ range $k, $v := $labels -}}
{{ $k }}={{ $v }}
{{ end }}
```

例えば、ラベル `alertname=High CPU usage`、`grafana_folder=CPU alerts`、および `instance=server1` を含むアラートがあると、以下が印刷されます:

```
alertname=High CPU usage
grafana_folder=CPU alerts
instance=server1
```

**注記**  
クラシック条件を使用している場合、 `$labels` にはクエリからのラベルは含まれません。詳細については、[\$1labels 変数](#v10-alerting-overview-labels-templating-the-labels-variable)を参照してください。

**個々のラベルの印刷**

個々のラベルを印刷するには、`$labels` 変数で `index` 関数を使用します。

```
The host {{ index $labels "instance" }} has exceeded 80% CPU usage for the last 5 minutes
```

例えば、ラベル `instance=server1` のアラートがあると、以下が印刷されます:

```
The host server1 has exceeded 80% CPU usage for the last 5 minutes
```

**注記**  
クラシック条件を使用している場合、 `$labels` にはクエリからのラベルは含まれません。詳細については、[\$1labels 変数](#v10-alerting-overview-labels-templating-the-labels-variable)を参照してください。

**クエリの値を印刷する**

インスタントクエリの値を印刷するには、`index` 関数と `$values` 変数を使用して Ref ID を印刷します。

```
{{ index $values "A" }}
```

例えば、値 81.2345 を返すインスタントクエリがあると、次の内容が印刷されます:

```
81.2345
```

範囲クエリの値を印刷するには、まず縮小式を使用して時系列からインスタントベクトルに値を変換する必要があります。その後、代わりに Ref ID を使用して、縮小式の結果を印刷できます。例えば、縮小式が A の平均を取得し、Ref ID B がある場合、次のように記述します: 

```
{{ index $values "B" }}
```

**クエリのヒューマナイズされた値を印刷する**

インスタントクエリのヒューマナイズされた値を印刷するには、 `humanize` 関数を使用します:

```
{{ humanize (index $values "A").Value }}
```

例えば、値 81.2345 を返すインスタントクエリがあると、次の内容が印刷されます: 

```
81.234
```

範囲クエリのヒューマナイズされた値を印刷するには、まず時系列から、縮小式を使用してインスタントベクトルに減らす必要があります。その後、代わりに Ref ID を使用して、縮小式の結果を印刷できます。例えば、縮小式が A の平均を取得し、Ref ID B がある場合、次のように記述します: 

```
{{ humanize (index $values "B").Value }}
```

**クエリの値をパーセンテージで印刷する**

インスタントクエリの値をパーセンテージで印刷するには、 `humanizePercentage` 関数を使用します:

```
{{ humanizePercentage (index $values "A").Value }}
```

この関数は、値が 0 から 1 までの 10 進数であることを想定しています。代わりに、値が 0 から 100 までの 10 進数の場合、クエリまたは数式を使用して 100 で割ることができます。クエリが範囲クエリである場合は、まず、時系列から縮小式を使用してインスタントベクトルにクエリを減らす必要があります。

**クエリの値から重要度を設定する**

クエリの値から重要度ラベルを設定するには、if ステートメントと greater than 比較関数を使用します。テキスト/テンプレートは型強制をサポートしていないため、`$values` と比較するときは、必ず小数点 (`80.0`、`50.0`、`0.0` など) を使用してください。サポートされているすべての比較関数のリストは、[こちら](https://pkg.go.dev/text/template#hdr-Functions)で確認できます。

```
{{ if (gt $values.A.Value 80.0) -}}
high
{{ else if (gt $values.A.Value 50.0) -}}
medium
{{ else -}}
low
{{- end }}
```

**クラシック条件からすべてのラベルを印刷する**

従来の条件を使用している場合、 `$labels` を使用してクエリからラベルを印刷することはできません。代わりに `$values` を使用する必要があります。これは、クラシック条件がこれらのラベルを破棄して一次元動作を適用するためです (アラートルールごとに最大 1 つのアラート）。クラシック条件でこれらのラベルが破棄されない場合、多くの時系列を返すクエリでは、アラートルールが評価されるたびにラベルが変更されるため、アラートの発射と解決の間でアラートが頻繁に発生します。

代わりに、 `$values` 変数には、発射するすべての条件のすべての時系列の減算値が含まれます。例えば、2 つの時系列を返すクエリ A と、2 つの条件を持つクラシック条件 B を持つアラートルールがある場合、 `$values` には、`B0`、`B1`、`B2`、`B3` が含まれます。クラシック条件 B に 1 つの条件しかない場合、 `$values` には `B0` と `B1` のみが含まれます。

すべての発射時系列のすべてのラベルを印刷するには、次のテンプレートを使用します (正規表現の `B` を、異なる場合はクラシック条件の Ref ID に置き換えてください)。

```
{{ range $k, $v := $values -}}
{{ if (match "B[0-9]+" $k) -}}
{{ $k }}: {{ $v.Labels }}{{ end }}
{{ end }}
```

例えば、1 つの条件を超える 2 つの時系列のクラシック条件が出力されます。

```
B0: instance=server1
B1: instance=server2
```

クラシック条件に2つ以上の条件があり、時系列が同時に複数の条件を超える場合、超過した条件ごとにラベルが重複します。

```
B0: instance=server1
B1: instance=server2
B2: instance=server1
B3: instance=server2
```

一意のラベルを印刷する必要がある場合は、代わりにアラートルールを一次元から多次元に変更することを検討する必要があります。これを行うには、クラシック条件を縮小式と数式に置き換えます。

**クラシック条件のすべての値を印刷する**

クラシック条件のすべての値を印刷するには、前の例を取って `$v.Labels` を `$v.Value` に置き換えます。

```
{{ range $k, $v := $values -}}
{{ if (match "B[0-9]+" $k) -}}
{{ $k }}: {{ $v.Value }}{{ end }}
{{ end }}
```

例えば、1 つの条件を超える 2 つの時系列のクラシック条件が出力されます。

```
B0: 81.2345
B1: 84.5678
```

クラシック条件に 2 つ以上の条件があり、時系列が同時に複数の条件を超える場合、`$values` にはすべての条件の値が含まれます。

```
B0: 81.2345
B1: 92.3456
B2: 84.5678
B3: 95.6789
```

## [変数]
<a name="v10-alerting-overview-labels-templating-variables"></a>

ラベルと注釈をテンプレート化する場合、次の変数を使用できます:

### ラベル変数
<a name="v10-alerting-overview-labels-templating-the-labels-variable"></a>

`$labels` 変数には、クエリのすべてのラベルが含まれます。たとえば、すべてのサーバーの CPU 使用率を返すクエリがあり、いずれかのサーバーの CPU 使用率が過去 5 分間に 80% を超えたときに起動するアラートルールがあるとします。どのサーバーで CPU 使用率が高いかを知らせるサマリー注釈をアラートに追加します。`$labels` 変数を使用すると、次のような判読可能な文を印刷するテンプレートを記述できます: 

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes
```

**注記**  
クラシック条件を使用している場合、 `$labels` にはクエリからのラベルは含まれません。クラシック条件は、一次元動作 (アラートルールごとに最大 1 つのアラート) を適用するために、これらのラベルを破棄します。テンプレートでクエリのラベルを使用する場合は、前の「*クラシック条件からすべてのラベルを印刷する*」の例に従います。

### 値変数
<a name="v10-alerting-overview-labels-templating-the-value-variable"></a>

`$value` 変数は、アラートルールのすべてのインスタントクエリのラベルと値、しきい値、縮小式と数式、およびクラシック条件を含む文字列です。範囲クエリの結果は、10 から 10,000 行またはメトリクスのどれかを返す可能性があるため、含まれていません。そうした場合、特に大きなクエリでは、1 つのアラートで 10 MB のメモリが使用され、Grafana でメモリが非常に迅速に不足する可能性があります。

サマリーで `$value` 変数を印刷するには、次のような内容を作成します。

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes: {{ $value }}
```

次のように表示されます。

```
CPU usage for instance1 has exceeded 80% for the last 5 minutes: [ var='A' labels={instance=instance1} value=81.234 ]
```

ここで `var='A'` は、Ref ID A を使用したインスタントクエリを参照し、ラベル `labels={instance=instance1}` を参照し、過去 5 分間の平均 CPU 使用率 `value=81.234` を参照します。

完全な文字列ではなく一部の文字列のみを印刷する場合は、 `$values` 変数を使用します。`$value` と同じ情報が含まれていますが、構造化されたテーブルの形態をとっており、必要なテキストのみに一致する正規表現を記述するよりもはるかに使いやすくなっています。

### 値変数
<a name="v10-alerting-overview-labels-templating-the-values-variable"></a>

`$values` 変数は、すべてのインスタントクエリと式のラベルと浮動小数点値を含むテーブルで、Ref ID でインデックス化されます。

Ref ID A でインスタントクエリの値を印刷するには:

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes: {{ index $values "A" }}
```

例えば、ラベル `instance=server1` 付きのアラートと値 `81.2345` のインスタントクエリがあるとすると、次の内容が出力されます。

```
CPU usage for instance1 has exceeded 80% for the last 5 minutes: 81.2345
```

Ref ID A のクエリがインスタントクエリではなく範囲クエリである場合は、縮小式を Ref ID B に追加し、`(index $values "A")` を `(index $values "B")` に置き換えます。

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes: {{ index $values "B" }}
```

## 関数
<a name="v10-alerting-overview-labels-templating-functions"></a>

ラベルと注釈をテンプレート化するときは、次の関数を使用できます。

**args**

`args` 関数は、オブジェクトのリストをキー arg0、arg1 などのマップに変換します。これは、複数の引数をテンプレートに渡せるようにすることを目的としています。

```
{{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}}
```

```
1 2
```

**externalURL**

`externalURL` 関数は Grafana サーバーの外部 URL を返します。

```
{{ externalURL }}
```

```
https://example.com/grafana
```

**graphLink**

`graphLink` 関数は、指定された式とデータソースの [Grafana バージョン 10 で探索する](v10-explore.md) のグラフィックビューへのパスを返します。

```
{{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```

```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}]
```

**humanize**

`humanize` 関数は 10 進数をヒューマナイズします。

```
{{ humanize 1000.0 }}
```

```
1k
```

**humanize1024**

`humanize1024` は `humanize` と似ていますが、1000 ではなく 1024 をベースとして使用します。

```
{{ humanize1024 1024.0 }}
```

```
1ki
```

**humanizeDuration**

`humanizeDuration` 関数は、期間を秒単位でヒューマナイズします。

```
{{ humanizeDuration 60.0 }}
```

```
1m 0s
```

**humanizePercentage**

`humanizePercentage` 関数は、比率値をパーセンテージにヒューマナイズします。

```
{{ humanizePercentage 0.2 }}
```

```
20%
```

**humanizeTimestamp**

`humanizeTimestamp` 関数は Unix タイムスタンプをヒューマナイズします。

```
{{ humanizeTimestamp 1577836800.0 }}
```

```
2020-01-01 00:00:00 +0000 UTC
```

**match**

`match` 関数は、テキストを正規表現パターンと一致させます。

```
{{ match "a.*" "abc" }}
```

```
true
```

**pathPrefix**

`pathPrefix` 関数は Grafana サーバーのパスを返します。

```
{{ pathPrefix }}
```

```
/grafana
```

**tableLink**

`tableLink` 関数は、指定された式とデータソースの [Grafana バージョン 10 で探索する](v10-explore.md) の表形式ビューへのパスを返します。

```
{{ tableLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```

```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}]
```

**title**

`title` 関数は、各単語の最初の文字を大文字にします。

```
{{ title "hello, world!" }}
```

```
Hello, World!
```

**toLower**

`toLower` 関数はすべてのテキストを小文字で返します。

```
{{ toLower "Hello, world!" }}
```

```
hello, world!
```

**toUpper**

`toUpper` 関数は、すべてのテキストを大文字で返します。

```
{{ toUpper "Hello, world!" }}
```

```
HELLO, WORLD!
```

**reReplaceAll**

`reReplaceAll` 関数は、正規表現に一致するテキストを置き換えます。

```
{{ reReplaceAll "localhost:(.*)" "example.com:$1" "localhost:8080" }}
```

```
example.com:8080
```

# アラートルールについて
<a name="v10-alerting-explore-rules"></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)」を参照してください。

アラートルールは、アラートインスタンスを起動するかどうかを決定する一連の評価基準です。このルールは、1 つ以上のクエリと式、条件、評価の頻度、発射を開始するために条件を満たす必要がある期間で構成されます。

評価するデータセットを「クエリと式」で選択し、*「条件」*にデータがアラートを発行するための基準 (しきい値) を設定します。

*[間隔]*は、アラートルールが評価される頻度を指定します。「*持続時間*」を設定した場合、その条件下にある状態の継続時間を示します。また、アラートルールでは、データがない場合のアラート動作も設定できます。

**Topics**
+ [アラートルールタイプ](v10-alerting-explore-rules-types.md)
+ [記録ルール](v10-alerting-explore-rule-recording.md)
+ [クエリと条件](v10-alerting-explore-rules-queries.md)
+ [アラートインスタンス](v10-alerting-rules-instances.md)
+ [名前空間、フォルダ、グループ](v10-alerting-rules-grouping.md)
+ [アラートルールの評価](v10-alerting-rules-evaluation.md)
+ [アラートルールの状態と正常性](v10-alerting-explore-state.md)
+ [通知テンプレートの作成](v10-alerting-rules-notification-templates.md)

# アラートルールタイプ
<a name="v10-alerting-explore-rules-types"></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 マネージドルール
<a name="v10-alerting-explore-rule-types-grafana"></a>

Grafana マネージドルールは、最も柔軟なアラートルールの種類です。これにより、既存の任意のデータソースのデータに対して動作するアラートを作成できます。

複数のデータソースをサポートするだけでなく、[[式]](v10-panels-query-xform-expressions.md)を追加してデータを変換し、アラート条件を表現できます。

Grafana マネージドアラート:
+ アラートルールは、1 つ以上のデータソースに基づいて Grafana 内に作成されます。
+ アラートルールは、Grafana 内からアラートルール評価エンジンによって評価されます。
+ アラートは、内部 Grafana アラートマネージャーを使用して配信されます。

**注記**  
また、外部アラートマネージャーを使用して配信するようにアラートを設定したり、内部アラートマネージャーと外部アラートマネージャーの両方を使用したりできます。詳細については、「[外部アラートマネージャーの追加](v10-alerting-setup-alertmanager.md)」を参照してください。

## データソースマネージドルール
<a name="v10-alerting-explore-rule-types-datasource"></a>

データソースマネージドアラートルールを作成するには、互換性のある Prometheus または Loki データソースが必要です。データソースをテストし、Ruler API がサポートされているかどうかを観察することで、データソースが Grafana 経由でルール作成をサポートしているかどうかを確認できます。

データソースマネージドアラートでは、次のようになります。
+ アラートルールが作成され、データソース自体に保存されます。
+ アラートルールは、Prometheus データに基づいてのみ作成できます。
+ アラートルールの評価と配信は、高可用性と耐障害性のために複数のノードに分散されます。

## アラートルールタイプを選択する
<a name="v10-alerting-explore-rule-types-choose"></a>

使用するアラートルールタイプを選択するときは、Grafana マネージドアラートルールとデータソースマネージドアラートルールにおける以下の比較を考慮してください。


| 機能 | Grafana マネージドアラートルール | Loki/Mimir マネージドアラートルール | 
| --- | --- | --- | 
| サポートされているデータソースのデータに基づいてアラートルールを作成する | あり | 不可: Prometheus データに基づくアラートルールのみを作成できます。データソースで Ruler API が有効になっている必要があります。  | 
| データソースを組み合わせる | あり | なし | 
| 記録ルールへの対応 | なし | あり | 
| 式を追加してデータを変換し、アラート条件を設定する | あり | 不可 | 
| アラート通知でイメージを使用する | あり | なし | 
| スケーリング | リソースを大量に消費し、データベースに依存し、一時的なエラーが発生する可能性があります。垂直方向にのみスケーリングされます。 | アラートルールをデータソース自体に保存し、「無限」スケーリングを許可します。データの場所からアラート通知を生成して送信します。 | 
| アラートルールの評価と配信 | アラートルールの評価と配信は Grafana 内、外部アラートマネージャー、またはその両方を使用して行われます。 | アラートルールの評価とアラート配信は分散されます。つまり、単一障害点はありません。 | 

# 記録ルール
<a name="v10-alerting-explore-rule-recording"></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)」を参照してください。

*記録ルールは、互換性のある Prometheus または Loki データソースでのみ使用できます。*

記録ルールでは、頻繁に必要になる式や計算負荷の高い式を事前に計算し、その結果を新しい時系列セットとして保存できます。これは、集計データに対してアラートを実行する場合や、計算コストの高い式を繰り返しクエリするダッシュボードがある場合に便利です。

この新しい時系列のクエリは、特にダッシュボードでは、ダッシュボードが更新されるたびに同じ式をクエリするため、より高速になります。

Prometheus での[記録ルール](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/)の詳細については、こちらを参照してください。

# クエリと条件
<a name="v10-alerting-explore-rules-queries"></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 では、クエリは、MySQL や PostgreSQL などのデータベース、Prometheus、InfluxDB、Graphite などの時系列データベース、OpenSearch 、Amazon CloudWatch 、Azure Monitor、Google Cloud Monitoring などのサービスなど、サポートされているデータソースからのデータの取得と変換に重要な役割を果たします。

サポートされているデータソースの詳細については、「[データソースと Grafana アラート](v10-alerting-overview-datasources.md)」を参照してください。

クエリを実行するプロセスには、データソースの定義、取得するデータの特定、関連するフィルターまたは変換の適用が含まれます。選択したデータソースに固有のクエリ言語または構文は、これらのクエリのコンストラクトに使用されます。

アラートでは、測定するデータと、アラートルールを起動する前に満たす必要がある条件を取得するクエリを定義します。

アラートルールは、測定するデータを選択する 1 つ以上のクエリと式で構成されます。

クエリと式の詳細については、「[データのクエリと変換](v10-panels-query-xform.md)」を参照してください。

## データソースクエリ
<a name="v10-alerting-explore-rules-queries-data-source-queries"></a>

Grafana のクエリは、使用するデータソースとクエリ言語に応じて、さまざまな方法で適用できます。各データソースのクエリエディタには、独自の機能を活用するクエリの作成に役立つカスタマイズされたユーザーインターフェイスが用意されています。

クエリ言語の違いにより、各データソースクエリエディタの外観と関数は異なります。データソースによっては、クエリエディタが自動補完機能、メトリクス名、変数の提案、ビジュアルクエリ構築インターフェイスを提供する場合があります。

一般的なタイプのクエリコンポーネントには、次のようなものがあります。

**メトリクスまたはデータフィールド** – CPU 使用量、ネットワークトラフィック、センサー読み取りなど、取得する特定のメトリクスまたはデータフィールドを指定します。

**時間範囲** – 過去 1 時間、特定の日、カスタム時間範囲など、データを取得する時間範囲を指定します。

**フィルター** – フィルターを適用して、特定のタグ、ホスト、またはアプリケーションでデータをフィルタリングするなど、特定の基準に基づいてデータを絞り込みます。

**集計** - データを集計して、特定の期間の平均、合計、カウントなどのメトリクスを計算します。

**グループ分け** – データを特定のディメンションまたはタグでグループ化して、集計ビューまたは内訳を作成します。

**注記**  
Grafana は、テンプレート変数を使用したアラートクエリはサポートしていません。詳細については、Grafana Labs フォーラム内の[こちら](https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514)を参照してください。

## クエリ式
<a name="v10-alerting-explore-rules-queries-expression-queries"></a>

Grafana では、式を使用して、クエリされたデータソースデータに対して計算、変換、または集計を実行します。これにより、数学演算、関数、または論理式に基づいてカスタムメトリクスを作成したり、既存のメトリクスを変更したりできます。

クエリ式を活用することで、ユーザーは 2 つの値間の変化率の計算、対数関数や三角関数などの関数の適用、特定の時間範囲やディメンションにわたるデータの集約、さまざまなシナリオを処理するための条件ロジックの実装などのタスクを実行できます。

アラートでは、Grafana 管理のアラートルールにのみ式を使用できます。式ごとに、Math、Reduce、リサンプリング式を選択できます。これらは、シリーズごとに個別のアラートを生成するため、多次元ルールと呼ばれます。

クラシック条件を使用して、条件が満たされたときに単一のアラートをトリガーするアラートルールを作成することもできます。そのため、複数のシリーズでアラート条件が満たされた場合でも、Grafana が送信するアラートは 1 件のみです。

**注記**  
クラシック条件は主に互換性上の理由から存在するため、可能であれば避けるようにしてください。

**[削減]**

選択した時間範囲の時系列値を 1 つの値に集約します。

**数値演算**

時系列および数値データに対して自由形式の数学関数/オペレーションを実行します。時系列データの事前処理や、数値データのアラート条件の定義に使用できます。

**[リサンプリング]**

時間範囲を新しいタイムスタンプのセットに再調整します。これは、タイムスタンプが一致しない異なるデータソースからの時系列データを比較する場合に役立ちます。

**Threshold**

時系列データがしきい値条件と一致するかどうかを確認します。

しきい値式を使用すると、2 つの単一の値を比較できます。条件が偽の場合 `0` と、条件が真の場合に `1` が返されます。次のしきい値関数が使用可能です。
+ Is above (x > y)
+ Is below (x < y)
+ Is within range (x > y1 AND x < y2)
+ Is outside range (x < y1 AND x > y2)

**クラシック条件**

時系列データがアラート条件と一致するかどうかを確認します。

**注記**  
クラシック条件クエリ式は、条件を満たす時系列の数に関係なく、常に 1 つのアラートインスタンスのみを生成します。クラシック条件は主に互換性上の理由から存在するため、可能であれば避けるようにしてください。

## 集計
<a name="v10-alerting-explore-rules-queries-aggregations"></a>

Grafana アラートでは、クエリをさらに絞り込むために、次の集計関数が用意されています。

これらの関数は、**削減** 式と**クラシック条件**式でのみ使用できます。


| 関数 | 式 | その内容 | 
| --- | --- | --- | 
| avg | 削減/クラシック | 値の平均を表示します | 
| min | 削減/クラシック | 最小値を表示します | 
| max | 削減/クラシック | 最大値を表示します | 
| sum | 削減/クラシック | すべての値の合計を表示します | 
| count | 削減/クラシック | 結果の値の数をカウントします | 
| last | 削減/クラシック | 最後の値を表示します | 
| median | 削減/クラシック | 中央値を表示します。 | 
| diff | クラシック | 最も新しい値と最も古い値の差を表示します。 | 
| diff\$1abs | クラシック | diff の絶対値を表示します。 | 
| percent\$1diff | Classic | 最も新しい値と最も古い値の差の割合値を表示します。 | 
| percent\$1diff\$1abs | Classic | percent\$1diff の絶対値を表示します | 
| count\$1non\$1null | Classic | 結果セット内の値のうち、null でない値の数を表示します。 | 

## アラート条件
<a name="v10-alerting-explore-rules-queries-alert-condition"></a>

アラート条件は、アラートが発射するかどうかを決定するクエリまたは式です。この条件は、アラートが生成する値に応じて決定されます。アラートのトリガーを決定する条件は 1 つだけです。

クエリや式を定義したら、そのいずれかをアラートルール条件として選択します。

クエリされたデータが定義された条件を満たすと、Grafana は関連付けられたアラートをトリガーします。このアラートは、E メール、Slack、PagerDuty などのさまざまなチャネルを介して通知を送信するように設定できます。通知は、満たされている条件について通知するため、適切なアクションを実行したり、根本的な問題を調査したりできます。

デフォルトでは、最後に追加された式がアラート条件として使用されます。

## 復旧しきい値
<a name="v10-alerting-explore-rules-queries-recovery-threshold"></a>

アラートのフラッピングのノイズを減らすには、アラートしきい値とは異なる復旧しきい値を設定します。

アラートのフラッピングは、メトリクスがアラートのしきい値条件を超えた場合に発生し、頻繁な状態の変化につながる可能性があり、生成される通知が多すぎます。

Grafana 管理のアラートルールは、特定の期間にわたって評価されます。各評価中、クエリの結果はアラートルールで設定されたしきい値に対してチェックされます。メトリクスの値がしきい値を超えると、アラートルールが生成され、通知が送信されます。値がしきい値を下回り、このメトリクスに対してアクティブなアラートがある場合、アラートが解決され、別の通知が送信されます。

ノイズの多いメトリクスのアラートルールを作成するのは難しい場合があります。つまり、メトリクスの値が継続的にしきい値を上回ったり下回ったりする場合です。これはフラッピングと呼ばれ、一連の発射 - 解決 - 発射通知とノイズの多いアラート状態履歴になります。

例えば、しきい値が 1000 ミリ秒のレイテンシーのアラートがあり、その数が 1000 の周囲 (例えば、980 ->1010 -> 990 -> 1020 など) で変動すると、それぞれが通知をトリガーします。

この問題を解決するには、 (カスタム) 復旧しきい値を設定できます。これは基本的に、1 つのしきい値ではなく 2 つのしきい値を持つことを意味します。アラートは、最初のしきい値を超えたときにトリガーされ、2 番目のしきい値を超えたときにのみ解決されます。

例えば、しきい値を 1000 ミリ秒、復旧しきい値を 900 ミリ秒に設定することができます。これにより、アラートルールは 900 ミリ秒未満になり、フラッピングが軽減された場合にのみ発射を停止します。

# アラートインスタンス
<a name="v10-alerting-rules-instances"></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 マネージドアラートは、多次元アラートをサポートします。各アラートルールは、複数のアラートインスタンスを作成できます。これは、1 つの式で複数のシリーズを観察する場合に強力です。

次の PromQL 式を検討してください。

```
sum by(cpu) (
  rate(node_cpu_seconds_total{mode!="idle"}[1m])
)
```

この式を使用するルールは、最初の評価後に監視している CPU の数と同じ数のアラートインスタンスを作成し、単一のルールで各 CPU のステータスをレポートできるようにします。

# 名前空間、フォルダ、グループ
<a name="v10-alerting-rules-grouping"></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 マネージドルールのフォルダと、Mimir、Loki、または Prometheus のルールとグループ名の名前空間を使用して整理できます。

**名前空間とフォルダ**

Grafana マネージドルールを作成する場合、 フォルダを使用してアクセス制御を実行し、特定のフォルダ内のすべてのルールへのアクセスを許可または拒否できます。

名前空間には 1 つ以上のグループが含まれます。グループ内のルールは、一定の間隔で順番に実行されます。デフォルトの間隔は 1 分です。Grafana Mimi または Loki ルールの名前空間とグループの名前を変更したり、グループ評価間隔を編集したりできます。

**グループ**

グループ内のルールは、一定の間隔で順番に実行されます。つまり、ルールは同時に評価されず、出現順に評価されません。デフォルトの間隔は 1 分です。Grafana Mimir または Loki ルールの名前空間または Loki ルールの名前空間とグループの名前を変更したり、グループ評価間隔を編集したりできます。

**ヒント**  
ルールを異なる間隔で同時に評価したい場合は、異なるグループに保存することを検討してください。

**注記**  
Grafana マネージドアラートルールは、順番ではなく同時に評価されます。

# アラートルールの評価
<a name="v10-alerting-rules-evaluation"></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)」を参照してください。

アラートルールの評価を使用して、アラートルールを評価する頻度と状態の変更速度を決定します。

これを行うには、アラートルールが適切な評価グループにあることを確認し、ユースケースに最適な保留期間を設定する必要があります。

## 評価グループ
<a name="v10-alerting-rules-evaluation-group"></a>

すべてのアラートルールは評価グループの一部です。各評価グループには、アラートルールをチェックする頻度を決定する評価間隔が含まれます。

同じグループ内の**データソースマネージド**アラートルールは順番に評価されますが、異なるグループのアラートルールは同時に評価できます。この機能は、アラートルールの前に記録ルールを評価したい場合に特に便利です。

**Grafana マネージド**アラートルールは、アラートルールグループに関係なく同時に評価されます。デフォルトの評価間隔は 10 秒に設定されています。つまり、Grafana が管理するアラートルールは、10 秒ごとに順番に (例えば 10:00:00、10:00:10、10:00:20 などに) 評価されます。必要に応じて、独自の評価間隔を設定することもできます。

**注記**  
通知ポリシー内の評価グループとアラートのグループ化は異なるものです。通知ポリシーでグループ化すると、同じラベルを共有する複数のアラートを同じ時刻メッセージで送信できます。

## 保留期間
<a name="v10-alerting-rules-evaluation-pending-period"></a>

保留期間を設定することで、一時的な問題に対する不要なアラートを回避できます。

保留期間では、条件に違反している可能性があるためにアラートルールを発射するまでの期間を選択します。

**例**

アラートルールの評価間隔が 30 秒ごとに設定され、保留期間が 90 秒であるとします。

評価は次のように行われます。

[00:30] 最初の評価 - 条件が満たされていない。

[01:00] 2 回目の評価 - 条件に違反している、保留カウンターが開始。**アラートの保留が開始**

[01:30] 3 回目の評価 - 条件に違反している。保留カウンター = 30 秒。**保留中の状態。**

[02:00] 4 回目の評価 - 条件に違反している。保留カウンター = 60 秒**保留中の状態。**

[02:30] 5 回目の評価 - 条件に違反している。保留カウンター = 90 秒。**アラートの発射開始**

アクションを実行する前に一定時間違反状態である必要がある条件がアラートルールにある場合、その状態は次のように変化します。
+ 条件が最初に違反すると、ルールは「保留中」状態になります。
+ ルールは、条件が保留期間という必要な期間にわたって中断されるまで、「保留」状態のままになります。
+ 必要な時間が過ぎると、ルールは「発射」状態になります。
+ 保留期間中に条件の違反が解消された場合、ルールは通常の状態に戻ります。

**注記**  
保留状態をスキップする場合は、保留期間を 0 に設定します。これにより、保留期間を効果的にスキップし、条件が満たされるとすぐにアラートルールの発射が開始されます。

アラートルールが発射されると、アラートインスタンスが生成され、アラートマネージャーに送信されます。

# アラートルールの状態と正常性
<a name="v10-alerting-explore-state"></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)」を参照してください。

アラートルールの状態と正常性は、アラートに関するいくつかの主要なステータスインジケータを理解するのに役立ちます。

*アラートルールの状態 *、*アラートインスタンスの状態*、*アラートルールの正常性*の 3 つの主要なコンポーネントがあります。それぞれに関連はありますが、各コンポーネントは微妙に異なる情報を伝達します。

**アラートルールの状態**

アラートルールは、次に示す状態のいずれかになります。


| State | 説明 | 
| --- | --- | 
| 普通 | 評価エンジンによって返される時系列のいずれも `Pending` または `Firing` 状態ではありません。 | 
| 保留中 | 評価エンジンから返される少なくとも 1 つの時系列は `Pending` です。 | 
| 発射 | 評価エンジンから返される少なくとも 1 つの時系列は `Firing` です。 | 

**注記**  
アラートは最初に `pending` に移行し、次に `firing` に移行します。そのため、アラートが発生する前に少なくとも 2 つの評価サイクルが必要になります。

**アラートインスタンスの状態**

アラートインスタンスは、次に示す状態のいずれかになります。


| State | 説明 | 
| --- | --- | 
| 普通 | 発射も保留中もなく、すべてが正しく機能しているアラートの状態。 | 
| 保留中 | 設定されたしきい値期間未満でアクティブであったアラートの状態。 | 
| [アラート] | 設定されたしきい値期間よりも長くアクティブであったアラートの状態。 | 
| NoData | 設定された時間枠のデータを受信しない状態。 | 
| エラー | アラートルールの評価を試みたときに発生したエラー。 | 

**最後の状態を保持する**

アラートルールは、 `NoData` または `Error` 状態が発生したときに最後の状態を保持するように設定できます。これにより、アラートの発射、解決と再発射の両方が防止されます。通常の評価と同様に、アラートルールは保留期間が経過すると `Pending` から `Firing` に移行します。

**アラートルールの正常性**

アラートルールは、次のいずれかの正常性ステータスとなります。


| State | 説明 | 
| --- | --- | 
| Ok | アラートルールを評価するときにエラーがありません。 | 
| エラー | アラートルールの評価中にエラーが発生しました。 | 
| NoData | ルール評価中に返される少なくとも 1 つの時系列にデータがありません。 | 

**`NoData` および `Error` [の特別なアラート]**

アラートルールの評価で状態 `NoData` または `Error` が生成されると、Grafana アラートは、次の追加ラベルを含むアラートインスタンスを生成します。


| ラベル | 説明 | 
| --- | --- | 
| AlertName | 状態に応じて、`DatasourceNoData` または `DatasourceError` のいずれか。 | 
| datasource\$1uid | 状態の原因となったデータソースの UID。 | 

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

# 通知テンプレートの作成
<a name="v10-alerting-rules-notification-templates"></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 のデフォルトテンプレートは [Go テンプレートシステム](https://golang.org/pkg/text/template)に基づいており、一部のフィールドはテキストとして評価され、他のフィールドは HTML (エスケープに影響する可能性があります) として評価されます。

デフォルトのテンプレート [[default\$1template.go]](https://github.com/grafana/alerting/blob/main/templates/default_template.go) は、カスタムテンプレートの便利なリファレンスとして機能します。

コンタクトポイントに使用するほとんどのフィールドはテンプレート化できるため、再利用可能なカスタムテンプレートを作成し、複数のコンタクトポイントで使用すると良いでしょう。テンプレートを使用したカスタム通知の詳細については、「[通知のカスタマイズ](v10-alerting-manage-notifications.md)」を参照してください。

**テンプレートのネスト**

テンプレートは他のテンプレートに埋め込むことができます。

例えば、 `define` キーワードを使用してテンプレートフラグメントを定義できます。

```
{{ define "mytemplate" }}
  {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved.
{{ end }}
```

その後、 `template` キーワードを使用して、このフラグメント内にカスタムテンプレートを埋め込むことができます。例えば、次のようになります。

```
Alert summary:
{{ template "mytemplate" . }}
```

以下の任意のビルトインのテンプレートオプションを使用して、カスタムテンプレートを埋め込むことができます。


| 名前 | 注意事項 | 
| --- | --- | 
| `default.title` | 全体的なステータス情報を表示します。 | 
| `default.message` | 発生中および解決済みのアラートの概要をフォーマット付きで提供します。 | 
| `teams.default.message` | `default.messsage` と同様に、Microsoft Teams 用にフォーマットされています。 | 

**通知テンプレートの HTML**

アラート通知テンプレートの HTML はエスケープされます。結果の通知では、HTML のレンダリングはサポートされていません。

一部の通知機能は、結果の通知のルックアンドフィールを変更する代替方法をサポートしています。例えば、Grafana は `<grafana-install-dir>/public/emails/ng_alert_notification.html` に E メールをアラートするためのベーステンプレートをインストールします。このファイルを編集して、すべてのアラートメールの外観を変更できます。

# アラートマネージャー
<a name="v10-alerting-explore-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)」を参照してください。

アラートマネージャーを使用すると、アラートを迅速かつ効率的に管理して対応できます。E メールや Slack など選択したチャネルを介して通知を送信することで、アラートを受信し、ミュート、抑制、グループ化、ルーティングを処理します。

Grafana では、Grafana アラートマネージャーまたは外部アラートマネージャーを使用できます。複数のアラートマネージャーを実行することもできます。決定は、セットアップとアラートの生成場所によって異なります。

**Grafana アラートマネージャー**

Grafana アラートマネージャーは、事前設定済みで、デフォルトで選択できる内部アラートマネージャーです。

Grafana アラートマネージャーは Grafana からアラートを受信できますが、Mimir や Loki など、Grafana の外部からアラートを受信することはできません。

**注記**  
禁止ルールは Grafana アラートマネージャーではサポートされていません。

**外部アラートマネージャー**

Grafana、Loki、Mimir、Prometheus のすべてのアラートを受信するために 1 つのアラートマネージャーを使用したい場合は、外部のアラートマネージャーを使用するように Grafana を設定できます。この外部アラートマネージャーは、Grafana 内から設定および管理できます。

Grafana アラートマネージャーの代わりに、独自の外部アラートマネージャーを設定し、そこでアラートを送信する場合の例を 2 つ示します。

1. Prometheus などの他のアラートジェネレーターがあるため、独自のクラウドインフラストラクチャに既にオンプレミスのアラートマネージャーを設定しており、引き続き使用したい場合。

1. Prometheus オンプレミスとホストされた Grafana の両方を使用して、クラウドインフラストラクチャで実行されるのと同じアラートマネージャーにアラートを送信したい場合。

アラートマネージャーは、[コンタクトポイントのアラート] および [通知ポリシー] ページのドロップダウンメニューに表示されます。

データソースをプロビジョニングする場合は、`jsonData` フィールドの `handleGrafanaManagedAlerts` フラグを `true` に設定して、Grafana が管理するアラートをこのアラートマネージャーに送信します。

# コンタクトポイント
<a name="v10-alerting-explore-contacts"></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)」を参照してください。

コンタクトポイントには、通知を送信するための設定が含まれています。コンタクトポイントは統合のリストであり、それぞれが特定の E メールアドレス、サービス、または URL に通知を送信します。コンタクトポイントには、同じ種類の複数の統合、または異なる種類の統合の組み合わせを含めることができます。例えば、コンタクトポイントには、Pagerduty 統合、Amazon SNS と Slack 統合、または Pagerduty 統合、Slack 統合、および 2 つの Amazon SNS 統合を含めることができます。統合なしでコンタクトポイントを設定することもできますが、その場合、通知は送信されません。

コンタクトポイントは、通知ポリシーに追加されるまで通知を送信できません。通知ポリシーは 1 つのコンタクトポイントにのみアラートを送信できますが、複数の通知ポリシーに同時にコンタクトポイントを追加できます。アラートが通知ポリシーと一致すると、アラートはその通知ポリシーのコンタクトポイントに送信され、その通知ポリシーはその設定の各統合に通知を送信します。

Grafana アラートマネージャーと外部アラートマネージャーのコンタクトポイントを設定できます。

通知テンプレートを使用して、コンタクトポイントタイプの通知メッセージをカスタマイズすることもできます。

**サポートされているコンタクトポイントタイプ**

次の表に、Grafana でサポートされているコンタクトポイントのタイプを示します。


| 名前 | タイプ | 
| --- | --- | 
| Amazon SNS | `sns` | 
| OpsGenie | `opsgenie` | 
| Pager Duty | `pagerduty` | 
| Slack | `slack` | 
| VictorOps | `victorops` | 

コンタクトポイントの詳細については、「[コンタクトポイントの設定](v10-alerting-configure-contactpoints.md)」と「[通知のカスタマイズ](v10-alerting-manage-notifications.md)」を参照してください。

# 通知
<a name="v10-alerting-explore-notifications"></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)」を参照してください。

アラート通知を送信する方法、タイミング、および場所を選択することは、アラートシステムを設定する上で重要です。これらの決定は、問題を迅速に解決し、重要なものを見逃さない能力に直接影響します。

最初のステップとして、アラート通知の送信先を定義する[コンタクトポイント](v10-alerting-explore-contacts.md)を定義します。コンタクトポイントは、通知の配信に使用される 1 つ以上の統合のセットです。通知テンプレートをコンタクトポイントに追加して、通知の再利用と一貫したメッセージングを行います。

次に、アラートがコンタクトポイントにルーティングされる場所、タイミング、方法に関する一連のルールである通知ポリシーを作成します。通知ポリシーでは、作成したコンタクトポイントのいずれかを選択して、アラート通知を送信する場所を定義します。

## アラートマネージャー
<a name="v10-alerting-explore-notifications-alertmanager"></a>

Grafana はアラートマネージャーを使用して、アラートの発射と解決の通知を送信します。Grafana には、ユーザーインターフェイスで **Grafana** と呼ばれる独自のアラートマネージャーがありますが、[Prometheus アラートマネージャー](https://prometheus.io/docs/alerting/latest/alertmanager/)などの他のアラートマネージャーからの通知の送信もサポートしています。Grafana アラートマネージャーは、通知ポリシーと問い合わせポイントを使用して、通知の送信方法と送信先、通知の送信頻度、アラートをすべて同じ通知で送信するか、ラベルのセットに基づいてグループ化された通知で送信するか、個別の通知として送信するかを設定します。

## 通知ポリシー
<a name="v10-alerting-explore-notifications-policies"></a>

通知ポリシーは、通知の送信日時と送信場所を制御します。通知ポリシーでは、すべてのアラートを同じ通知でまとめて送信するか、ラベルのセットに基づいてグループ化された通知でアラートを送信するか、個別の通知としてアラートを送信するかを選択できます。各通知ポリシーを設定して、通知の送信頻度を制御するだけでなく、1 日の特定時刻および特定の曜日に通知を禁止するための 1 つ以上のミュートタイミングを設定することもできます。

通知ポリシーは、ツリーのルートにデフォルトポリシーと呼ばれる通知ポリシーがあるツリー構造で構成されています。デフォルトポリシーは 1 つだけ設定でき、削除できません。

特定のルーティングポリシーはルートポリシーの子であり、一致するラベルのセットに基づいてすべてのアラートまたはアラートのサブセットを照合するために使用できます。通知ポリシーは、一致するラベルがアラート内のラベルと一致するときにアラートと一致します。

ネストされたポリシーには独自のネストされたポリシーを含めることができ、アラートの追加マッチングが可能になります。ネストされたポリシーの例としては、Ops チームにインフラストラクチャアラートを送信する場合があります。子ポリシーは、Pagerduty に高優先度アラートを送信し、Slack に低優先度アラートを送信することができます。

ラベルに関係なく、すべてのアラートはデフォルトのポリシーと一致します。ただし、デフォルトのポリシーがアラートを受信すると、ネストされた各ポリシーが調査され、アラートに一致する最初のネストされたポリシーにアラートが送信されます。ネストされたポリシーにさらにネストされたポリシーがある場合、ネストされたポリシーの 1 つとアラートとのマッチングを試行できます。ネストされたポリシーがアラートと一致しない場合、ポリシー自体が一致するポリシーになります。ネストされたポリシーがない場合、またはネストされたポリシーがアラートと一致しない場合、デフォルトのポリシーは一致するポリシーです。

通知ポリシーの詳細については、「[通知ポリシー](v10-alerting-explore-notifications-policies-details.md)」を参照してください。

## 通知テンプレート
<a name="v10-alerting-explore-notifications-templating"></a>

テンプレートを使用して通知をカスタマイズできます。例えば、テンプレートを使用して、Slack に送信される通知のタイトルとメッセージを変更することができます。

テンプレートは個々の統合やコンタクトポイントに限定されず、同じコンタクトポイント内の多数の統合や、異なるコンタクトポイント間の統合でも使用できます。例えば、Grafana ユーザーは、`custom_subject_or_title` というテンプレートを作成し、2 つの個別のテンプレートを作成することなく、Pager Duty のテンプレート件名と Slack メッセージのタイトルの両方に使用できます。

すべての通知テンプレートはアラートページの [コンタクトポイント] タブにあり、[[Go のテンプレート言語]](https://pkg.go.dev/text/template)で記述されます。

通知のカスタマイズの詳細については、「[通知のカスタマイズ](v10-alerting-manage-notifications.md)」を参照してください。

## サイレンス
<a name="v10-alerting-explore-notifications-silences"></a>

サイレンスを使用して、1 つ以上の発射ルールからの通知をミュートできます。サイレンスは、アラートの発射や解決を停止したり、ユーザーインターフェイスで発射アラートを非表示にしたりしません。サイレンスは、分、時間、日、月、または年で設定し、その期間だけ続きます。

サイレンスの使用の詳細については、「[アラート通知のサイレンシング](v10-alerting-silences.md)」を参照してください。

# 通知ポリシー
<a name="v10-alerting-explore-notifications-policies-details"></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)」を参照してください。

通知ポリシーにより、さまざまな受信者にアラートをルーティングする柔軟な方法が提供されます。ラベルマッチャーを使用すると、個々のアラートルールをすべて更新することなく、アラート通知配信を変更できます。

このセクションでは、通知ポリシーの設定を最大限に活用できるように、通知ポリシーの仕組みと構造について詳しく説明します。

## ポリシーツリー
<a name="v10-alerting-explore-notifications-policy-tree"></a>

通知ポリシーはリスト*ではなく*、ツリー構造に従って構造化されます。つまり、各ポリシーに子ポリシーなどを含めることができます。通知ポリシーツリーのルートは、**デフォルトの通知ポリシー**と呼ばれます。

各ポリシーは、処理に関心がないラベルを指定する一連のラベルマッチャー (0 以上) で構成されます。

ラベルの一致の詳細については、「[ラベル一致の仕組み](v10-alerting-overview-labels-matching.md)」を参照してください。

**注記**  
通知ポリシーにラベルマッチャーを設定していない場合、通知ポリシーは*すべての*アラートインスタンスと一致します。これにより、通知ポリシーで **[兄弟の照合の続行]** を有効にしない限り、子ポリシーが評価されない場合があります。

## ルーティング
<a name="v10-alerting-explore-notifications-routing"></a>

どの通知ポリシーがどのアラートインスタンスを処理するかを決定するには、既定の通知ポリシーから開始して、既存の通知ポリシーのセットを確認する必要があります。

デフォルトポリシー以外のポリシーが設定されていない場合は、デフォルトポリシーがアラートインスタンスを処理します。

デフォルトポリシー以外のポリシーが定義されている場合は、それらの通知ポリシーが表示される順序で評価されます。

通知ポリシーにアラートインスタンスのラベルと一致するラベルマッチャーがある場合、通知ポリシーは子ポリシーに降りてきます。子ポリシーがある場合は、ラベルのセットをさらに絞り込むラベルマッチャーを持つ可能性のある子ポリシーを探し続け、子ポリシーが見つからなくなるまで続行されます。

通知ポリシーで子ポリシーが定義されていない場合、またはアラートインスタンスのラベルに一致するラベルマッチャーが子ポリシーにない場合、親通知ポリシーが使用されます。

一致するポリシーが見つかるとすぐに、システムは他の一致するポリシーの検索を中止します。一致する可能性のある他のポリシーを引き続き検索する場合は、その特定のポリシーで **[兄弟の照合の続行]**を有効にします。

最後に、どの通知ポリシーも選択されていない場合は、デフォルトの通知ポリシーが使用されます。

### ルーティングの例
<a name="v10-alerting-explore-notifications-routing-example"></a>

以下は、比較的単純な通知ポリシーツリーといくつかのアラートインスタンスの例です。

![\[ツリー構造内の通知ポリシーのセットと、ポリシーに一致するラベルが異なるアラートインスタンスのセットを示す画像。\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/images/notification-routing.png)


これらのポリシーの選択方法の内訳を次に示します。

**[CrashLoop でスタックされた Pod]**には `severity` ラベルがないため、子ポリシーは一致しません。`team=operations` ラベルが付いているため、最初のポリシーは一致します。

一致が既に見つかり、**[兄弟の照合の続行]**がそのポリシーに設定されていないため、`team=security` ポリシーは評価されません。

**ディスク使用量 – 80%** には `team` と `severity` の両方のラベルがあり、オペレーションチームの子ポリシーと一致します。

**許可されていないログエントリ**には `team` ラベルがありますが、値が同じではないことを理由として最初のポリシー (`team=operations`) と一致しないため、検索が続行され、`team=security` ポリシーと一致します。子ポリシーがないため、追加の `severity=high` ラベルは無視されます。

## 継承
<a name="v10-alerting-explore-notifications-inheritance"></a>

子ポリシーは、アラートインスタンスのルーティングに役立つ概念であるだけでなく、親ポリシーからプロパティを継承します。これは、デフォルトの通知ポリシーの子ポリシーであるポリシーにも適用されます。

次のプロパティは子ポリシーによって継承されます。
+ コンタクトポイント
+ オプションのグループ化
+ タイミングオプション
+ ミュートタイミング

継承されたプロパティを上書きする場合は、これらのプロパティを個々のポリシーで上書きします。

親ポリシーからコンタクトポイントを継承するには、空白のままにします。継承されたグループ化オプションを上書きするには、**[グループ化の上書き]** を有効にします。継承されたタイミングオプションを上書きするには、**[一般的なタイミングの上書き]** を有効にします。

### 継承の例
<a name="v10-alerting-explore-notifications-inheritance-example"></a>

次の例は、前の例の通知ポリシーツリーで `team=operations` の子ポリシーがコンタクトポイントを継承する方法を示しています。

これにより、子ポリシーごとに同じコンタクトポイントを複数回指定する必要を回避できます。

![\[ツリー構造内の一連の通知ポリシーを示す画像。一部のポリシーにはコンタクトポイントが割り当てられますが、一部の子ポリシーは、独自のポリシーを定義するのではなく、親のコンタクトポイントを継承します。\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/images/notification-inheritance.png)


## 追加設定のオプション
<a name="v10-alerting-explore-notifications-additional-configuration-options"></a>

### グループ化
<a name="v10-alerting-explore-notifications-grouping"></a>

グループ化は Grafana アラートの重要な機能です。これにより、関連するアラートをバッチ処理して通知の数を減らすことができます。これは、エンジニアオンコールなどのファーストレスポンダーに通知が配信される場合に特に重要であります。ファーストレスポンダーが短期間に多くの通知を受信すると圧倒され、場合によってはインシデントに対応する能力に悪影響を及ぼす可能性があります。例えば、多くのシステムがダウンしている大規模な障害を考えてみましょう。この場合、グループ化は、1 回の通話と 100 回の通話の受信の違いになります。

通知ポリシーの Group by オプションを使用して、アラートをグループ分けする方法を選択します。デフォルトでは、Grafana グループの通知ポリシーは、`alertname` および `grafana_folder` ラベルを使用してアラートルールによって一緒にアラートを発します (アラート名は複数のフォルダで一意ではないため)。アラートルール以外の方法でアラートをグループ分けする場合は、グループ化をラベルの他の組み合わせに変更します。

#### グループ化を無効にする
<a name="v10-alerting-explore-notifications-disable-grouping"></a>

すべてのアラートを個別の通知として受信する場合は、 `...` という特別なラベルでグループ化することで受信できます。これは、アラートがファーストレスポンダーではなく自動システムに配信される場合に便利です。

#### すべてのアラートを含む単一のグループ
<a name="v10-alerting-explore-notifications-a-single-group-for-all-alerts"></a>

すべてのアラートを 1 つの通知でまとめて受信する場合は、グループを空のままにすると受信できます。

### タイミングオプション
<a name="v10-alerting-explore-notifications-timing-options"></a>

タイミングオプションは、アラートグループごとに通知が送信される頻度を決定します。知っておくべきタイマーは、グループ待機、グループ間隔、繰り返し間隔の 3 つです。

#### グループ待機
<a name="v10-alerting-explore-notifications-group-wait"></a>

グループ待機は、新しいアラートグループの最初の通知を送信するまでに Grafana が待機する時間です。グループの待機時間が長いほど、他のアラートが到着する時間が長くなります。グループの待機時間が短いほど、最初の通知は早く送信されますが、不完全な通知を送信するリスクがあります。ユースケースに最も適したグループ待機を常に選択するようにするべきです。

**デフォルト**: 30 秒

#### グループ間隔
<a name="v10-alerting-explore-notifications-group-interval"></a>

アラートの新しいグループに対して最初の通知が送信されると、Grafana はグループ間隔タイマーを開始します。これは、変更に関する通知をグループに送信する前に Grafana が待機する時間です。例えば、既存のアラートが解決されている間に、別の発射アラートがグループに追加される場合があります。グループの待機が原因でアラートが最初の通知に含めるのに遅すぎる場合、グループの間隔が過ぎた後の後続の通知に含まれます。グループ間隔が経過すると、Grafana はグループ間隔タイマーをリセットします。これは、グループが削除された後にグループ内にアラートがなくなるまで繰り返されます。

**デフォルト**: 5 分

#### 繰り返し間隔
<a name="v10-alerting-explore-notifications-repeat-interval"></a>

繰り返し間隔は、最後の通知以降にグループが変更されていない場合に通知を繰り返す頻度を決定します。これらは、一部のアラートがまだ発せられていることのリマインダーと考えることができます。繰り返し間隔はグループ間隔と密接に関連しています。つまり、繰り返し間隔はグループ間隔以上であるだけでなく、グループ間隔の倍数である必要があります。繰り返し間隔がグループ間隔の倍数でない場合、1 に強制されます。例えば、グループ間隔が 5 分で、繰り返し間隔が 9 分の場合、繰り返し間隔は最も近い 5 の倍数である 10 分に切り上げられます。

**デフォルト**: 4 時間

# 高可用性のアラート
<a name="v10-alerting-explore-high-availability"></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)」を参照してください。

Amazon Managed Grafana は、作成するワークスペースごとに複数のアベイラビリティーゾーンで複数のインスタンスを実行するなど、高可用性用に設定されています。

Grafana アラートは、通知の配信からアラートルールの評価を分離する Prometheus モデルを使用しています。このモデルでは、アラートルールの評価はアラートジェネレーターで行われ、通知の配信はアラートレシーバーで行われます。Grafana アラートでは、アラートジェネレーターはスケジューラで、レシーバーはアラートマネージャーです。

高可用性設定では、すべてのアラートルールがすべてのインスタンスで評価されます。アラートルールの評価は、重複していると考えることができます。これにより、Grafana アラートは、少なくとも 1 つの Grafana インスタンスが動作している限り、アラートルールが評価され、アラートの通知が送信されることを保証します。この重複は状態履歴に表示され、高可用性を使用しているかどうかを判別するのに役立ちます。

# アラートの設定
<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 を再起動するか、ホットリロードを実行します。これにより、ファイルが再度プロビジョニングされた場合やホットリロードが実行された場合に上書きされるリソースへの変更を防止します。

# アラートを設定する
<a name="v10-alerting-configure"></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)」を参照してください。

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

**Topics**
+ [Grafana マネージドアラートルールを設定する](v10-alerting-configure-grafanamanaged.md)
+ [データソースマネージドアラートルールを設定する](v10-alerting-configure-datasourcemanaged.md)
+ [記録ルールを設定する](v10-alerting-configure-recordingrules.md)
+ [コンタクトポイントの設定](v10-alerting-configure-contactpoints.md)
+ [通知ポリシーを設定する](v10-alerting-configure-notification-policies.md)

# Grafana マネージドアラートルールを設定する
<a name="v10-alerting-configure-grafanamanaged"></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 マネージドルールは、最も柔軟なアラートルールの種類です。これにより、サポートされている任意のデータソースのデータに対して動作するアラートを作成できます。複数のデータソースをサポートするだけでなく、式を追加してデータを変換し、アラート条件を設定することもできます。アラート通知での画像の使用もサポートされています。これは、単一のルール定義で複数のデータソースからのアラートを許可する唯一のルールタイプです。

1 つのアラートルール (多次元アラートとも呼ばれます) の結果として、複数のアラートインスタンスを作成できます。

Grafana マネージドアラートルールは、ルールを保存するフォルダの編集権限を持つユーザーのみが編集または削除できます。

UI で作成されたアラートリソースを削除すると、そのリソースを取得できなくなります。設定のバックアップを作成し、削除されたアラートリソースを復元できるようにするには、Terraform またはアラート API を使用してアラートリソースを作成します。

以下の手順では、Grafana マネージドアラートルールを作成するプロセスについて説明します。

Grafanaマネージドアラートルールを作成するには、ワークスペース内のアラート作成フローを使用し、以下の手順に従います。

**アラートルール名を設定する**

1. **[アラート]** -> **[アラートルール]** -> **[\$1 新しいアラートルール]** を選択します。

1. アラートルールを識別する名前を入力します。

   この名前はアラートルールリストに表示されます。またこの名前は、このルールから作成されるすべてのアラートインスタンスの `alertname` ラベルにもなります。

次に、測定するデータと、アラートルールを起動する前に満たす必要がある条件を取得するクエリを定義します。

**クエリと条件の定義方法**

1. データソースの選択。

1. **[オプション]** ドロップダウンから、[[時間範囲]](v10-dash-using-dashboards.md#v10-dash-setting-dashboard-time-range) を指定します。
**注記**  
Grafana アラートは、`now-24hr: now` などの固定相対時間範囲のみをサポートします。  
絶対時間範囲 `2021-12-02 00:00:00 to 2021-12-05 23:59:592` または半相対時間範囲 `now/d to: now` はサポートされていません。

1. クエリを追加します。

   複数の[クエリ](v10-panels-query-xform.md#v10-panels-query-xform-add)を追加するには、**[クエリの追加]** を選択します。

   すべてのアラートルールは、デフォルトで Grafana が管理します。データソース管理のアラートルールに切り替える場合は、**[データソースマネージドアラートルールに切り替える]** をクリックします。

1. 1 つ以上の[式](v10-panels-query-xform-expressions.md)を追加します。

   1. 式ごとに **[クラシック条件]**を選択して単一のアラートルールを作成するか、**[Math]**、**[削減]**、**[リサンプリング]** オプションから選択して、各シリーズに個別のアラートを作成します。
**注記**  
Prometheus を使用する場合、インスタントベクトルと組み込み関数を使用できます。そのため、式を追加する必要はありません。

   1. **[プレビュー]** を選択して、式が成功したことを確認します。

1. [オプション] 復旧しきい値を追加するには、**[カスタム復旧しきい値]** のトグルをオンにして、アラートルールが発射を停止するタイミングの値を入力します。

   クエリに追加できる復旧しきい値は 1 つだけで、アラート条件である必要があります。

1. アラート条件を設定するクエリまたは式で **[Set as alert condition (アラート条件として設定)]** を選択します。

アラートルールの評価を使用して、アラートルールを評価する頻度と状態の変更速度を決定します。

これを行うには、アラートルールが適切な評価グループにあることを確認し、ユースケースに最適な保留期間を設定する必要があります。

**アラート評価の動作の設定方法**

1. フォルダを選択するか、**[\$1 新しいフォルダ]** を選択します。

1. 評価グループを選択するか、**[\$1 新しい評価グループ]** を選択します。

   新しい評価グループを作成するには、グループの間隔を指定します。

   同じグループ内のすべてのルールは、同じ時間間隔で同時に評価されます。

1. 保留期間を入力します。

   保留期間は、アラートルールが発射するまで条件に違反している可能性がある期間です。

   条件が満たされると、アラートは**保留**状態になります。指定された期間、条件がアクティブなままの場合、アラートは**発射**状態に移行します。アクティブでない場合は**[普通]**状態に戻ります。

1. 必要に応じて、アラート通知の一時停止を有効にします。
**注記**  
アラートルールの評価を一時停止して、アラートの調整中にノイズの多いアラートが発生しないようにします。一時停止すると、アラートルールの評価が停止し、アラートインスタンスは作成されません。これは、通知の配信を停止するミュートのタイミングとは異なりますが、アラートルールの評価とアラートインスタンスの作成は可能です。  
アラートの調整中にアラートルールの評価を一時停止して、ノイズの多いアラートを防ぐことができます。一時停止すると、アラートルールの評価が停止し、アラートインスタンスは作成されません。これは、通知の配信を停止するミュートのタイミングとは異なりますが、アラートルールの評価とアラートインスタンスの作成は可能です。

1. **[Configure no data and error handling]** (データなしとエラー処理の設定) で、データがない場合のアラート動作を設定します。

   このセクションの後半のガイドラインに従います。

アラートルールにラベルを追加して、発射アラートインスタンスを処理する通知ポリシーを設定します。

ラベルに関係なく、すべてのアラートルールとインスタンスはデフォルトの通知ポリシーと一致します。ネストされたポリシーがない場合、またはネストされたポリシーがアラートルールまたはアラートインスタンスのラベルと一致しない場合、デフォルトの通知ポリシーは一致するポリシーです。

**通知を設定するには**

1. 通知のルーティング方法を変更するには、ラベルを追加します。

   ドロップダウンから既存のキーと値のペアを選択してカスタムラベルを追加するか、新しいキーまたは値を入力して新しいラベルを追加します。

1. アラートインスタンスのルーティング設定をプレビューします。

   追加されたラベルに基づいて、アラートインスタンスは表示された通知ポリシーにルーティングされます。

   各通知ポリシーを展開して、詳細を表示します。

1. **[詳細を表示]** を選択して、アラートルーティングの詳細とプレビューを表示します。

[注釈](v10-alerting-overview-labels.md#v10-alerting-overview-labels-annotations)を追加して、アラート通知メッセージにアラートに関するコンテキストをさらに提供できます。

注釈は、アラート通知メッセージのアラートに関する詳細情報を提供するメタデータを追加します。例えば、アラートが発生した値や発生したサーバーを示す**サマリー**注釈を追加します。

**注釈を追加するには**

1. [オプション] 概要を追加します。

   何が起こったのか、その理由の簡単な概要。

1. (オプション) 説明を追加します。

   アラートルールの動作の説明。

1. [オプション] ランブック URL を追加します。

   アラートのランブックを保持するウェブページ

1. [オプション] カスタム注釈を追加します

1. [オプション] ダッシュボードとパネルリンクを追加します。

   アラートをダッシュボードのパネルにリンクします。

1. **[ルールを保存]** を選択します。

**1 次元ルールと多次元ルール**

Grafana マネージドアラートの場合、従来の条件を使用してルールを作成することも、多次元ルールを作成することもできます。
+ **クラシック条件のルール**

  従来の条件式を使用して、条件が満たされたときに単一のアラートを発射するルールを作成します。複数のシリーズを返すクエリの場合、Grafana は各シリーズのアラート状態を追跡しません。そのため、複数のシリーズでアラート条件が満たされた場合でも、Grafana が送信するアラートは 1 件のみです。
+ **多次元ルール**

  シリーズごとに個別のアラートを生成するには、多次元ルールを作成します。`Math`、`Reduce`、または `Resample` 式を使用して、多次元ルールを作成します。例:
  + 各クエリの `Reduce` 式を追加して、選択した時間範囲の値を 1 つの値に集計します ([数値データを使用するルール](v10-alerting-overview-numeric.md)には必要ありません)。
  + ルールの条件を含む `Math` 式を追加します。クエリまたは縮小式が、ルールが発射されない場合に `0` を、発射すべき場合は正の数を返すのならば不要です。例: B クエリ/式が 70 を超える時に発射する場合は `$B > 70`。B の値が C の値に 100 を掛けた時に発射する場合は `$B < $C * 100`。比較対象のクエリの結果に複数のシリーズがある場合、異なるクエリのシリーズが同じラベルを持っているか、一方が他方のサブセットである場合に一致します。

**注記**  
Grafana は、テンプレート変数を使用したアラートクエリはサポートしていません。詳細については、[https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514](https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514) を参照してください。

**データなしまたはエラー処理の設定**

アラートルールの評価がデータなしまたはエラーを返すアラートルール評価時のアラート行動を設定します。

**注記**  
評価がデータなしまたはエラーを返したときに発射するように設定されているアラートルールは、評価期間全体が終了したときにのみ発動します。つまり、アラートルール条件に違反した場合にすぐに発射するのではなく、アラートルールは **For** フィールドとして設定された時間が終了するまで待機してから発車することで、アラートノイズを減らし、一時的なデータ可用性の問題を回避します。

アラートルールの評価でデータなしが返される場合は、次のようにアラートルールの状態を設定できます。


| データなし | 説明 | 
| --- | --- | 
| データなし | アラートルールの名前と UID、およびラベルとしてデータを返さないデータソースの UID を使用した新しいアラート DatasourceNoData を作成します。 | 
| [アラート] | アラートルールの状態を Alerting に設定します。アラートルールは、For フィールドで設定された時間が終わるまで待機してから発射します。 | 
| OK | アラートルールの状態を Normal に設定します。 | 

評価でエラーが返された場合は、アラートルールの状態を次のように設定できます。


| エラー | 説明 | 
| --- | --- | 
| エラー | アラートルールの名前と UID、およびラベルとしてデータを返さないデータソースの UID を使用したアラートインスタンス DatasourceError を作成します。 | 
| [アラート] | アラートルールの状態を Alerting に設定します。アラートルールは、For フィールドで設定された時間が終わるまで待機してから発射します。 | 
| OK | アラートルールの状態を Normal に設定します。 | 

**古いアラートインスタンスを解決する**

アラートインスタンスのディメンションまたはシリーズが 2 つの評価間隔でクエリ結果から完全に消えた場合、アラートインスタンスは「古い」と見なされます。

`Alerting`/`NoData`/`Error` 状態にある古いアラートインスタンスは、自動的に `Resolved` とマークされ、`grafana_state_reason` 注釈が理由 `MissingSeries` でアラートインスタンスに追加されます。

**パネルからアラートを作成する**

任意のパネルタイプからアラートを作成します。つまり、パネル内のクエリを再利用し、それに基づいてアラートを作成できます。

1. ダッシュボードセクションの**[ダッシュボード]** に移動します。

1. パネルの右上隅で、3 つのドット (楕円) を選択します。

1. ドロップダウンメニューから、**[More...]** (その他...) を選択し、**[新しいアラートルール]** を選択します。

これにより、アラートルールフォームが開き、現在のパネルのクエリーに基づいてアラートを設定および作成できます。

# データソースマネージドアラートルールを設定する
<a name="v10-alerting-configure-datasourcemanaged"></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)」を参照してください。

Ruler API が有効になっている外部 Grafana Mimir または Loki インスタンスのアラートルールを作成します。これらは、データソースマネージドアラートルールと呼ばれます。

**注記**  
外部 Grafana Mimir または Loki インスタンスのアラートルールは、エディタまたは管理者ロールを持つユーザーが編集または削除できます。  
UI で作成されたアラートリソースを削除すると、そのリソースを取得できなくなります。設定のバックアップを作成し、削除されたアラートリソースを復元できるようにするには、Terraform またはアラート API を使用してアラートリソースを作成します。

**前提条件**
+ Prometheus または Loki データソースへの書き込みアクセス権限があることを確認します。それ以外の場合、Grafana Mimir 管理のアラートルールを作成または更新することはできません。
+ Grafana Mimir および Loki データソースの場合、それぞれのサービスを設定して Ruler API を有効にします。
  + **Loki** - Loki データソースのデフォルトである `local` ルールストレージタイプは、ルールの表示のみをサポートしています。ルールを編集するには、他のルールストレージタイプのいずれかを設定します。
  + **Grafana Mimir** - `/prometheus` プレフィックスを使用します。Prometheus データソースは Grafana Mimir と Prometheus の両方に対応しており、Grafana は[クエリ API](https://grafana.com/docs/mimir/latest/operators-guide/reference-http-api/#querier--query-frontend) と [Ruler API](https://grafana.com/docs/mimir/latest/operators-guide/reference-http-api/#ruler) の両方が同じ URL にあることを想定しています。Ruler API に別の URL を指定することはできません。

**注記**  
特定の Loki または Prometheus データソースのアラートルールを管理しない場合は、その設定に移動し、**[Manage alerts via alerting UI]** (アラート UI 経由でアラートを管理する) チェックボックスをオフにします。

次の手順では、データソースマネージドアラートルールを作成するプロセスについて説明します。

データソース管理のアラートルールを作成するには、ワークスペース内のアラート作成フローを使用し、以下の手順に従います。

**アラートルール名の設定方法**

1. **[アラート]** -> **[アラートルール]** -> **[\$1 新しいアラートルール]** を選択します。

1. アラートルールを識別する名前を入力します。

   この名前はアラートルールリストに表示されます。またこの名前は、このルールから作成されるすべてのアラートインスタンスの `alertname` ラベルにもなります。

測定するデータと、アラートルールを起動する前に満たす必要がある条件を取得するクエリを定義します。

**クエリと条件の定義方法**

1. すべてのアラートルールは、デフォルトで Grafana が管理します。データソースマネージドアラートルールに切り替えるには、**[データソースマネージドアラートルールに切り替える]** を選択します。

1. ドロップダウンリストからデータソースを選択する。

   **[高度なデータソースピッカーを開く]** を選択して、データソースの追加 (管理者のみ可能) など、その他のオプションを表示することもできます。

1. PromQL または LogQL クエリを入力します。

1. **[アラートのプレビュー]** を選択します。

アラートルールの評価を使用して、アラートルールを評価する頻度と状態の変更速度を決定します。

**アラート評価の動作の設定方法**

1. 名前空間を選択するか、**[\$1 新しい名前空間]** を選択します。

1. 評価グループを選択するか、**[\$1 新しい評価グループ]** を選択します。

   新しい評価グループを作成するには、グループの間隔を指定します。

   同じグループ内のすべてのルールは、同じ時間間隔で順番に評価されます。

1. 保留期間を入力します。

   保留期間は、アラートルールが発射するまで条件に違反している可能性がある期間です。

   条件が満たされると、アラートは `Pending` 状態に入ります。指定された期間、条件がアクティブなままの場合、アラートは `Firing` 状態に移行します。アクティブでない場合は `Normal` 状態に戻ります。

アラートルールにラベルを追加して、発射アラートインスタンスを処理する通知ポリシーを設定します。

ラベルに関係なく、すべてのアラートルールとインスタンスはデフォルトの通知ポリシーと一致します。ネストされたポリシーがない場合、またはネストされたポリシーがアラートルールまたはアラートインスタンスのラベルと一致しない場合、デフォルトの通知ポリシーは一致するポリシーです。

**通知の設定**
+ 通知のルーティング方法を変更するには、ラベルを追加します。

  ドロップダウンから既存のキーと値のペアを選択してカスタムラベルを追加するか、新しいキーまたは値を入力して新しいラベルを追加します。

[注釈](v10-alerting-overview-labels.md#v10-alerting-overview-labels-annotations)を追加して、アラート通知にアラートに関するコンテキストをさらに提供できます。

注釈は、アラート通知のアラートに関する詳細情報を提供するメタデータを追加します。例えば、アラートが発生した値や発生したサーバーを示す `Summary` 注釈を追加します。

**注釈を追加するには**

1. [オプション] 概要を追加します。

   何が起こったのか、その理由の簡単な概要。

1. (オプション) 説明を追加します。

   アラートルールの動作の説明。

1. [オプション] ランブック URL を追加します。

   アラートのランブックを保持するウェブページ

1. [オプション] カスタム注釈を追加します

1. [オプション] ダッシュボードとパネルリンクを追加します。

   アラートをダッシュボードのパネルにリンクします。

1. **[ルールを保存]** を選択します。

# 記録ルールを設定する
<a name="v10-alerting-configure-recordingrules"></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 Mimir または Loki インスタンスの記録ルールを作成および管理することができます。記録ルールは、頻繁に必要になる式や計算負荷の高い式を事前に計算し、その結果を新しい時系列セットとして保存します。この新しい時系列のクエリは、特にダッシュボードでは、ダッシュボードが更新されるたびに同じ式をクエリするため、より高速になります。

**注記**  
記録ルールはインスタンスルールとして実行され、10 秒ごとに実行されます。

**前提条件**
+ Prometheus または Loki データソースへの書き込みアクセス権限があることを確認します。データソースでアラートルールを作成または更新します。
+ Grafana Mimir および Loki データソースの場合、それぞれのサービスを設定して Ruler API を有効にします。
  + **Loki** - Loki データソースのデフォルトである `local` ルールストレージタイプは、ルールの表示のみをサポートしています。ルールを編集する場合、他のストレージタイプを設定してください。
  + **Grafana Mimir** – `/prometheus` プレフィックスを使用します。Prometheus データソースは Grafana Mimir と Prometheus の両方に対応しており、Grafana はクエリ API と Ruler API の両方が同じ URL にあることを想定しています。Ruler API に別の URL を指定することはできません。

**注記**  
特定の Loki または Prometheus データソースのアラートルールを管理しない場合は、その設定に移動し、**[アラート UI 経由でアラートを管理する]** チェックボックスをオフにします。

**記録ルールを作成するには**

1. Grafana コンソールの Grafana メニューで、**[アラート]**、**[アラートルール]** を選択します。

1. **[新しい記録ルール]** を選択します。

1. ルール名を設定します。

   記録ルール名は Prometheus メトリクス名で、空白を含まない必要があります。

1. クエリの定義
   + Loki または Prometheus データソースを選択します。
   + クエリを入力します。

1. 名前空間とグループを追加します。
   + **[名前空間]** ドロップダウンから、既存のルール名前空間を選択するか、新しいルール名前空間を追加します。名前空間には 1 つ以上のルールグループを含めることができます。これは、組織的な目的を持たせるためのみに使用します。
   + **[グループ]** ドロップダウンから、選択した名前空間内の既存のグループを選択するか、新しいものを作成します。新しく作成されたルールは、グループの末尾に追加されます。グループ内のルールは、同じ評価時間で一定の間隔で順番に実行されます。

1. ラベルを追加します。
   + ドロップダウンから既存のキーと値のペアを選択してカスタムラベルを追加するか、新しいキーまたは値を入力して新しいラベルを追加します。

1. **[ルールを保存]** を選択してルールを保存するか、**[ルールを保存して終了]** を選択してルールを保存し、アラートページに戻ります。

# コンタクトポイントの設定
<a name="v10-alerting-configure-contactpoints"></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 で管理されるアラートの通知先 (コンタクトポイント) は、作成および編集が可能です。データソース管理アラートのコンタクトポイントは読み取り専用です。

## コンタクトポイント (通知先) の使用
<a name="v10-alerting-configure-contactpoints-working"></a>

次の手順では、通知先 (コンタクトポイント) を追加、編集、削除、テストする方法について説明します。

**コンタクトポイントの追加方法**

1. 左側のメニューで、**[アラート]** を選択します。

1. **[コンタクトポイント]** を選択します。

1. **[アラートマネージャーの選択]** ドロップダウンから、アラートマネージャーを選択します。デフォルトでは、Grafana アラートマネージャーが選択されています。

1. **[コンタクトポイント]** タブで、 **[\$1 コンタクトポイントの追加]** を選択します。

1. コンタクトポイントの** [名前]** を入力します。

1. **[統合]** からタイプを選択し、そのタイプに基づいて必須フィールドを入力します。例えば、Slack を選択した場合は、Slack チャネルと通知先となるユーザーを入力します。

1. 選択したコンタクトポイントで利用可能な場合は、任意の**オプション設定**を選択して追加の設定を指定します。

1. **[通知設定]**で**[解決済みメッセージの無効化]**を選択すると、アラートが解決した際に通知を受け取らないようにすることができます (任意)。

1. 別のコンタクトポイント統合を追加するには、**[コンタクトポイント統合を追加]** を選択し、必要なコンタクトポイントタイプごとにステップを繰り返します。

1. 変更内容を保存します。

**コンタクトポイントの編集方法**

1. 左側のメニューで、**[アラート]** を選択します。

1. **[コンタクトポイント]**を選択すると、現在設定されているコンタクトポイントのリストが表示されます。

1. 編集する連絡先を選択し、**[編集]** を選択します。

1. 連絡先を更新し、変更を保存します。

使用されていないコンタクトポイントは、通知ポリシーで削除できます。

**連絡先の削除方法**

1. 左側のメニューで、**[アラート]** を選択します。

1. **[コンタクトポイント]** を選択して、現在設定されているコンタクトポイントのリストを開きます。

1. **コンタクトポイント** で、削除するコンタクトポイントを選択し、**[詳細]**、**[削除]** を選択します。

1. 確認ダイアログボックスで、**[はい、削除]** を選択します。

**注記**  
コンタクトポイントが通知ポリシーで使用されている場合、コンタクトポイントを削除する前に、通知ポリシーを削除するか、別のコンタクトポイントを使用するように編集する必要があります。

コンタクトポイントを作成したら、テスト通知を送信して、正しく設定されていることを確認します。

**テスト通知の送信方法**

1. 左側のメニューで、**[アラート]** を選択します。

1. **[コンタクトポイント]** を選択して、現在設定されているコンタクトポイントのリストを開きます。

1. **コンタクトポイント** で、テストするコンタクトポイントを選択し、**[編集]** を選択します。必要に応じて、新しいコンタクトポイントを作成することもできます。

1. **[テスト]** を選択して、コンタクトポイントテストダイアログを開きます。

1. 事前定義されたテスト通知を送信するか、**[カスタム]** を選択してテスト通知に独自の注釈とラベルを追加するかを選択します。

1. **[テスト通知を送信]**を選択して、指定されたコンタクトポイント宛にアラートをテストします。

## コンタクトポイント統合の設定
<a name="v10-alerting-configure-contactpoints-integration"></a>

アラートルールの発射時に通知を受信するための優先通信チャネルを選択するように Grafana でコンタクトポイント統合を設定します。各統合には、独自の設定オプションとセットアッププロセスがあります。ほとんどの場合、これには API キーまたは Webhook URL の提供が含まれます。

設定が完了すると、コンタクトポイントの一部として統合を使用して、アラートの状態が変化するたびに通知を受け取ることができます。このセクションでは、PagerDuty を例として使用して統合を設定する基本的な手順について説明します。これにより、リアルタイムアラートの受信を開始し、モニタリングデータを常に把握できます。

**サポートされている統合のリスト**

次の表に、Grafana でサポートされているコンタクトポイントのタイプを示します。


| 名前 | タイプ | 
| --- | --- | 
| Amazon SNS | `sns` | 
| OpsGenie | `opsgenie` | 
| Pager Duty | `pagerduty` | 
| Slack | `slack` | 
| VictorOps | `victorops` | 

**アラート用の PagerDuty の設定**

PagerDuty を設定するには、統合キーを指定する必要があります。次の詳細情報を入力します：


| 設定 | 説明 | 
| --- | --- | 
| 統合キー | PagerDuty の統合キー | 
| 緊急度 | 動的通知のレベル。デフォルトは critical です。 | 
| カスタムの詳細 | イベントに関するその他の詳細 | 

`CustomDetails` フィールドは、任意のキーと値のペアを含むオブジェクトです。ユーザー定義の詳細が、デフォルトで使用されている詳細とマージされます。

`CustomDetails` のデフォルト値は次のとおりです。

```
{
	"firing":       `{{ template "__text_alert_list" .Alerts.Firing }}`,
	"resolved":     `{{ template "__text_alert_list" .Alerts.Resolved }}`,
	"num_firing":   `{{ .Alerts.Firing | len }}`,
	"num_resolved": `{{ .Alerts.Resolved | len }}`,
}
```

キーが重複している場合、ユーザー定義の詳細がデフォルトのキーを上書きします。

# 通知ポリシーを設定する
<a name="v10-alerting-configure-notification-policies"></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)」を参照してください。

通知ポリシーでは、アラートがコンタクトポイント (通知先) にどのように配信されるかを指定します。

ポリシーにはツリー構造があり、1 つ以上のネストされたポリシーを各ポリシーに含めることができます。デフォルトポリシーを除く各ポリシーは、特定のアラートラベルと一致させることもできます。

各アラートは、デフォルトのポリシーによって評価され、それに続き、ネストされた各ポリシーによって評価されます。

ネストされたポリシーの `Continue matching subsequent sibling nodes` オプションを有効にすると、1 つ以上一致があった後も評価が続行されます。子ポリシーのいずれとも一致しない場合、親ポリシーの設定とコンタクトポイント (通知先) の情報によってアラートの動作が制御されます。デフォルトのポリシーは、ネストされたポリシーと一致しないアラートを管理します。

これらの通知ポリシーの詳細については、「[通知](v10-alerting-explore-notifications.md)」を参照してください。

以下に、通知ポリシーを作成および管理するための手順を紹介します。

**デフォルトの通知ポリシーの編集方法**

1. 左側のメニューで、**[アラート]** を選択します。

1. **[通知ポリシー]** を選択します。

1. **[アラートマネージャーの選択]** ドロップダウンから、編集するアラートマネージャーを選択します。

1. **[デフォルトポリシー]** セクションで、 **[...]**、**[編集]** を続けて選択します。

1. **[デフォルトのコンタクトポイント]** で、アラートルールが特定のポリシーと一致しない場合に通知を送信するコンタクトポイント (通知先) を更新します。

1. **[グループ化]** で、アラートをグループ化するラベルを選択します。このポリシーに複数のアラートが一致すると、それらのアラートはこれらのラベルでグループ化されます。グループごとに通知が送信されます。フィールドが空 (デフォルト) の場合、すべての通知は 1 つのグループで送信されます。特別なラベル `...` を使用して、すべてのラベルでアラートをグループ化します (グループ化を効果的に無効にします）。

1. **[タイミングオプション]** で、以下のいずれかを選択します。
   + **[グループ待機]** – 同じグループのアラートをバッファリングしてから、最初の通知を送信するまでの待機時間。デフォルト値は 30 秒です。
   + **[グループ間隔]** – グループ内の 2 つの通知の最小時間間隔。デフォルト値は 5 分です。
   + **[繰り返し間隔]** – グループに新しいアラートが追加されなかった場合に、通知を再送信するまでの最小時間間隔。デフォルトは 4 時間です。

1. **[保存]** を選択して変更を保存します。

新しい通知ポリシーを作成するには、ツリー構造を考慮する必要があります。ツリーのトランクに作成された新しいポリシー (デフォルトポリシー) は、ツリーブランチです。各ブランチには、独自のネストされたポリシーを含めることができます。そのため、デフォルトのポリシーまたは既にネストされたポリシーのいずれかで、常に新しい**ネストされた**ポリシーを追加します。

**新しいネストされたポリシーを追加するには**

1. 左側のメニューで、**[アラート]** を選択します。

1. **[通知ポリシー]** を選択します。

1. **[アラートマネージャーの選択]** ドロップダウンから、編集するアラートマネージャーを選択します。

1. 最上位の特定のポリシーを追加するには、[特定のルーティング] セクション (デフォルトポリシー、または新しいネストされたポリシーを追加する既存の別のポリシーのいずれか) に移動し、**[\$1 新しいネストされたポリシー]** を選択します。

1. 一致するラベルセクションで、アラートラベルを照合するための 1 つ以上のルールを追加します。

1. **[コンタクトポイント]** ドロップダウンで、アラートがこの特定のポリシーのみに一致し、ネストされたポリシーのいずれにも一致しない場合に通知を送信するコンタクトポイントを選択します。

1. オプションで、アラートが現在のポリシーと一致した後でも、**[後続の兄弟ノードを照合し続ける]** を有効にして、兄弟ポリシーの照合を続行します。このオプションを有効にすると、1 つのアラートに対して複数の通知を取得できます。

1. オプションで、**[グループ化の上書き]** を有効にして、デフォルトポリシーと同じグループ化を指定します。オプションが有効になっていない場合、デフォルトのポリシーグループが使用されます。

1. オプションで、**[一般的なタイミングの上書き]** を有効にして、グループ通知ポリシーで設定されているタイミングオプションを上書きします。

1. **[Save policy(ポリシーの保存]** を選択して変更を保存します。

**ネストされたポリシーを編集するには**

1. 左側のメニューで、**[アラート]** を選択します。

1. **[通知ポリシー]** を選択します。

1. 編集するポリシーを選択したら、**[...]**、**[編集]** を続けて選択します。

1. 変更を加えます (ネストされたポリシーを追加する場合と同様)。

1. 変更内容を保存します。

**ポリシーの検索**

ポリシーのツリー内では、*ラベルマッチャー*または*コンタクトポイント*で検索できます。
+ コンタクトポイントで検索するには、**[コンタクトポイントで検索]** フィールドにコンタクトポイントの部分的な名前または完全な名前を入力します。そのコンタクトポイントを使用するポリシーは、ユーザーインターフェイスで強調表示されます。
+ ラベルで検索するには、**[ラベルマッチャーによる検索]** 入力フィールドに有効なラベルマッチャーを入力します。複数のマッチャーをカンマで区切って入力できます。有効なマッチャー入力の例は `severity=high, region=~EMEA|NA` です。
**注記**  
ラベルで検索する場合、一致するすべてのポリシーは完全一致になります。部分一致と正規表現形式の一致はサポートされていません。

# アラートの管理
<a name="v10-alerting-manage"></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 アラートを使用してアラートを実際に管理できます。

**Topics**
+ [通知のカスタマイズ](v10-alerting-manage-notifications.md)
+ [コンタクトポイントの管理](v10-alerting-manage-contactpoints.md)
+ [アラート通知のサイレンシング](v10-alerting-silences.md)
+ [アラートルールの表示とフィルタリング](v10-alerting-manage-rules-viewfilter.md)
+ [ミュートタイミング](v10-alerting-manage-muting.md)
+ [アラートルールの状態と正常性を表示する](v10-alerting-manage-rulestate.md)
+ [アラートグループ別に表示およびフィルタリングする](v10-alerting-manage-viewfiltergroups.md)
+ [通知エラーの表示](v10-alerting-manage-viewnotificationerrors.md)

# 通知のカスタマイズ
<a name="v10-alerting-manage-notifications"></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)」を参照してください。

通知テンプレートを使用して、通知をカスタマイズします。

通知テンプレートを使用して、通知内のメッセージのタイトル、メッセージ、形式を変更できます。

通知テンプレートは、Amazon SNS や Slack などの特定のコンタクトポイント統合には関連付けられていません。ただし、異なるコンタクトポイント統合用に個別の通知テンプレートを作成することもできます。

通知テンプレートを使用すると、次のことができます。
+ 概要、説明、ラベルと注釈、値、リンクなど、通知内の情報を追加、削除、または並べ替える
+ テキストを太字と斜体で書式設定し、改行を追加または削除する

通知テンプレートを次の目的には使用できません。
+ Slack や Microsoft Teams などのインスタントメッセージングサービスで通知のデザインを変更する

**Topics**
+ [Go のテンプレート言語の使用](v10-alerting-notifications-go-templating.md)
+ [通知テンプレートの作成](v10-alerting-create-templates.md)
+ [通知テンプレートの使用](#v10-alerting-use-notification-templates)
+ [テンプレートリファレンス](v10-alerting-template-reference.md)

# Go のテンプレート言語の使用
<a name="v10-alerting-notifications-go-templating"></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)」を参照してください。

Go のテンプレート言語である [text/template](https://pkg.go.dev/text/template) で通知テンプレートを書き込みます。

このセクションでは、Go のテンプレート言語の概要と、text/template でのテンプレートの作成について説明します。

## dot
<a name="v10-go-dot"></a>

text/template には dot と呼ばれる特別なカーソルがあり、`.` として記述されます。このカーソルは、テンプレート内の使用場所に応じて値が変化する変数と考えることができます。例えば、通知テンプレートの開始時に `.` は、`Alerts`、`Status`、`GroupLabels`、`CommonLabels`、`CommonAnnotations` および `ExternalURL` を含む多数のフィールドを含む `ExtendedData` オブジェクトを参照します。ただし、dot は、リスト上の `range` で使用される場合、`with` 内で使用される場合、または他のテンプレートで使用する機能テンプレートを記述する場合、他の何かを参照する場合があります。これの例は [通知テンプレートの作成](v10-alerting-create-templates.md) で、すべてのデータと関数は [テンプレートリファレンス](v10-alerting-template-reference.md) で確認できます。

## 開始と終了のタグ
<a name="v10-go-openclosetags"></a>

テキスト/テンプレートでは、テンプレートが変数を印刷するか、if ステートメントなどのコントロール構造を実行するかに関係なく、テンプレートは `{{`で始まり、`}}` で終わります。これは、変数の出力に `{{` と `}}` を使用し、制御構造に `{%` と `%}` を使用する Jinja などの他のテンプレート言語とは異なります。

## 印刷
<a name="v10-go-print"></a>

何かの値を印刷するには、`{{` と `}}` を使用します。dot の値、dot のフィールド、関数の結果、[[変数]](#v10-go-variables)の値を印刷できます。例えば、dot が `ExtendedData` を参照する `Alerts` フィールドを印刷するには、次のように記述します。

```
{{ .Alerts }}
```

## アラートを反復処理する
<a name="v10-go-iterate-alerts"></a>

アラートに関するすべての情報ではなく、各アラートのラベルのみを印刷するには、`range` を使用して `ExtendedData` でアラートを反復処理できます。

```
{{ range .Alerts }}
{{ .Labels }}
{{ end }}
```

範囲内の dot は、`ExtendedData` ではなく `Alert` を参照します。`{{ .Labels }}` を使用して、各アラートのラベルを印刷できます。これは、アラートのリスト内の現在のアラートを参照するように `{{ range .Alerts }}` が dot を変えるために機能します。範囲が終了すると、dot は範囲の開始前に存在していた値にリセットされます。この例では `ExtendedData` です。

```
{{ range .Alerts }}
{{ .Labels }}
{{ end }}
{{/* does not work, .Labels does not exist here */}}
{{ .Labels }}
{{/* works, cursor was reset */}}
{{ .Status }}
```

## 注釈とラベルを反復処理する
<a name="v10-go-iterate-labels"></a>

各アラートのラベルを `The name of the label is $name, and the value is $value` の形式で印刷するテンプレートを書きましょう。ここで、`$name` と `$value` には各ラベルの名前と値が含まれます。

前の例と同様に、`.Alerts` の範囲を使用して のアラートを繰り返し、dot がアラートのリスト内の現在のアラートを参照するようにし、ソートされたラベルで 2 番目の範囲を使用して、dot が現在のラベルを参照するように 2 回目に更新されます。2 番目の範囲内では、 `.Name` と `.Value` を使用して各ラベルの名前と値を出力します。

```
{{ range .Alerts }}
{{ range .Labels.SortedPairs }}
The name of the label is {{ .Name }}, and the value is {{ .Value }}
{{ end }}
{{ range .Annotations.SortedPairs }}
The name of the annotation is {{ .Name }}, and the value is {{ .Value }}
{{ end }}
{{ end }}
```

## インデックス関数
<a name="v10-go-index"></a>

特定の注釈またはラベルを出力するには、 `index` 関数を使用します。

```
{{ range .Alerts }}
The name of the alert is {{ index .Labels "alertname" }}
{{ end }}
```

## If ステートメント
<a name="v10-go-if"></a>

テンプレートでは if ステートメントを使用できます。例えば、`.Alerts` にアラートがない場合に `There are no alerts` を出力するには、次のように記述します。

```
{{ if .Alerts }}
There are alerts
{{ else }}
There are no alerts
{{ end }}
```

## With
<a name="v10-go-with"></a>

With は if ステートメントと似ていますが、if ステートメントとは異なり、`with` は dot を更新して with の値を参照します。

```
{{ with .Alerts }}
There are {{ len . }} alert(s)
{{ else }}
There are no alerts
{{ end }}
```

## [変数]
<a name="v10-go-variables"></a>

text/template の変数は、テンプレート内に作成する必要があります。例えば、`$variable` という変数を現在の dot の値で作成するには、次のように記述します。

```
{{ $variable := . }}
```

範囲内の `$variable` または `with` を使用でき、これらは変数が定義された時点の dot の値を参照します。dot の現在の値は参照されません。

例えば、2 番目の範囲で `{{ .Labels }}` を使用するテンプレートを記述することはできません。ここでは、現在のアラートではなく、現在のラベルが dot で参照されるためです。

```
{{ range .Alerts }}
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{/* does not work because in the second range . is a label not an alert */}}
There are {{ len .Labels }}
{{ end }}
{{ end }}
```

これを修正するには、最初の範囲と 2 番目の範囲の前に `$alert` という変数を定義します。

```
{{ range .Alerts }}
{{ $alert := . }}
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{/* works because $alert refers to the value of dot inside the first range */}}
There are {{ len $alert.Labels }}
{{ end }}
{{ end }}
```

## インデックスを含む範囲
<a name="v10-go-rangeindex"></a>

範囲の開始時にインデックス変数と値変数を定義することで、範囲内の各アラートのインデックスを取得できます。

```
{{ $num_alerts := len .Alerts }}
{{ range $index, $alert := .Alerts }}
This is alert {{ $index }} out of {{ $num_alerts }}
{{ end }}
```

## テンプレートの定義
<a name="v10-go-define"></a>

`define` とテンプレートの名前を二重引用符で囲むことで、他のテンプレート内で使用できるテンプレートを定義できます。`__subject`、`__text_values_list`、`__text_alert_list`、`default.title`、`default.message` などのデフォルトテンプレートを含め、他のテンプレートと同じ名前のテンプレートを設定しないでください。デフォルトテンプレートと同じ名前のテンプレート、または別の通知テンプレート内のテンプレートと同じ名前で作成されている場合、Grafana はいずれかのテンプレートを使用することになり、混乱が生じます。Grafana は、同じ名前のテンプレートが 2 つ以上ある場合、エラーメッセージを返しません。

```
{{ define "print_labels" }}
{{ end }}
```

## テンプレートの実行
<a name="v10-go-execute"></a>

`template`、二重引用符で囲まれたテンプレートの名前、およびテンプレートに渡されるカーソルを使用して、テンプレート内で定義されたテンプレートを実行できます。

```
{{ template "print_labels" . }}
```

## テンプレートにデータを渡す
<a name="v10-go-passdata"></a>

テンプレート内では、dot はテンプレートに渡される値を参照します。

例えば、テンプレートに発射アラートのリストが渡された場合、dot は発射アラートのリストを参照します。

```
{{ template "print_alerts" .Alerts }}
```

テンプレートにアラートのソート済みラベルが渡された場合、dot はソート済みラベルのリストを参照します。

```
{{ template "print_labels" .SortedLabels }}
```

これは、再利用可能なテンプレートを記述する場合に役立ちます。例えば、すべてのアラートを出力するには、次のように記述します。

```
{{ template "print_alerts" .Alerts }}
```

次に、発射アラートのみを出力するには、次のように記述します。

```
{{ template "print_alerts" .Alerts.Firing }}
```

これは、`.Alerts` と `.Alerts.Firing` の両方がアラートのリストであるために機能します。

```
{{ define "print_alerts" }}
{{ range . }}
{{ template "print_labels" .SortedLabels }}
{{ end }}
{{ end }}
```

## コメント
<a name="v10-go-comments"></a>

`{{/*` および `*/}}` を使用してコメントを追加できます。

```
{{/* This is a comment */}}
```

コメントが改行を追加しないようにするには、以下を使用します。

```
{{- /* This is a comment with no leading or trailing line breaks */ -}}
```

## インデント
<a name="v10-go-indentation"></a>

タブとスペースの両方のインデントと改行を使用して、テンプレートをより読みやすくすることができます。

```
{{ range .Alerts }}
  {{ range .Labels.SortedPairs }}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

ただし、テンプレートのインデントはテキストにも適用されます。次に、削除する方法を説明します。

## スペースと改行を削除する
<a name="v10-go-removespace"></a>

text/template では、 `{{-` と `-}}` を使用して、先頭と末尾のスペースと改行を削除します。

例えば、インデントと改行を使用してテンプレートをより読みやすくする場合です。

```
{{ range .Alerts }}
  {{ range .Labels.SortedPairs }}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

インデントと改行はテキストにも表示されます。

```
    alertname = "Test"

    grafana_folder = "Test alerts"
```

各範囲の先頭の `}}` を `-}}` に変更することで、テキストからインデントと改行を削除できます。

```
{{ range .Alerts -}}
  {{ range .Labels.SortedPairs -}}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

これにより、テンプレートのインデントと改行がテキストから取り除かれます。

```
alertname = "Test"
grafana_folder = "Test alerts"
```

# 通知テンプレートの作成
<a name="v10-alerting-create-templates"></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)」を参照してください。

コンタクトポイントに送信するため、再利用可能な通知テンプレートを作成できます。

通知テンプレートには 1 つ以上のテンプレートを追加できます。

通知テンプレート名は、一意である必要があります。同じ通知テンプレートまたは異なる通知テンプレートに、同じ名前のテンプレートを 2 つ使用することはできません。`__subject`、`__text_values_list`、`__text_alert_list`、`default.title`、`default.message` などのデフォルトテンプレートと同じ名前のテンプレートを定義しないでください。

[コンタクトポイント] タブには、通知テンプレートのリストが表示されます。

## 通知テンプレートの作成
<a name="v10-alerting-creating-templates"></a>

**通知テンプレートを作成するには**

1. **[アラート]**、**[コンタクトポイント]** を続けて選択します。

1. **[通知テンプレート]** タブを選択し、**[\$1 通知テンプレートの追加]** を選択します。

1. `email.subject` などの通知テンプレートの名前を選択します。

1. テンプレートの内容をコンテンツフィールドに書き込みます。

   例:

   ```
   {{ if .Alerts.Firing -}}
      {{ len .Alerts.Firing }} firing alerts
      {{ end }}
      {{ if .Alerts.Resolved -}}
      {{ len .Alerts.Resolved }} resolved alerts
      {{ end }}
   ```

1. 変更内容を保存します。

   `{{ define "email.subject" }}` (`email.subject` はテンプレートの名前) と `{{ end }}` はコンテンツの先頭と末尾に自動的に追加されます。

**複数のテンプレートを含む通知テンプレートを作成するには**

1. **[アラート]**、**[コンタクトポイント]** を続けて選択します。

1. **[通知テンプレート]** タブを選択し、**[\$1 通知テンプレートの追加]** を選択します。

1. 通知テンプレート全体の名前を入力します。例えば、`email`。

1. 各テンプレートの最初と最後に `{{ define "name-of-template" }}` と `{{ end }}` を含む各テンプレートをコンテンツフィールドに書き込みます。`email.subject` や `email.message` など、通知テンプレート内の各テンプレートにわかりやすい名前を使用できます。この場合、上記で入力した通知テンプレートの名前は再度使用しないでください。

   後のセクションでは、作成するテンプレートの詳細な例を示します。

1. 保存をクリックします。

## 通知テンプレートをプレビューする
<a name="v10-alerting-preview-templates"></a>

コンタクトポイントで使用する前に通知テンプレートの外観をプレビューすると、作成するテンプレートの結果を理解しやすくなり、テンプレートを保存する前にエラーを修正することができます。

**注記**  
通知プレビューは Grafana アラートマネージャーでのみ使用できます。

**通知テンプレートをプレビューするには**

1. **[アラート]**、**[コンタクトポイント]** を続けて選択します。

1. **[通知テンプレート]** タブを選択し、**[\$1 通知テンプレートの追加]** を選択するか、既存のテンプレートを編集します。

1. テンプレートコンテンツを追加または更新します。

   デフォルトのデータが提供され、アラートデータとアラートインスタンスを追加または編集できます。アラートデータは、ペイロードデータウィンドウ自体に直接追加するか、**[アラートインスタンスの選択]** または**[カスタムアラートの追加]** をクリックします。

1. [オプション] 既存のアラートインスタンスからアラートデータを追加するには:

   1. **[アラートインスタンスの選択]** を選択します。

   1. アラートインスタンスにカーソルを合わせると、各アラートインスタンスに関する詳細情報が表示されます。

   1. **[Confirm]** (確認) を選択して、アラートインスタンスをペイロードに追加します。

1. [オプション] アラートデータエディタを使用してアラートデータを追加するには、**[カスタムデータの追加]** を選択します。

   1. 注釈/カスタムラベルを追加するか、ダッシュボードまたはパネルを設定します。

   1. 通知に発射アラートを追加するか、解決済みアラートを追加するかに応じて、発射または解決を切り替えます。

   1. **[アラートデータの追加]** を選択します。

   1. **[プレビューの更新]** を選択して、テンプレートの内容と対応するペイロードデータを確認します。

   テンプレートにエラーがある場合はプレビューに表示され、保存する前に修正できます。

1. 変更内容を保存します。

## メッセージの件名のテンプレートの作成
<a name="v10-alerting-create-template-subject"></a>

この例では、発射アラートと解決済みアラートの数を含む E メールの件名のテンプレートを作成します。

```
1 firing alerts, 0 resolved alerts
```

**E メールの件名のテンプレートを作成するには**

1. `email.subject` というテンプレートを次の内容で作成します。

   ```
   {{ define "email.subject" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. テンプレートは、キーワード `template` を使用して**件名**フィールドに配置して、コンタクトポイント統合を作成するときに使用します。

   ```
   {{ template "email.subject" . }}
   ```

## E メールのメッセージ用のテンプレート作成
<a name="v10-alerting-create-template-message"></a>

この例では、すべての発射アラートと解決済みアラートの概要を含む E メールのメッセージ用のテンプレートを作成します。

```
There are 2 firing alerts, and 1 resolved alerts

Firing alerts:

- alertname=Test 1 grafana_folder=GrafanaCloud has value(s) B=1
- alertname=Test 2 grafana_folder=GrafanaCloud has value(s) B=2

Resolved alerts:

- alertname=Test 3 grafana_folder=GrafanaCloud has value(s) B=0
```

**E メールのメッセージ用のテンプレートを作成するには**

1. `email` という名前の通知テンプレートを、コンテンツに `email.message_alert` と `email.message` という 2 つのテンプレートで作成します。

   `email.message_alert` テンプレートは、`email.message` テンプレートに E メールの構造が含まれている間、各発射アラートと解決済みアラートのラベルと値を印刷するために使用されます。

   ```
   {{- define "email.message_alert" -}}
   {{- range .Labels.SortedPairs }}{{ .Name }}={{ .Value }} {{ end }} has value(s)
   {{- range $k, $v := .Values }} {{ $k }}={{ $v }}{{ end }}
   {{- end -}}
   
   {{ define "email.message" }}
   There are {{ len .Alerts.Firing }} firing alerts, and {{ len .Alerts.Resolved }} resolved alerts
   
   {{ if .Alerts.Firing -}}
   Firing alerts:
   {{- range .Alerts.Firing }}
   - {{ template "email.message_alert" . }}
   {{- end }}
   {{- end }}
   
   {{ if .Alerts.Resolved -}}
   Resolved alerts:
   {{- range .Alerts.Resolved }}
   - {{ template "email.message_alert" . }}
   {{- end }}
   {{- end }}
   
   {{ end }}
   ```

1. テンプレートは、キーワード `template` を使用して**テキスト本文**フィールドに配置して、コンタクトポイント統合を作成するときに使用します。

   ```
   {{ template "email.message" . }}
   ```

## Slack メッセージのタイトルのテンプレート作成
<a name="v10-alerting-create-template-slack-title"></a>

この例では、発射アラートと解決済みアラートの数を含む Slack メッセージのタイトルのテンプレートを作成します。

```
1 firing alerts, 0 resolved alerts
```

**Slack メッセージのタイトルのテンプレートを作成するには**

1. `slack.title` というテンプレートを次の内容で作成します。

   ```
   {{ define "slack.title" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. コンタクトポイント統合のタイトルフィールドからテンプレートを実行します。

   ```
   {{ template "slack.title" . }}
   ```

## Slack メッセージのコンテンツのテンプレート作成
<a name="v10-alerting-create-template-slack-message"></a>

すべての発射アラートと解決済みアラートの説明 (ラベル、注釈、ダッシュボード URL など) を含む Slack メッセージのコンテンツのテンプレートを作成します。

**注記**  
このテンプレートは Grafana マネージドアラート専用です。データソースマネージドアラートに テンプレートを使用するには、DashboardURL と SilenceURL への参照を削除します。Prometheus 通知の設定に関する詳細については、「[通知に関する Prometheus ドキュメント](https://prometheus.io/docs/alerting/latest/notifications/)」を参照してください。

```
1 firing alerts:

[firing] Test1
Labels:
- alertname: Test1
- grafana_folder: GrafanaCloud
Annotations:
- description: This is a test alert
Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1

1 resolved alerts:

[firing] Test2
Labels:
- alertname: Test2
- grafana_folder: GrafanaCloud
Annotations:
- description: This is another test alert
Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1
```

**Slack メッセージのコンテンツのテンプレートを作成するには**

1. コンテンツに `slack.print_alert` と`slack.message` の 2 つのテンプレートを使用して、`slack` という名前のテンプレートを作成します。

   `slack.print_alert` テンプレートはラベル、注釈、および DashboardURL の印刷に使用され、`slack.message` テンプレートには通知の構造が含まれます。

   ```
   {{ define "slack.print_alert" -}}
   [{{.Status}}] {{ .Labels.alertname }}
   Labels:
   {{ range .Labels.SortedPairs -}}
   - {{ .Name }}: {{ .Value }}
   {{ end -}}
   {{ if .Annotations -}}
   Annotations:
   {{ range .Annotations.SortedPairs -}}
   - {{ .Name }}: {{ .Value }}
   {{ end -}}
   {{ end -}}
   {{ if .DashboardURL -}}
     Go to dashboard: {{ .DashboardURL }}
   {{- end }}
   {{- end }}
   
   {{ define "slack.message" -}}
   {{ if .Alerts.Firing -}}
   {{ len .Alerts.Firing }} firing alerts:
   {{ range .Alerts.Firing }}
   {{ template "slack.print_alert" . }}
   {{ end -}}
   {{ end }}
   {{ if .Alerts.Resolved -}}
   {{ len .Alerts.Resolved }} resolved alerts:
   {{ range .Alerts.Resolved }}
   {{ template "slack.print_alert" .}}
   {{ end -}}
   {{ end }}
   {{- end }}
   ```

1. コンタクトポイント統合のテキスト本文フィールドからテンプレートを実行します。

   ```
   {{ template "slack.message" . }}
   ```

## 共有テンプレートを使用して E メールと Slack の両方にテンプレートを作成する
<a name="v10-alerting-create-shared-templates"></a>

E メールや Slack など、コンタクトポイントごとに個別の通知テンプレートを作成する代わりに、同じテンプレートを共有できます。

例えば、この件名の E メールを送信し、このタイトル `1 firing alerts, 0 resolved alerts` の Slack メッセージを送信する場合は、共有テンプレートを作成できます。

**共有テンプレートを作成するには**

1. `common.subject_title` というテンプレートを次の内容で作成します。

   ```
   {{ define "common.subject_title" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. E メールの場合は、E メールコンタクトポイント統合の件名フィールドからテンプレートを実行します。

   ```
   {{ template "common.subject_title" . }}
   ```

1. Slack の場合は、Slack コンタクトポイント統合のタイトルフィールドからテンプレートを実行します。

   ```
   {{ template "common.subject_title" . }}
   ```

## 通知テンプレートの使用
<a name="v10-alerting-use-notification-templates"></a>

コンタクトポイントのテンプレートを使用して通知をカスタマイズします。

**コンタクトポイントの作成時にテンプレートを使用するには**

1. **[アラート]** メニューから、**[コンタクトポイント]** タブを選択して、既存のコンタクトポイントのリストを表示します。

1. **[New]** (新規作成) を選択します。または、**[編集]** アイコンを選択して、既存のコンタクトポイントを編集することもできます。

1. **[Message]** (メッセージ) や **[Subject]** (件名) などのフィールドに、使用するテンプレートを入力します。テンプレートを入力するには、`{{ template "template_name" . }}` フォームを使用し、 *template\$1name* を使用するテンプレートの名前に置き換えます。

1. **[コンタクトポイントの保存]** を選択します。

# テンプレートリファレンス
<a name="v10-alerting-template-reference"></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)」を参照してください。

このセクションでは、テンプレートを作成するためのリファレンス情報を提供します。

**アラート (型)**

アラート型には、次のデータがあります。


| 名前 | [Kind] (種類) | 説明 | 例 | 
| --- | --- | --- | --- | 
|  ステータス  |  string  |  `firing` または `resolved`  | \$1\$1 .Status \$1\$1 | 
|  ラベル  |  KeyValue  |  アラートに付与された一連のラベル。  | \$1\$1 .Labels \$1\$1 | 
|  ‏注釈  |  KeyValue  |  アラートに付与された一連の注釈。  | \$1\$1 .Annotations \$1\$1 | 
| 値 | KeyValue | クラシック条件を含むすべての式の値 | \$1\$1 .Values \$1\$1 | 
|  StartsAt  |  time.Time  |  アラートが発行された時刻。  | \$1\$1 .StartsAt \$1\$1 | 
|  EndsAt  |  time.Time  |  アラートの終了時刻がわかっている場合にのみ設定されます。それ以外の場合、最後にアラートを受信してから設定可能なタイムアウト期間が適用されます。  | \$1\$1 .EndsAt \$1\$1 | 
|  GeneratorURL  |  string  |  Grafana または外部アラートマネージャーへのリンク。  | \$1\$1 .GeneratorURL \$1\$1 | 
|  SilenceURL  |  string  |  アラートをサイレンスするリンク (このアラートのラベルがあらかじめ入力されています)。Grafana 管理のアラートのみ。  | \$1\$1 .SilenceURL\$1\$1 | 
|  DashboardURL  |  string  |  Grafana ダッシュボードへのリンク (アラートルールが Grafana に属している場合)。Grafana 管理のアラートのみ。  | \$1\$1 .DashboardURL \$1\$1 | 
|  PanelURL  |  string  |  Grafana ダッシュボードパネルへのリンク (アラートルールが Grafana に属している場合)。Grafana 管理のアラートのみ。  | \$1\$1 .PanelURL \$1\$1 | 
|  Fingerprint  |  string  |  アラートの識別に使用するフィンガープリント。  | \$1\$1 .Fingerprint \$1\$1 | 
|  ValueString  |  string  |  アラート内の各削減された式のラベルと値を含む文字列。  | \$1\$1 .ValueString \$1\$1 | 

 **ExtendedData**

ExtendedData オブジェクトには、以下のプロパティが含まれています。


| 名前 | [Kind] (種類) | 説明 | 例 | 
| --- | --- | --- | --- | 
|  レシーバー  |  `string`  |  通知を送信するコンタクトポイントの名前。  |  `{{ .Receiver }}`  | 
|  ステータス  |  `string`  |  ステータスは、少なくとも 1 つのアラートが発せられている場合は `firing` で、それ以外の場合は `resolved` です。  |  `{{ .Status }}`  | 
|  アラート  |  `[]Alert`  |  この通知のすべての発生アラートと解決済みアラートのリスト。  |  `There are {{ len .Alerts }} alerts`  | 
|  発生アラート  |  `[]Alert`  |  この通知のすべての発生アラートのリスト。  |  `There are {{ len .Alerts.Firing }} firing alerts`  | 
|  解決済みアラート  |  `[]Alert`  |  この通知で解決されたすべてのアラートのリスト。  |  `There are {{ len .Alerts.Resolved }} resolved alerts`  | 
|  GroupLabels  |  `KeyValue`  |  これらのアラートをこの通知にグループ化するラベル。  |  `{{ .GroupLabels }}`  | 
|  CommonLabels  |  `KeyValue`  |  この通知のすべてのアラートに共通するラベル。  |  `{{ .CommonLabels }}`  | 
|  CommonAnnotations  |  `KeyValue`  |  この通知のすべてのアラートに共通する注釈。  |  `{{ .CommonAnnotations }}`  | 
|  ExternalURL  |  `string`  |  この通知を送信した Grafana ワークスペースまたはアラートマネージャーへのリンク。  |  `{{ .ExternalURL }}`  | 

**KeyValue 型**

`KeyValue` 型は、キー (ラベル) 値 (注釈) の文字列を組み合わせたものです。

`KeyValue` として保存されたデータに直接アクセスするメソッドだけでなく、データをソート、削除、変換するメソッドも備えています。


| 名前 | 引数 | 戻り値 | 注意事項 | 例 | 
| --- | --- | --- | --- | --- | 
|  SortedPairs  |    |  キーと値の文字列のソート済みのリスト  |    | `{{ .Annotations.SortedPairs }}` | 
|  削除  |  []string  |  KeyValue  |  指定したキーを除いたキー/値のマップのコピーを返します。  | `{{ .Annotations.Remove "summary" }}` | 
|  名前  |    |  []string  |  名前のリスト  | `{{ .Names }}` | 
|  [Values] (値)  |    |  []string  |  値のリスト  | `{{ .Values }}` | 

**[時間]**

時間は Go [https://pkg.go.dev/time#Time](https://pkg.go.dev/time#Time) パッケージからのものです。時間はさまざまな形式で印刷できます。例えば、アラートが発生した時刻を `Monday, 1st January 2022 at 10:00AM` 形式で出力するには、次のテンプレートを作成します。

```
{{ .StartsAt.Format "Monday, 2 January 2006 at 3:04PM" }}
```

Go の時間形式に関するリファレンスは、[こちら](https://pkg.go.dev/time#pkg-constants)を参照してください。

# コンタクトポイントの管理
<a name="v10-alerting-manage-contactpoints"></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)」を参照してください。

**[コンタクトポイント]** リストビューには、既存のすべてのコンタクトポイントと通知テンプレートが一覧表示されます。

**[コンタクトポイント]** タブでは、次のことができます。
+ コンタクトポイントと統合の名前とタイプを検索する。
+ 既存のすべての連絡先と統合を表示する。
+ 各コンタクトポイントが使用されている通知ポリシーの数を表示し、リンクされた通知ポリシーに直接移動する。
+ 通知配信のステータスを表示する。
+ 個々のコンタクトポイントまたはすべてのコンタクトポイントを JSON、YAML、または Terraform 形式でエクスポートする。
+ 通知ポリシーで使用されていないコンタクトポイントを削除する。

**[通知テンプレート]** タブでは、次のことができます。
+ 既存の通知テンプレートを表示、編集、コピー、または削除する。

# アラート通知のサイレンシング
<a name="v10-alerting-silences"></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)」を参照してください。

*サイレンス*を使用してアラート通知を抑制できます。サイレンスは通知の作成を停止するだけで、アラートルールの評価やユーザーインターフェースへのアラートインスタンスの表示は引き続き行われます。アラートをサイレンスにする場合、停止する時間枠を指定します。

**注記**  
アラート通知を一定の時間間隔、定期的なメンテナンス期間中など、で停止するには、サイレンスではなく [ミュートタイミング](v10-alerting-manage-muting.md) を使用します。

**サイレンスの追加方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** を選択します。

1. **[サイレンス]** を選択します。

1. アラートマネージャードロップダウンから **[アラートマネージャー]** を選択します。

1. **[サイレンスの作成]** を選択します。

1. **[サイレンスの開始と終了]** でサイレンスを有効にする開始日と終了日を選択します。

1. 終了時刻を設定する代わりに、**[期間]** でサイレンスが適用される期間を指定します。この方法を使用すると、**[サイレンスの開始と終了]** フィールドの終了時刻が自動的に更新されます。

1. **[ラベル]** と **[値]** フィールドに、1 つ以上の*一致するラベル*を入力します。照合機能により、どのルールにサイレンスを適用するかが決定されます。一致するアラート (発動状態) はすべて、**[Affected alerts instances(影響を受けるアラートインスタンス)]** フィールドに表示されます。

1. 必要に応じて、サイレンスに関する**コメント**を追加します。

1. **[送信]** を選択します。

**サイレンスを編集するには**

1. Grafana コンソールの Grafana メニューで、**[アラート]** を選択します。

1. 既存のサイレンスのリストを表示するには、**[サイレンス]** を選択します。

1. 編集するサイレンスを見つけ、**[編集]** (ペンアイコン) を選択します。

1. 変更後、**[送信]** を選択して変更を保存します。

既存のサイレンスを編集するには、**[編集]** アイコン (ペン) を選択します。

**サイレンスフォームへの URL リンクを作成するには**

サイレンスフォームにリンクするときは、`matcher` および `comment` クエリパラメータを使用して、デフォルトの一致するラベルとコメントを指定します。`matcher` パラメータは、次の `[label][operator][value]` の形式である必要があります。この時、`operator` パラメータには以下のいずれかを指定できます: `=` (正規表現ではなく等号)、`!=` (正規表現ではなく不等号)、`=~` (等号、正規表現)、`!~` (不等号、正規表現)。URL には、 キー `matcher` を含む多くのクエリパラメータを含めることができます。例えば、一致するラベル `severity=critical` と `cluster!~europe-.*` ならびにコメント `Silence critical EU alerts` を使用してサイレンスフォームにリンクするには、URL `https://mygrafana/alerting/silence/new?matcher=severity%3Dcritical&matcher=cluster!~europe-*&comment=Silence%20critical%20EU%20alert` を作成します。

外部アラートマネージャーの新しいサイレンスページにリンクするには、`alertmanager` クエリパラメータを追加します。

**サイレンスを削除するには**

1. Grafana コンソールの Grafana メニューで、**[アラート]** を選択します。

1. 既存のサイレンスのリストを表示するには、**[サイレンス]** を選択します。

1. 終了するサイレンスを選択し、**[サイレンス解除]** を選択します。この操作によりアラートの停止状態は終了します。
**注記**  
サイレンス解除を行うと、終了時刻が現在の時刻に設定されたものとして、アラートの停止状態が終了します。（自動または手動を問わず）終了したサイレンスは5 日間保持され、一覧表示されます。リストからサイレンスを手動で削除することはできません。

# アラートルールの表示とフィルタリング
<a name="v10-alerting-manage-rules-viewfilter"></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 によって管理されるルールが一覧表示されます。Prometheus 互換データソースのアラートルールもここに表示されます。Prometheus 互換データソースのアラートルールは表示できますが、編集することはできません。

Mimir/Cortex/Loki ルールセクションには、Mimir、Cortex、または Loki データソースのすべてのルールが一覧表示されます。クラウドアラートルールもこのセクションに表示されます。

大量のアラートを管理する場合、拡張アラートルール検索機能を使用して、フォルダ、評価グループ、ルールをフィルタリングできます。さらに、ラベル、状態、タイプ、正常性などのプロパティでアラートルールをフィルタリングできます。

## アラートルールの表示
<a name="v10-alerting-manage-rules-view"></a>

Grafana アラートを使用すると、すべてのアラートを 1 ページに表示できます。

**アラートの詳細を表示するには**

1. Grafana コンソールの Grafana メニューで、**[アラート]**、**[アラートルール]** を選択します。デフォルトでは、リストビューが表示されます。

1. **[表示形式]** では、任意のオプションを選択して、グループ化されたビュー、リストビュー、および状態ビューを切り替えることができます。

1. ルール行を展開して、ルールラベル、注釈、データソース、ルールクエリ、およびルールの結果のアラートインスタンスのリストを表示します。

このページから、アラートルールのコピーを作成して、既存のルールを再利用することもできます。

## アラートルールのエクスポート
<a name="v10-alerting-manage-rules-export"></a>

ルールは Grafana ワークスペースで YAML または JSON にエクスポートできます。
+ YAML、JSON、または Terraform にエクスポートする各アラートルールグループの横にある **[ルールグループのエクスポート]** アイコンを選択します。
+ **[ルールのエクスポート]** を選択して、すべての Grafana マネージドアラートルールを YAML、JSON、または Terraform にエクスポートします。
+ グループ内の個々のアラートルールの横にある **[その他]**、**[エクスポートを変更** を選択して、プロビジョニングされたアラートルールを編集し、変更されたバージョンをエクスポートします。

## プロビジョニングされたアラートのクエリ定義を表示する
<a name="v10-alerting-manage-rules-querydef"></a>

プロビジョニングされたアラートの読み取り専用クエリ定義を表示します。ルール定義の「as-code」リポジトリにアクセスすることなく、アラートルールのクエリが正しいかどうかをすばやく確認できます。

**グループ化されたビュー**

グループ化されたビューには、フォルダ別にグループ化された Grafana アラートルールと、`namespace` と `group` によりグループ化された Loki または Prometheus アラートルールが表示されます。これは、ルールの管理を目的としたデフォルトのルールリストビューです。各グループを展開すると、そのグループ内のルールのリストが表示されます。さらにルールを展開すると、その詳細を見ることができます。また、ルールから生成されたアクションボタンとアラートを展開して、詳細を表示することもできます。

**状態ビュー**

状態ビューには、アラートルールが状態ごとグループ化されて表示されます。このビューを使用すると、各ルールがどの状態にあるかを一目で確認できます。各ルールは展開して詳細を表示することがでます。アクションボタンとこのルールによって生成されたアラート、および各アラートをさらに展開して詳細を表示することができます。

## アラートルールのフィルタリング
<a name="v10-alerting-manage-rules-filter"></a>

**[アラート]** ページに表示されるアラートルールは、いくつかの方法でフィルタリングできます。

**アラートルールをフィルタリングするには**

1. **[データソースの選択]** からデータソースを選択します。選択したデータソースをクエリするアラートルールが表示されます。

1. **[ラベルで検索]** で、ラベルセレクタを使用して検索条件を入力します。例えば、`environment=production;region=~US|EU,severity!=warning`。

1. **[Filter alerts by state (状態別にアラートをフィルタリング)]** から、表示するアラート状態を選択します。その状態に一致するアラートルールが表示されます。他の状態に一致するルールは非表示になります。

# ミュートタイミング
<a name="v10-alerting-manage-muting"></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 管理のミュートタイミングとミュートタイミングを設定できます。

## ミュートタイミングとサイレンス
<a name="v10-alerting-manage-muting-compare"></a>

次の表に、「ミュートタイミング」と「サイレンス」の違いを示します。


| ミュートタイミング | サイレンス | 
| --- | --- | 
| 繰り返しの時間間隔を定義します。 | 開始時刻と終了時刻を固定します。 | 
| 作成され、通知ポリシーに追加されます。 | ラベルを使用してアラートと照合し、サイレンスするかどうかが判断されます。 | 

## ミュートタイミングの追加
<a name="v10-alerting-manage-muting-add"></a>

ミュートタイミングは Grafana ワークスペースで作成できます。

**ミュートタイミングを追加するには**

1. Grafana コンソールの Grafana メニューで、**[アラート]** を選択します。

1. **[通知ポリシー]** を選択し、**[ミュートタイミング]** タブを選択します。

1. **[アラートマネージャー]** ドロップダウンから、編集するアラートマネージャーを選択します。

1. **[\$1 ミュートタイミングの追加]** ボタンを選択します。

1. フォームに入力して、ミュートタイミングに合わせて一致する[[時間間隔]](#v10-alerting-manage-muting-interval)を作成します。

1. ミュートタイミングを保存します。

## 通知ポリシーへのミュートタイミングの追加
<a name="v10-alerting-manage-muting-add-notif"></a>

ミュートタイミングが設定されたら、一定間隔でミュートする通知ポリシーに追加して使用します。

**通知ポリシーへのミュートタイミングの追加方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** を選択します。

1. **[通知ポリシー]** を選択し、**[通知ポリシー]** タブを選択します。

1. ミュートタイミングを追加する通知ポリシーを選択し、**[...]**、**[編集]** を選択します。

1. **[ミュートタイミング]** ドロップダウンから、ポリシーに追加するミュートタイミングを選択します。

1. 変更内容を保存します。

## 時間間隔
<a name="v10-alerting-manage-muting-interval"></a>

時間間隔は、アラートが抑制される特定の期間です。この期間は通常、特定の時間範囲と曜日、月、または年で構成されます。

サポートされている時間間隔のオプションは次のとおりです。
+ **[時間範囲]** – 開始時間を含み、終了時間を含まない時間 (場所が選択されていない場合は UTC で、それ以外の場合は現地時間)。
+ **Location (場所)** – タイミングの場所を設定します。時間範囲は、その場所の現地時間で表示されます。
+ **[曜日]** – 曜日または一連の曜日。例えば、`monday:thursday`。
+ **[月の日付]** – 1 か月内の日付。値は `1`～`31` の範囲で指定します。負の値は月の日を逆順で指定することを意味します。たとえば、`-1` は月の最終日を表します。
+ **[月]** - 暦月の完全な名前の数値で表された、その年の月。例えば、`1, may:august`。
+ **[年]** - 間隔の年または複数年。例えば、`2023:2024`。

これらの要素はそれぞれリストにすることができ、一致するには要素内の少なくとも 1 つの項目を満たす必要があります。フィールドは、`:` を使用して、範囲もサポートします。例えば、`monday:thursday`。

フィールドを空白のままにすると、任意の時刻をフィールドと照合します。のインスタントが完全な時間間隔と一致するには、すべてのフィールドが一致している必要があります。ミュートタイミングには複数の時間間隔を含めることができます。

正確な期間を指定する場合は、その期間に必要なすべてのオプションを指定します。例えば、3 月、6 月、9 月、12 月の最初の月曜日の 12:00 から 24:00 UTC の時間間隔を作成する場合、時間間隔の指定は次のようになります。
+ ‬時間範囲
  + 開始時間: `12:00`
  + 終了時間: `24:00`
+ 曜日: `monday`
+ 月: `3, 6, 9, 12`
+ 日: `1:7`

# アラートルールの状態と正常性を表示する
<a name="v10-alerting-manage-rulestate"></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)」を参照してください。

アラートルールの状態と正常性は、アラートに関するいくつかの主要なステータスインジケータを提供します。

次の 3 つのコンポーネントがあります。
+ [アラートルールの状態](#v10-alerting-manage-rulestate-state)
+ [アラートインスタンスの状態](#v10-alerting-manage-rulestate-instance)
+ [アラートルールの正常性](#v10-alerting-manage-rulestate-health)

それぞれに関連はありますが、各コンポーネントは微妙に異なる情報を伝達します。

**アラートルールの状態と正常性を表示するには**

1. Grafana コンソールの Grafana メニューで、**[アラート]** を選択します。

1. **[アラートルール]** を選択して、既存のアラートのリストを表示します。

1. アラートルールを選択して、その状態と正常性を表示します。

## アラートルールの状態
<a name="v10-alerting-manage-rulestate-state"></a>

アラートルールは、次のいずれかの状態になります。


| State | 説明 | 
| --- | --- | 
| [普通] | 評価エンジンによって返される時系列のいずれも pending または firing 状態ではありません。 | 
| [保留中] | 評価エンジンから返される少なくとも 1 つの時系列は pending です。 | 
| [発射] | 評価エンジンから返される少なくとも 1 つの時系列は firing です。 | 

**注記**  
アラートは最初に `pending` に移行し、次に `firing` に移行します。そのため、アラートが発生する前に少なくとも 2 つの評価サイクルが必要です。

## アラートインスタンスの状態
<a name="v10-alerting-manage-rulestate-instance"></a>

アラートインスタンスは、次のいずれかの状態になります。


| State | 説明 | 
| --- | --- | 
| [普通] | pending でも firing でもないアラートの状態。すべてが期待どおりに機能しています。 | 
| [保留中] | 設定されたしきい値期間未満でアクティブであったアラートの状態。 | 
| [アラート] | 設定されたしきい値期間よりも長くアクティブであったアラートの状態。 | 
| [データなし] | 設定された時間枠のデータを受信しない状態。 | 
| [アラート] | アラートルールの評価試行中にエラーが発生しました。 | 

## 最後の状態を保持する
<a name="v10-alerting-manage-rulestate-keepstate"></a>

アラートルールは、`NoData` または `Error` 状態が発生したときに最後の状態を保持するように設定できます。これにより、アラートの発射、解決と再発射の両方が防止されます。通常の評価と同様に、アラートルールは保留期間が経過すると `pending` から `firing` に移行します。

## アラートルールの正常性
<a name="v10-alerting-manage-rulestate-health"></a>

アラートルールは、次のいずれかのヘルスステータスを持つことができます。


| State | 説明 | 
| --- | --- | 
| [OK] | アラートルールを評価するときにエラーはありません。 | 
| [エラー] | アラートルールの評価中にエラーが発生しました。 | 
| [NoData] | ルール評価中に返される少なくとも 1 つの時系列にデータがありません。 | 
| \$1status\$1、KeepLast | ルールは別のステータスを受け取りますが、アラートルールの最後の状態を保持するように設定されています。 | 

## NoData とエラーの特別なアラート
<a name="v10-alerting-manage-rulestate-special"></a>

アラートルールの評価で状態 `NoData` または `Error` が生成されると、Grafana アラートは、次の追加ラベルを含むアラートインスタンスを生成します。


| ラベル | 説明 | 
| --- | --- | 
| alertname | 状態に応じて、DatasourceNoData または DatasourceError のいずれか。 | 
| datasource\$1uid | 状態の原因となったデータソースの UID。 | 

**注記**  
追加のラベルを生成するには、[Grafana マネージドアラートルールを設定する](v10-alerting-configure-grafanamanaged.md) のトピックで説明されているように、アラートルールで no data またはエラー処理を `NoData` または `Error` に設定する必要があります。

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

# アラートグループ別に表示およびフィルタリングする
<a name="v10-alerting-manage-viewfiltergroups"></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)」を参照してください。

アラートグループは、アラートマネージャーインスタンスからのグループ化されたアラートを表示します。デフォルトでは、アラートルールは通知ポリシーのデフォルトポリシーのラベルキーによってグループ化されます。共通のアラートルールを 1 つのアラートグループにグループ化することで、重複したアラートルールが発生することを防ぎます。

アラートグループを表示し、特定の条件に一致するアラートルールをフィルター処理することもできます。

**アラートグループを表示するには**

1. Grafana コンソールの Grafana メニューで、**[アラート]** を選択します。

1. **[グループ]** を選択して、既存のグループを表示します。

1. **[アラートマネージャー]** ドロップダウンから、データソースとして外部アラートマネージャーを選択します。

1. **[カスタムグループ化]** ドロップダウンでラベルの組み合わせを選択して、デフォルト以外のグループを表示します。これは、通知ポリシーのグループをデバッグおよび検証するのに役立ちます。

アラートにルートポリシーのグループ化またはカスタムグループ化のいずれかで指定されたラベルが含まれていない場合、アラートは `No grouping` のヘッダーを持つ [すべてのグループを取得] に追加されます。

アラートは、ラベルまたはアラートの状態によってフィルタリングできます。

**ラベルでフィルタリングするには**
+ **[検索]** で既存のラベルを入力して、ラベルに一致するアラートを表示します。

  例えば、`environment=production,region=~US|EU,severity!=warning`。

**状態でフィルタリングするには**
+ **[状態]** では、Active (アクティブ)、Suppressed (抑制)、または Unprocessed (未処理) の状態を選択すると、選択した状態に一致するアラートが表示されます。他のすべてのアラートは非表示になります。

# 通知エラーの表示
<a name="v10-alerting-manage-viewnotificationerrors"></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 アラートマネージャーでのみサポートされています。

**通知エラーを表示するには**

1. 左側のメニューから、**[アラート]**、**[コンタクトポイント]** を続けて選択します。

   いずれかのコンタクトポイントが失敗した場合、ワークスペースの右隅にあるメッセージに、エラーがあることと、その数が表示されます。

1. コンタクトポイントを選択すると、そのコンタクトポイントのエラーの詳細が表示されます。

   エラーアイコンにカーソルを合わせると、エラーの詳細が表示されます。

   コンタクトポイントに複数の統合がある場合、各統合のすべてのエラーが表示されます。

1. [正常性] 列で、通知のステータスを確認します。

   これは、[OK]、[試行なし]、または [エラー]のいずれかです。