

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

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

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

Grafana アラートからは、システムの問題が発生した直後に、サービスの中断を最小限に抑えるための強力で実用的なアラートが提供されます。

Amazon Managed Grafana には最新のアラートシステム *[Grafana アラート]*が含まれており、アラート情報を一元的に管理、検索できるビューが用意されています。以下に、その機能の一部を紹介します。
+ Grafana アラートを一元的に作成および管理できるビュー。
+ Cortex と Loki 管理のアラートを作成および管理できる単一のインターフェイス。詳細については、「[アラートルールの管理](v9-alerting-managerules.md)」を参照してください。
+ Prometheus、Amazon Managed Service for Prometheus、およびその他のアラートマネージャー互換データソースからのアラート情報の表示。
+ 複数のアラートインスタンスを 1 つのアラートルールから作成。詳細については、「[1 次元ルールと多次元ルール](v9-alerting-managerules-grafana.md#v9-alerting-single-multi-rule)」を参照してください。
+ アラートリソースの管理が可能な terraform またはプロビジョニング API。詳細については、「[Grafana アラートリソースのプロビジョニング](v9-alerting-setup-provision.md)」を参照してください。

既存の Amazon Managed Grafana ワークスペースの場合、デフォルトでは [従来のダッシュボードアラート](old-alerts-overview.md) が使用されます。Grafana アラートに移行するには、[Grafana アラートに移行](alert-opt-in.md)する必要があります。

Grafana アラートの詳細については、「[Grafana アラートの新機能](alerts-whats-new.md)」を参照してください。

Grafana アラートには 4 つの主要な構成要素があります。
+ [アラートルール](alert-rules.md) - アラートを発行するかどうかを判断する評価基準。1 つ以上のクエリと式、条件、評価の頻度、およびオプションとしてその条件の持続時間で構成されます。
+ [コンタクトポイント](alert-contact-points.md) - アラートルールの条件が満たされたときに通知の送信先となるチャネル。
+ [通知ポリシー](alert-notifications.md) - 通知の頻度を決定するために使用される一連の一致基準とグループ化基準。
+ [サイレンス](alert-silences.md) - 通知のサイレンスに使用される日付と一致する基準。

Grafana アラートを有効にすると、次のことができます。
+ [Grafana マネージドアラートルールを作成する](alert-rules.md#create-grafana-alert-rule)
+ [Cortex または Loki管理のアラートルールを作成する](alert-rules.md#create-alert-rule)
+ [既存のアラートルールを表示し、現在の状態を管理する](alert-rules.md#manage-alert-rules)
+ [アラートルールの状態と正常性を表示する](alert-fundamentals.md#alerts-state)
+ [アラートのコンタクトポイント (通知先) を追加または編集する](alert-contact-points.md#alert-working-contact-points)
+ [通知ポリシーを追加または編集する](alert-notifications.md#alert-notifications-working)
+ [サイレンスを追加または編集する](alert-silences.md)

## 制限事項
<a name="alert-limitations"></a>
+ Grafana アラートシステムは、利用可能なすべての Amazon Managed Service for Prometheus、Prometheus、Loki、およびアラートマネージャーデータソースからルールを取得できますが、他のサポートされているデータソースからはルールを取得できない場合があります。
+ Prometheus ではなく Grafana で定義されたアラートルールは、複数の通知をコンタクトポイントに送信します。ネイティブ Grafana アラートを使用している場合は、新しい Grafana アラート機能を有効にせず、従来のダッシュボードアラートのまま使用することをお勧めします。Prometheus データソースで定義されたアラートを表示する場合は、Grafana アラートを有効にすることをお勧めします。これにより、Prometheus アラートマネージャーで作成されたアラートの通知が 1 つだけ送信されます。
**注記**  
この制限は、Grafana v10.4 以降をサポートする Amazon Managed Grafana ワークスペースの制限ではなくなりました。

**Topics**
+ [制限事項](#alert-limitations)
+ [Grafana アラートの新機能](alerts-whats-new.md)
+ [従来のダッシュボードアラートを Grafana アラートに移行する](alert-opt-in.md)
+ [アラートの基本](alert-fundamentals.md)
+ [Grafana アラートルールの作成と管理](alert-rules.md)
+ [アラートグループ](alert-groups.md)
+ [Prometheus データソースのアラート通知のサイレンス化](alert-silences.md)
+ [コンタクトポイント (通知先) の使用](alert-contact-points.md)
+ [メッセージテンプレートの使用](alert-message-templates.md)
+ [通知ポリシーの使用](alert-notifications.md)

# Grafana アラートの新機能
<a name="alerts-whats-new"></a>

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

Grafana アラートは、従来のダッシュボードアラートよりもいくつかの機能強化が行われています。

## 多次元アラートの作成
<a name="alerts-new-dimensional"></a>

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

**注記**  
各アラートインスタンスは、アラートのクォータ (上限数) にカウントされます。アラートの上限数を超えるインスタンスを作成する多次元ルールは評価されず、クォータエラーが返されます。詳細については、「[クォータ到達エラー](alert-rules.md#rule-quota-reached)」を参照してください。

## ダッシュボード外のアラートの作成
<a name="alerts-new-not-dashboard"></a>

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

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

## Loki および Cortex のアラートルールの作成
<a name="alerts-new-loki-cortex"></a>

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

## Amazon Managed Service for Prometheus およびその他の Prometheus 互換データソースからのアラートの表示と検索
<a name="alerts-new-prometheus"></a>

Amazon Managed Service for Prometheus および Prometheus 互換データソースのアラートがアラートインターフェイスに一覧表示されるようになりました。これにより、複数のデータソースでラベルを検索して、関連するアラートをすばやく見つけることができます。

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

Grafana アラートは、アラートルールの評価で状態が `NoData` または `Error` のものを生成した場合、次のラベルを持つ特別なアラートを生成します。
+ `alertname` (状態によって `DatasourceNoData` または `DatasourceError` の値を持ちます)。
+ `rulename` (特別なアラートが属するアラートルールの名前を持ちます)。
+ `datasource_uid` (状態の原因となったデータソースの UID を持ちます)。
+ 元のルールのすべてのラベルと注釈。

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

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

# 従来のダッシュボードアラートを Grafana アラートに移行する
<a name="alert-opt-in"></a>

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

既存のワークスペースや、Grafana アラートを使用しないワークスペースには、従来のダッシュボードアラートを利用します。新しい Grafana アラートに移行するには、この機能を利用することに同意する必要があります。

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

**注記**  
Grafana アラートを使用する場合、Grafana で定義されたアラートルールは、Prometheusではなく、複数の通知をコンタクトポイント (通知先) に送信します。ネイティブ Grafana アラートを使用している場合は、新しい Grafana アラート機能を有効にせず、従来のダッシュボードアラートのまま使用することをお勧めします。Prometheus データソースで定義されたアラートを表示する場合は、Grafana アラートを有効にすることをお勧めします。これにより、Prometheus アラートマネージャーで作成されたアラートの通知が 1 つだけ送信されます。  
この制限は、Grafana v10.4 以降をサポートする Amazon Managed Grafana ワークスペースで削除されます。

## Grafana アラートシステムへの移行
<a name="alert-opt-in-migrating"></a>

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

# アラートの基本
<a name="alert-fundamentals"></a>

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

このセクションでは、Grafana アラートの基本概念について説明します。

## アラートの概念
<a name="alert-fundamentals-terms"></a>

以下の表では、Grafana アラート機能の主要な概念について説明しています。


| 主要な概念または機能 | 定義 | 
| --- | --- | 
|  アラートに使用するデータソース  |  メトリクス、ログ、トレースをクエリおよび視覚化するデータソースを選択します。  | 
|  スケジューラー  |  アラートルールを評価するコンポーネントで、データソースに対して定期的にクエリを実行します。これは Grafana が管理するルールにのみ適用されます。  | 
|  アラートマネージャー  |  アラートインスタンスのルーティングとグループ化を管理します。  | 
|  アラートルール  |  アラートルールを発動させる評価基準のセット。アラートルールは、1 つ以上のクエリと式、条件、評価の頻度、その条件の持続時間で構成されます。アラートルールは、複数のアラートインスタンスを生成できます。  | 
|  アラートインスタンス  |  アラートインスタンスは、アラートルールのインスタンスです。1 次元アラートルールには 1 つのアラートインスタンスがあります。多次元アラートルールには 1 つ以上のアラートインスタンスがあります。複数の結果に一致する単一のアラートルール、たとえば 10 台の仮想マシンに対する CPU の監視は、複数 (この場合は 10) のアラートインスタンスとしてカウントされます。この数は時間の経過とともに変動する場合があります。たとえば、システム内のすべての仮想マシンの CPU 使用率を監視するアラートルールは、仮想マシンを追加するとアラートインスタンスが増加します。アラートインスタンスのクォータの詳細については、[クォータ到達エラー](alert-rules.md#rule-quota-reached) を参照してください。  | 
|  アラートグループ  |  アラートマネージャーは、ルート通知ポリシーのラベルを使用して、デフォルトでアラートインスタンスをグループ化します。これにより、コンタクトポイントに送信される重複排除とアラートインスタンスのグループが制御されます。  | 
|  コンタクトポイント  |  アラートルール発生時の通知先への通知方法を定義します。  | 
|  メッセージテンプレート  |  コンタクトポイント使用する再利用可能なカスタムテンプレートを作成します。  | 
|  通知ポリシー  |  アラートがどこで、いつ、どのようにグループ化され、コンタクトポイントにルーティングされるかを定義するルールのセット。  | 
|  ラベルとラベル照合機能  |  ラベルはアラートルールを識別するための一意な識別子です。ラベルによってアラートルールが通知ポリシーとサイレンスに紐づけられ、どのポリシーで処理されるか、どのアラートルールをサイレンス対象にするかを決定します。  | 
|  サイレンス  |  1 つ以上のアラートインスタンスからの通知を停止します。サイレンスとミュートタイミングの違いは、サイレンスは指定した時間帯の間だけ有効であるのに対し、ミュートタイミングは繰り返しのスケジュールに基づいて発生する点です。アラートインスタンスをサイレンス対象とするにはラベル照合機能を使用します。  | 
|  ミュートタイミング  |  通知を新たに生成または送信しない時間間隔を指定します。メンテナンス期間など、繰り返し発生する期間中にアラート通知を停止することができます。既存の通知ポリシーにリンクする必要があります。  | 

## アラートのデータソース
<a name="alert-sources"></a>

Grafana 管理のアラートは、アラートが有効になっている以下のバックエンドデータソースをクエリします。
+ ビルトイン、または Grafana によって開発、維持管理されているデータソース: `Alertmanager`、`Graphite`、`Prometheus` (Amazon Managed Service for Prometheus を含む)、`Loki`、`InfluxDB`、`Amazon OpenSearch Service`、`Google Cloud Monitoring`、`Amazon CloudWatch`、`Azure Monitor`、`MySQL`、`PostgreSQL`、`MSSQL`、`OpenTSDB`、`Oracle`、`Azure Monitor`。

## 数値データのアラート
<a name="alert-numeric"></a>

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

### 表形式のデータ
<a name="alert-tabular-data"></a>

この機能は、MySQL 、Postgres、MSSQL、Oracle などの SQL データソースを含む表形式のデータをクエリするバックエンドデータソースでサポートされています。

Grafana 管理のアラートまたはサーバー側の式を含むクエリは、これらのデータソースでは数値として扱われます。
+ データソースのクエリで `Format AS` オプションが `Table` に設定されている場合。
+ クエリから Grafana に返されたレスポンステーブルの数値列 (int、double、float など) が 1 列だけの場合 (その他文字列が返されている場合も含みます)。

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

### 例
<a name="alert-tabular-example"></a>

例えば、次のような MySQL のテーブル「Diskspace」があるとします。


| 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)
```

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


| ホスト | ディスク | 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="alert-alertmanager"></a>

Grafana にはビルトインで Prometheus アラートマネージャーのサポートが含まれています。アラートマネージャーはアラートルールをグループ化し管理する役割を果たし、アラートエンジンの上にオーケストレーション機能を追加します。デフォルトでは、Grafana 管理のアラートの通知は、Grafana の基本機能の一部として組み込まれているアラートマネージャーによって処理されます。アラートマネージャードロップダウンから Grafana オプションを選択することで、Grafana アラート UI からアラートマネージャーのコンタクトポイント、通知ポリシー、テンプレートを設定できます。

Grafana のアラート機能は、外部アラートマネージャー設定をサポートしています (外部データソースとしてのアラートマネージャーの詳細については、「[アラートマネージャーデータソースに接続する](data-source-alertmanager.md)」を参照してください)。外部アラートマネージャーを追加すると、アラートマネージャードロップダウンに使用可能な外部アラートマネージャーデータソースのリストが表示されます。データソースを選択して、スタンドアロンの Cortex または Loki データソースのアラートを作成および管理します。

## アラートルールの状態と正常性
<a name="alerts-state"></a>

アラートルールの状態と正常性は、アラートに関するいくつかの主要なステータスインジケータを理解するのに役立ちます。主な構成内容は、「アラートの状態」、「アラートルール状態」、「アラートルールの正常性」の 3 つです。これらは関連していますが、それぞれ異なる情報を伝達します。

**アラートルールの状態**
+ **[普通]** – 評価エンジンから返された時系列のいずれも `Pending` または `Firing` の状態でない。
+ **[保留中]**– 評価エンジンから返された時系列の少なくとも 1 つに `Pending` がある。
+ **[発動中]** — 評価エンジンから返された時系列の少なくとも 1 つに `Firing` がある。

**アラートの状態**
+ **[普通]** – 評価エンジンから返されたすべての時系列に対して、アラートルールの条件が **[偽]** である。
+ **[アラート]** – 評価エンジンから返された時系列のうち、1 つ以上のアラートルールの条件が **[真]** である。アラートが発生するために必要な、条件がである持続時間が設定されていて、その持続時間を経過した、または超えている。
+ **[保留中]** – 評価エンジンから返された時系列のうち、1 つ以上のアラートルールの条件が **[真]** である。アラートが発生するために必要な、条件がである持続時間が設定されていて、その持続時間を経過していない。
+ **[NoData]** – アラートルールが時系列を返していない、時系列のすべての値が null、または時系列のすべての値がゼロ。
+ **[エラー]** - アラートルールを評価しようとしてエラーが発生した。

**アラートルールの正常性**
+ **OK** – アラートルールの評価時にエラーがなかった。
+ **[エラー]** – アラートルールの評価時にエラーがあった。
+ **[NoData]** – ルール評価中に返された少なくとも 1 つの時系列にデータが存在しない。

# Grafana アラートルールの作成と管理
<a name="alert-rules"></a>

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

アラートルールは、アラートを発行するかどうかを判断する評価基準のセットです。アラートルールは、1 つ以上のクエリと式、条件、評価の頻度、およびオプションとしてその条件の持続時間で構成されます。

評価するデータセットを「クエリと式」で選択し、「条件」にアラートがアラートを発行するための基準 (しきい値) を設定します。間隔は、アラートルールが評価される頻度を指定します。「持続時間」を設定した場合、その条件下にある状態の継続時間を示します。また、データがない場合のアラート動作も設定できます。

以下のセクションでは、さまざまな種類の Grafana アラートルールの作成と管理について説明します。

**Topics**
+ [Cortex または Loki 管理のアラートルールの作成](#create-alert-rule)
+ [Cortex または Loki 管理のレコードルールの作成](#create-alert-recording-rule)
+ [Grafana 管理のアラートルールの作成](#create-grafana-alert-rule)
+ [アラートルールの注釈とラベル](#alert-rule-labels)
+ [アラートルールの管理](#manage-alert-rules)
+ [Cortex または Loki ルールグループと名前空間](#alert-rule-groups)

## Cortex または Loki 管理のアラートルールの作成
<a name="create-alert-rule"></a>

Grafana では、外部の Cortex または Loki インスタンスのアラートルールを作成することができます。

**注記**  
Cortex は、Amazon Managed Service for Prometheus および Prometheus データソースで使用される時系列データベースです。

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

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

**Cortex または Loki 管理のアラートルールの追加方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開いて既存のアラートを一覧表示します。

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

1. **ステップ 1** で、以下を参照してルール名、タイプ、ストレージの場所を追加します。
   + **[ルール名]** にわかりやすい名前を追加します。この名前はアラートルールリストに表示されます。またこの名前は、このルールから作成されるすべてのアラートインスタンスの `alertname` ラベルにもなります。
   + **[ルールタイプ]** ドロップダウンから、**[Cortex/Loki 管理アラート]**を選択します。
   + **[データソース]の選択**ドロップダウンから、Prometheus または Loki データソースを選択します。
   + **[名前空間]** ドロップダウンから、既存のルール名前空間を選択します。それ以外の場合は、**[新規追加]** を選択し、名前を入力します。名前空間には 1 つ以上のルールグループを含めることができます。これは、組織的な目的を持たせるためのみに使用します。詳細については、「[Cortex または Loki ルールグループと名前空間](#alert-rule-groups)」を参照してください。
   + **[グループ]** ドロップダウンから、選択した名前空間内の既存のグループを選択します。それ以外の場合は、**[新規追加]** を選択し、名前を入力します。新しく作成されたルールは、グループの末尾に追加されます。グループ内のルールは、同じ評価時間で一定の間隔で順番に実行されます。

1. **ステップ 2** で、評価するクエリを追加します。

   値は PromQL または LogQL 式で指定することができます。評価結果に 0 より大きい値を持つシリーズが 1 つ以上ある場合、ルールはアラートを発行します。アラートはシリーズごとに作成されます。

1. **ステップ 3** で、条件を追加します。

   条件の [For] テキストボックスに、アラートが発行されるために必要な条件の継続時間を指定します。例えば `5m` を指定した場合、条件が 5 分間継続した場合にアラートが発行されます。
**注記**  
条件が満たされると、アラートは `Pending` 状態に入り、そのまま指定された期間条件が継続するとアラートは `Firing` 状態に移行します。条件から外れた場合、`Normal` 状態に戻ります。

1. **ステップ 4** で、ルールに関連するメタデータを追加します。
   + アラートメッセージのカスタマイズ時に使用する説明と概要を追加します。ガイドライン「[アラートルールの注釈とラベル](#alert-rule-labels)」を参照してください。
   + Runbook URL、パネル、ダッシュボード、アラート ID を追加します。
   + カスタムラベルを追加します。

1. **[アラートのプレビュー]** を選択してルールを評価し、生成されるアラートを確認します。各アラートの状態と値を含むアラートのリストが表示されます。

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

## Cortex または Loki 管理のレコードルールの作成
<a name="create-alert-recording-rule"></a>

外部 Cortex または Loki インスタンスのレコードルールを作成および管理することができます。記録ルールは、頻繁に必要になる式や計算負荷の高い式を事前に計算し、その結果を新しい時系列セットとして保存します。この新しい時系列のクエリは、特にダッシュボードでは、ダッシュボードが更新されるたびに同じ式をクエリするため、より高速になります。

**前提条件**

Cortex と Loki のデータソースでそれぞれのサービスを設定して Ruler API を有効にします。
+ **Loki** - Loki データソースのデフォルトである `local` ルールストレージタイプは、ルールの表示のみをサポートしています。ルールを編集する場合、他のストレージタイプを設定してください。
+ **Cortex** – Cortex を指すように Grafana Prometheus データソースを設定するときは、`/prometheus` ではなく旧式の `/api/prom` プレフィックスを使用します。Prometheus データソースは Cortex と Prometheus の両方に対応しており、Grafana はクエリ API と Ruler API の両方が同じ URL にあることを期待しています。Ruler API に別の URL を指定することはできません。

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

**Cortex または Loki 管理のレコードルールの追加方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開いて既存のアラートを一覧表示します。

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

1. **ステップ 1** で、以下を参照してルール名、タイプ、ストレージの場所を追加します。
   + **[ルール名]** にわかりやすい名前を追加します。この名前はアラートルールリストに表示されます。またこの名前は、このルールから作成されるすべてのアラートインスタンスの `alertname` ラベルにもなります。
   + **[ルールタイプ]** ドロップダウンから、**[Cortex/Loki 管理アラート]**を選択します。
   + **[データソース]の選択**ドロップダウンから、Prometheus または Loki データソースを選択します。
   + **[名前空間]** ドロップダウンから、既存のルール名前空間を選択します。それ以外の場合は、**[新規追加]** を選択し、名前を入力します。名前空間には 1 つ以上のルールグループを含めることができます。これは、組織的な目的を持たせるためのみに使用します。詳細については、「[Cortex または Loki ルールグループと名前空間](#alert-rule-groups)」を参照してください。
   + **[グループ]** ドロップダウンから、選択した名前空間内の既存のグループを選択します。それ以外の場合は、**[新規追加]** を選択し、名前を入力します。新しく作成されたルールは、グループの末尾に追加されます。グループ内のルールは、同じ評価時間で一定の間隔で順番に実行されます。

1. **ステップ 2** で、評価するクエリを追加します。

   値は PromQL または LogQL 式で指定することができます。評価結果に 0 より大きい値を持つシリーズが 1 つ以上ある場合、ルールはアラートを発行します。アラートはシリーズごとに作成されます。

1. **ステップ 3** で、ルールに関連するメタデータを追加します。
   + アラートメッセージのカスタマイズ時に使用する説明と概要を追加します。ガイドライン「[アラートルールの注釈とラベル](#alert-rule-labels)」を参照してください。
   + Runbook URL、パネル、ダッシュボード、アラート ID を追加します。
   + カスタムラベルを追加します。

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

## Grafana 管理のアラートルールの作成
<a name="create-grafana-alert-rule"></a>

Grafana では、1 つ以上のデータソースをクエリして結果を集約または変換して、それらを相互に比較したり、固定のしきい値と比較したりするアラートルールを作成することができます。これらが処理された場合、Grafana はコンタクトポイント (通知先) に通知を送信します。

**注記**  
Grafana アラートの使用中に Grafana 管理のアラートルールを作成すると、ルールが一致した際に複数の通知が送信されます。一部のコンタクトポイントとなるプロバイダーには、重複した通知を避けるための設定可能なオプションがある場合があります。

**Grafana 管理のルールの追加方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開いて既存のアラートを一覧表示します。

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

1. **ステップ 1** で、以下を参照してルール名、タイプ、ストレージの場所を追加します。
   + **[ルール名]** にわかりやすい名前を追加します。この名前はアラートルールリストに表示されます。またこの名前は、このルールから作成されるすべてのアラートインスタンスの `alertname` ラベルにもなります。
   + **[ルールタイプ]** ドロップダウンから、**[Grafana 管理のアラート]** を選択します。
   + **[フォルダ]** ドロップダウンから、ルールの保存先となるフォルダを選択します。フォルダを選択しない場合、ルールは `General` フォルダに保存されます。フォルダを作成する場合、ドロップダウンを選択し、新しいフォルダ名を入力します。

1. **ステップ 2** で、評価するクエリと式を追加します。
   + 名前はデフォルトのままでも構いませんが、変更する場合、カーソルを合わせて編集アイコンを選択します。
   + クエリの場合、ドロップダウンからデータソースを選択します。
   + 1 つ以上の[クエリ](panel-queries.md)または式を追加します (式の詳細については、*Grafana ドキュメント*の「[式](https://grafana.com/docs/grafana/next/panels/query-a-data-source/)」を参照してください)。
   + 式ごとに **[クラシック条件]**を選択して単一のアラートルールを作成するか、**[Math]**、**[削減]**、**[リサンプリング]** オプションから選択して、各シリーズに個別のアラートを作成します。これらのオプションの詳細については、「[1 次元ルールと多次元ルール](#single-multi-rule)」を参照してください。
   + **[Run queries]** (クエリの実行) を選択して、クエリが正しく動作すことを確認します。

1. **ステップ 3** で、条件を追加します。
   + **[条件]** ドロップダウンから、アラートルールを発動させるクエリまたは式を選択します。
   + **Evaluate every** (～ごとに評価する) には、評価の頻度を指定します。10 秒の倍数である必要があります。例えば、`1m` や `30s` などです。
   + **[評価対象]** には、アラートが発行されるために必要な条件の継続時間を指定します。
**注記**  
条件が違反すると、アラートは `Pending` 状態に入り、そのまま指定された期間条件の違反が継続するとアラートは `Firing` 状態に移行します。条件から外れた場合、`Normal` 状態に戻ります。
   + **[Configure no data and error handling]** (データがない場合の設定とエラー処理) で、データがない場合のアラート動作を設定します。「[データがない場合やエラーが発生した場合の対処](#rule-no-data-error)」のガイドラインを参照してください。
   + **[アラートのプレビュー]** を選択してルールを評価し、生成されるアラートを確認します。プレビューでは、データとエラー処理条件は除外されます。

1. **ステップ 4** で、ルールに関連するメタデータを追加します。
   + アラートメッセージのカスタマイズ時に使用する説明と概要を追加します。ガイドライン「[アラートルールの注釈とラベル](#alert-rule-labels)」を参照してください。
   + Runbook URL、パネル、ダッシュボード、アラート ID を追加します。
   + カスタムラベルを追加します。

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

### 1 次元ルールと多次元ルール
<a name="single-multi-rule"></a>

Grafana 管理のアラートルールでは、従来の条件を使用してルールを作成することも、多次元ルールを作成することもできます。

**1 次元ルール (従来の条件)**

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

式のフォーマット方法の詳細については、*Grafana ドキュメント*の「[式](https://grafana.com/docs/grafana/next/panels/query-a-data-source/)」を参照してください。

**多次元ルール**

クエリで返されるシリーズごとに個別のアラートインスタンスを生成するには、多次元ルールを作成します。

**注記**  
多次元ルールによって生成された各アラートインスタンスは、アラートの合計クォータにカウントされます。クォータに達すると、ルールは評価されなくなります。多次元ルールのクォータの詳細については、「[クォータ到達エラー](#rule-quota-reached)」を参照してください。

1 つのルールから複数のインスタンスを作成するには、`Math`、`Reduce`、または `Resample` 式を使用して多次元ルールを作成します。例えば、以下のことが可能です:
+ 各クエリに `Reduce` 式を追加すると、選択した時間範囲の値が 1 つの値に集計されます。([数値データ を使用するルール](alert-fundamentals.md#alert-numeric)には必要ありません)。
+ ルールの条件を含む `Math` 式を追加します。もしクエリや reduce 式がすでにアラートを発行すべき場合は正の数、発行しない場合に 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)」を参照してください。



**多次元ルールのパフォーマンスに関する考慮事項**

各アラートインスタンスは、アラートのクォータ (上限数) にカウントされます。アラートの上限数を超えるインスタンスを作成する多次元ルールは評価されず、クォータエラーが返されます。詳細については、「[クォータ到達エラー](#rule-quota-reached)」を参照してください。

多次元アラートは、Grafana ワークスペースや、Grafana がアラートルールを評価するためにクエリを実行するデータソースのパフォーマンスに大きな影響を与える可能性があります。監視システムのパフォーマンスを最適化したい場合、以下の考慮事項を参照してください。
+ **ルール評価の頻度** – アラートルールの **[Evaluate Every]** (～ごとに評価する) プロパティでルール評価の頻度を制御します。評価の頻度を許容可能な最小頻度に収めることをお勧めします。
+ **結果セットのカーディナリティ** – ルールで作成されるアラートインスタンスの数は直接そのパフォーマンスに影響します。例えば、すべての仮想マシン上の各 API パスごとに API 応答エラーを監視しているとします。このセットのカーディナリティは「パスの数 × 仮想マシンの数」になります。例えば、仮想マシンあたりのパスごとではなく、仮想マシンあたりの合計エラー数を監視することで、結果セットのカーディナリティを減らすことができます。
+ **クエリの複雑さ** – データソースが迅速に処理して応答できるクエリにするだけで、リソースの消費を大幅に抑えることができます。これは他の考慮事項よりは重要度が低いものの、他の点での最適化が十分に行われている場合、個別のクエリパフォーマンスの見直しが役立つ可能性があります。また、これらのルールの評価がデータソースに与える影響にも注意する必要があります。アラートクエリは、監視データベースで処理されるクエリの大部分を占めることが多いため、Grafana インスタンスにかかる負荷要因がデータソースにも同様に影響を与えます。

### クォータ到達エラー
<a name="rule-quota-reached"></a>

1 つのワークスペース内に保持できるアラートインスタンスの数にはクォータ (上限) があります。この上限に達した場合、そのワークスペースにこれ以上新たにアラートルールを作成できなくなります。多次元アラートでは、アラートインスタンスの数は時間の経過とともに変動する場合があります。

以下に、アラートインスタンスを使用する際に覚えておくべき重要な点について紹介します。
+ 作成するのが 1 次元ルールのみの場合、ルールからはそれぞれ 1 つのアラートインスタンスが作成されます。1 つのワークスペースに作成できるルールの上限は、アラートインスタンスのクォータ数までとなります。
+ 多次元ルールからは複数のアラートインスタンスが作成されますが、その数は評価されるまでわかりません。例えば、Amazon EC2 インスタンスの CPU 使用率を追跡するアラートルールを作成した場合、最初は 50 台の EC2 インスタンスが対象となり、50 個のアラートインスタンスが作成されますが、1 週間後にさらに 10 台の EC2 インスタンスが追加された場合、次の評価時には 60 個のアラートインスタンスが存在することになります。

  アラートインスタンスの数は、多次元アラートを作成するときに評価され、アラートインスタンスのクォータをすぐに超えるインスタンスを作成することはできません。アラートインスタンスの数は変動する可能性があるため、ルール評価の都度クォータがチェックされます。
+ 評価時に、ルールがアラートインスタンスのクォータを超える場合、アラートルールが更新されアラートインスタンスの合計数がサービスクォータを下回るまで、そのルールは評価されません。この場合、クォータに達したことを通知するアラート通知を受け取ります (通知は評価対象のルールの通知ポリシーを基に送信されます)。通知には、`QuotaReachedError` 値を含む `Error` 注釈が含まれています。
+ `QuotaReachedError` を引き起こすルールは、評価されなくなります。評価は、更新が行われ、更新後の評価が `QuotaReachedError` を引き起こさなくなった場合にのみ再開されます。評価されていないルールは、Grafana コンソールに**クォータ到達**エラーが表示されます。
+ アラートインスタンスの数を減らすには、アラートルールを削除するか、複数次元のアラートを編集してアラートインスタンスを減らします (例えば、仮想マシン内の API ごとに 1 個のアラートではなく、仮想マシンごとの 1 件のエラーに対して 1 個のアラートを持つようにします)。
+ 評価を再開するには、アラートを更新して保存します。アラートインスタンスの数を減らすように更新することもできますし、インスタンス数を減らすために他の変更を加えた場合、変更なしで保存しても構いません。再開可能な場合、評価が再開されます。さらに別の `QuotaReachedError` を引き起こす結果となった場合、保存することはできません。
+ アラートが保存され、アラートクォータを超えることなく評価が再開された場合、Grafana コンソールにはしばらくの間**クォータ到達**エラーが (次の評価間隔まで) 表示され続けることがありますが、アラートルール評価が開始され、ルールのしきい値に達するとアラートが送信されます。
+ アラートのクォータおよびその他のクォータの詳細については、「[Amazon Managed Grafana のサービスクォータ](AMG_quotas.md)」を参照してください。

### データがない場合やエラーが発生した場合の対処
<a name="rule-no-data-error"></a>

データがない場合やエラーが発生した場合のアラート動作の処理方法を選択します。

データがない場合に選択できる処理方法を、以下の表に照会します。


| データがない場合の選択肢 | 行動 | 
| --- | --- | 
|  データなし  |  アラートルールの名前と UID、およびラベルとしてデータを返さないデータソースの UID を使用したアラート `DatasourceNoData` を作成します。  | 
|  [アラート]  |  アラートルールの状態を `Alerting` に設定します。  | 
|  OK  |  アラートルールの状態を `Normal` に設定します。  | 

エラーが発生した場合に選択できる処理方法を、以下の表に照会します。


| エラーまたはタイムアウト時の選択肢 | 行動 | 
| --- | --- | 
|  [アラート]  |  アラートルールの状態を `Alerting` に設定します  | 
|  OK  |  アラートルールの状態を `Normal` に設定します  | 
|  エラー  |  アラートルールの名前と UID、およびラベルとしてデータを返さないデータソースの UID を使用したアラート `DatasourceError` を作成します。  | 

## アラートルールの注釈とラベル
<a name="alert-rule-labels"></a>

注釈とラベルは、アラートルール、データソースのレスポンス、およびアラートルール評価の結果として発生するアラートに関連付けられたキーと値のペアです。これらは、アラート通知の内容として直接使用することも、[テンプレート](alert-message-templates.md)や[テンプレート関数](alert-message-templates.md#alert-template-functions)で使用して、通知内容を動的に作成することもできます。

**注釈**

注釈は、アラートに関する追加情報を提供するキーと値のペアです。`description`、`summary`、`runbook_url`、`alertId`、`dashboardUid`、`panelId` の注釈を使用できます。これらは UI のルールとアラートの詳細に表示され、コンタクトポイントのメッセージテンプレートで使用できます。

**ラベル**

ラベルは、アラートに関する情報を含むキーと値のペアです。アラートのラベルセットは、アラート評価および通知プロセス全体で生成および追加されます。これらは以下の方法で使用されます。
+ アラートの完全なラベルセットを使用することで、Grafana Alerts 内でそのアラートが一意に識別されます。
+ アラートマネージャーはラベルを使用して、[[通知ポリシー]](alert-notifications.md)の[[サイレンス]](alert-silences.md)と[[アラートグループ]](alert-groups.md)のアラートを照合します。
+ アラート UI には、そのルールの評価によって生成されたすべてのアラートインスタンスのラベルが表示されます。
+ コンタクトポイントには、通知を生成する際にラベルにアクセスして、そのアラートに固有の情報を含めることができます。
+ ラベルは[アラートルール](#alert-rules) に追加できます。これらの手動で設定されたラベルは、テンプレート関数を使用したり、他のラベルを参照することができます。ここでアラートルールに追加されたラベルは、ラベル間で衝突が発生した場合に優先されます。

以下に、注釈とラベルを展開する際に使用できる変数を紹介します。


| 名前 | 説明 | 
| --- | --- | 
|  `$labels`  |  クエリまたは条件からのラベル。例えば、`{{ $labels.instance }}` と `{{ $labels.job }}` です。これは、ルールが従来の条件を使用している場合には使用できません。  | 
|  `$values`  |  このアラートルールで評価されたすべての reduce と math 式の値。たとえば、`{{ $values.A }}`、`{{ $values.A.Labels }}`、`{{ $values.A.Value }}` などです。式の `refID` は、`A` にあたります。これは、ルールが従来の条件を使用している場合には使用できません。  | 
|  `$value`  |  アラートインスタンスの値の文字列。例えば、`[ var='A' labels={instance=foo} value=10 ]`。  | 

## アラートルールの管理
<a name="manage-alert-rules"></a>



**[アラート]** ページには、アラートルールが一覧表示されます。デフォルトでは、ルールはデータソースの種類ごとにグループ化されます。**Grafana** セクションには Grafana によって管理されるルールが一覧表示され、**Cortex/Loki** セクションには Prometheus 互換データソースのルールが一覧表示されます。Prometheus 互換データソースのアラートルールは表示できますが、編集することはできません。

### アラートルールの表示
<a name="manage-alerts-view"></a>

Grafana アラートを使用すると、すべてのアラートを 1 ページに表示できます。

**アラートの詳細を表示するには**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開きます。デフォルトでは、ルールはデータソースの種類ごとにグループ化して表示されます。各アラートの現在の状態別に表示することもできます (詳細については後述します)。

1. **[表示形式]** では、グループビューと状態ビューを切り替えることができます。

1. 行の横にある矢印を選択すると、その行の詳細が表示されます。ルールの詳細には、ルールのラベル、注釈、データソース、クエリ、およびルールから生成されたアラートインスタンスのリストが含まれます。

**グループビュー**

グループビューには、フォルダ別にグループ化された Grafana アラートルールと、`namespace` \$1 `group` 別にグループ化された Loki または Prometheus アラートルールが表示されます。これは、ルールの管理を目的としたデフォルトのルールリストビューです。各グループを展開すると、そのグループ内のルールのリストが表示されます。さらにルールを展開すると、その詳細を見ることができます。また、ルールから生成されたアクションボタンとアラートを展開して、詳細を表示することもできます。

**状態ビュー**

状態ビューには、アラートルールが状態ごとグループ化されて表示されます。このビューを使用すると、各ルールがどの状態にあるかを一目で確認できます。各ルールは展開して詳細を表示することがでます。アクションボタンとこのルールによって生成されたアラート、および各アラートをさらに展開して詳細を表示することができます。

**アラートルールのフィルター**

**[アラート]** ページに表示されるアラートルールは、いくつかの方法でフィルタリングできます。
+ 特定のデータソースを使用するルールだけを表示するには **[データソースの選択]** でフィルタリングするデータソースを選択します。
+ また、**[ラベルで検索]** から検索条件を選択して、ラベルでフィルタリングすることもできます。例えば、`environment=production`、`region=~US|EU`、`severity!=warning` などの条件で検索できます。
+ 特定の状態のルールだけを表示するには **[状態でアラートをフィルタリング]** で表示する状態を選択します。

### アラートルールの編集または削除
<a name="manage-alerts-edit"></a>

Grafana管理のアラートルールの編集または削除は、ルールが保存されているフォルダに対する編集権限を持つユーザーのみが行うことができます。外部 Cortex または Loki インスタンスのアラートルールの編集または削除は、エディタまたは管理者ロールを持つユーザーが行うことができます。

**ルールを編集または削除するには**

1. **表示**、**編集**、**削除**のルールコントロールが表示されるまでルールを展開します。

1. **[編集]** を選択してルールの作成ページを開きます。更新方法はルール作成方法と同じです。詳細については、「[Grafana 管理のアラートルールの作成](#create-grafana-alert-rule)」または「[Cortex または Loki 管理のアラートルールの作成](#create-alert-rule)」の手順を参照してください。

1. 削除する場合は [**削除**] を選択してルールを削除します。

## Cortex または Loki ルールグループと名前空間
<a name="alert-rule-groups"></a>

ルールは整理することができます。ルールはルールグループ内に作成され、ルールグループは名前空間に整理されます。ルールグループ内のルールは、一定の間隔で順次実行されます。デフォルトの間隔は 1 分です。また、Cortex または Loki の名前空間とルールグループの名前を変更したり、ルールグループの評価間隔を編集することができます。

**ルールグループまたは名前空間の編集方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開きます。

1. 編集するルールグループまたは名前空間内のルールに移動します。

1. **[編集]** (ペン) アイコンを選択します。

1. ルールグループまたは名前空間に変更を加えます。
**注記**  
名前空間では、名前のみを編集できます。ルールグループの場合、名前、またはグループ内のルールの評価間隔を変更します。たとえば、ルールを 1 分ごとに評価する場合は `1m` を選択し、30 秒ごとに評価する場合は `30s` を選択します。

1. **[変更の保存]** をクリックします。

# アラートグループ
<a name="alert-groups"></a>

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

アラートグループは、アラートマネージャーインスタンスからのグループ化されたアラートを表示します。デフォルトでは、アラートは [通知ポリシーの使用](alert-notifications.md) のルートポリシーのラベルキーでグループ化されます。共通のアラートを 1 つのアラートグループにグループ化することで、重複したアラートが発生することを防ぎます。

**アラートグループの表示方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択し、**[アラートグループ化]** 項目を選択すると、現在設定されているグループの一覧が表示されるページが開きます。

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

1. **[カスタムグループ化対象]** ドロップダウンから、グループ化を表示するラベルの組み合わせを選択します。このビューを使用して、通知ポリシーのグループ化をデバッグしたり検証することができます。

ルートポリシーのグループ化またはカスタムグループ化で指定されたラベルのないアラートは、`No grouping` のヘッダーのグループに追加されます。

**アラートのフィルタリング**

アラートは、次のフィルターを使用して、特定の条件に一致するものだけを表示することができます。
+ **[ラベルで検索]** – **[検索]** に既存のラベルを入力すると、ラベルに一致するアラートが表示されます。例えば、`environment=production`、`region=~US|EU`、`severity!=warning` などです。
+ **[状態別にアラートをフィルタ]** – **[状態]**] で、`Active`、`Suppressed`、`Unprocessed` のいずれかを選択すると、その状態のアラートが表示されます。

# Prometheus データソースのアラート通知のサイレンス化
<a name="alert-silences"></a>

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

外部のアラートマネージャーデータソース (Amazon Managed Service for Prometheus を含む) では、*[サイレンス]*機能を使用してアラート通知を停止できます。サイレンスは通知の作成を停止するだけで、アラートルールの評価やユーザーインターフェースへのアラートインスタンスの表示は引き続き行われます。アラートをサイレンスにする場合、停止する時間枠を指定します。

外部アラートマネージャーデータソースのサイレンスを設定できます。

**注記**  
アラート通知を一定の時間間隔 (定期的なメンテナンス期間中など) で停止するには、サイレンスではなく [ミュートタイミング](alert-notifications.md#alert-notification-muting) を使用します。

**サイレンスの追加方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開きます。

1. [**サイレンス**] を選択するとページが開き、既存の[コンタクトポイント](alert-contact-points.md)が一覧表示されます。

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

1. **[新規サイレンス]** を選択します。

1. **[サイレンスの開始と終了]** でサイレンスを有効にする開始日と終了日を選択します。

   終了時刻を設定する代わりに、**[期間]** でサイレンスが適用される期間を指定します。この方法を使用すると、**[サイレンスの開始と終了]** フィールドの終了時刻が自動的に更新されます。

1. **[名前]** および **[値]** のフィールドには、1 つ以上の*一致するラベル*を入力します。照合機能により、どのルールにサイレンスを適用するかが決定されます。ラベルの照合については、この手順の後に詳しく説明します。

1. 必要に応じて、**コメント**を追加したり、**作成者**を変更してサイレンスの所有者を設定することができます。

**アラート停止のラベル一致**

サイレンスの作成時に、サイレンスの一部として*一致するラベル*のセットを作成します。これは、アラートが停止されるために一致する必要があるラベルに関するルールのセットです。一致するラベルは、次の 3 つの部分で構成されます。
+ **ラベル** – 一致させるラベルの名前。アラートのラベル名と完全に一致する必要があります。
+ **[演算子]** – ラベル値と一致するラベル値の比較に使用される演算子。利用できる演算子は次のとおりです。
  + `=` 値が指定された文字列と完全に一致するラベルが選択されます。
  + `!=` 値が指定された文字列と一致しないラベルが選択されます。
  + `=~` 指定された文字列の正規表現解釈値と一致するラベルが選択されます (指定された文字列は正規表現として解釈されます)
  + `!=` 指定された正規表現と一致しないラベルが選択されます。
+ **[値])** – ラベル値と一致する値。選択した演算子に応じて、文字列または正規表現として照合させることができます。

サイレンスは指定された終了日に終了しますが、いつでも手動で停止状態を解除することができます。

**サイレンスを手動で終了する方法**

1. **[アラート]** ページで、**[サイレンス]** を選択して既存のサイレンスのリストを表示します。

1. 終了するサイレンスを選択し、**[サイレンス解除]** を選択します。この操作によりアラートの停止状態は終了します。
**注記**  
サイレンス解除を行うと、終了時刻が現在の時刻に設定されたものとして、アラートの停止状態が終了します。（自動または手動を問わず）終了したサイレンスは5 日間保持され、一覧表示されます。リストからサイレンスを手動で削除することはできません。

**サイレンス作成フォームへのリンクの作成**

詳細が既に入力されているサイレンス作成フォームへの URL を作成できます。オペレータはこれを使用して、運用上のイベントを行う際にアラームをすばやく停止することができます。

サイレンスフォームへのリンクを作成するときは、`matchers` クエリパラメータを使用して一致するラベルを指定し、`comment` クエリパラメータを使用してコメントを指定します。`matchers` パラメータには、カンマで区切られた `[label][operator][value]` 形式の 1 つ以上の値が必要です。

**URL の例**

ラベル `severity=critical` と `cluster!~europe-.*` が一致し、`Silencing critical EU alerts` というコメントが付いたサイレンスフォームにリンクするには、次のような URL を使用します。*mygrafana* を Grafana インスタンスのホスト名に置き換えてください。

```
https://mygrafana/alerting/silence/new?matchers=severity%3Dcritical%2Ccluster!~europe-*&comment=Silence%20critical%20EU%20alert
```

外部アラートマネージャーの新しいサイレンスページにリンクする場合、アラートマネージャーデータソース名を含む `alertmanager` クエリパラメータを追加します (例: `alertmanager=myAlertmanagerdatasource`)。

# コンタクトポイント (通知先) の使用
<a name="alert-contact-points"></a>

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

連絡窓口は、アラート発生時の通知の受け取り方の設定に使用します。コンタクトポイントには、Amazon Simple Notification Service や Slack など、1 つ以上の通知方法を指定できます。アラートが発生すると、コンタクトポイントにリストされているすべての連絡窓口タイプに通知が送信されます。必要に応じて、[メッセージテンプレートの使用](alert-message-templates.md) を使用して通知メッセージをカスタマイズすることができます。

**注記**  
Grafana で管理されるアラートの通知先 (コンタクトポイント) は、作成および編集が可能です。アラートマネージャーアラートの通知先 (コンタクトポイント) は読み取り専用です。

## コンタクトポイント (通知先) の使用
<a name="alert-working-contact-points"></a>

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

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

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開きます。

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

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

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

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

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

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

1. コンタクトポイントにコンタクトポイントタイプを追加したい場合は、**新しいコンタクトポイントタイプ**を選択し、必要なコンタクトポイントタイプごとに同じ手順を繰り返します。

1. **[コンタクトポイントの保存]** を選択して変更を保存します。

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

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

1. 編集する連絡先を選択し、**[編集]** アイコン (ペン) を選択します。

1. 必要な変更を加え、**[コンタクトポイントの保存]** を選択して変更を保存します。

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

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

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

1. テストする連絡先を選択し、**[編集]** アイコン (ペン) を選択します。

1. **[テスト]** アイコン (紙飛行機) を選択します。

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

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

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

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

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

1. 削除する連絡先を選択し、**[削除]** アイコン (ゴミ箱) を選択します。

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

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

## サポートされている通知方法の一覧
<a name="alert-supported-notifiers"></a>


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

# メッセージテンプレートの使用
<a name="alert-message-templates"></a>

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

[コンタクトポイント (通知先) の使用](alert-contact-points.md) 経由で送信される通知は、*メッセージングテンプレート*を使用して構築されます。Grafana のデフォルトテンプレートは [Go テンプレートシステム](https://golang.org/pkg/text/template)に基づいており、一部のフィールドはテキストとして評価され、他のフィールドは HTML (エスケープに影響する可能性があります) として評価されます。

コンタクトポイントに使用するほとんどのフィールドはテンプレート化できるため、再利用可能なカスタムテンプレートを作成し、複数のコンタクトポイントで使用すると良いでしょう。この [テンプレートのデータ](#alert-template-data) トピックでは、テンプレートに使用できる変数一覧を紹介します。

**テンプレートの使用**

テンプレートはメッセージを作成するために使用されます。例えば、Slack のアラートメッセージでは、コンタクトポイントにタイトルと本文を設定することができます。次の例では、デフォルトのテンプレートを使用して、発行されたアラートの件数と解決済みのアラートの件数を含むタイトルと、アラートとそのステータスを一覧表示する本文を作成する方法を紹介します。
+ **タイトル**:

  ```
  {{ len .Alerts.Firing }} firing, {{ len .Alerts.Resolved }} resolved
  ```
+ **本文テキスト**: 

  ```
  {{ range .Alerts }}{{ .Status }}: {{ .Labels.alertname }}
  {{end }}
  ```

カスタムテンプレートは次のように作成します。
+ **タイトル**:

  ```
  {{ template "slack.default.title" .}}
  ```
+ **本文テキスト**: 

  ```
  {{ template "mymessage" .}}
  ```

以下はサンプルテンプレートです。

```
{{ define "myalert" }}
  [{{.Status}}] {{ .Labels.alertname }}

  Labels:
  {{ range .Labels.SortedPairs }}
    {{ .Name }}: {{ .Value }}
  {{ end }}

  {{ if gt (len .Annotations) 0 }}
  Annotations:
  {{ range .Annotations.SortedPairs }}
    {{ .Name }}: {{ .Value }}
  {{ end }}
  {{ end }}

  {{ if gt (len .SilenceURL ) 0 }}
    Silence alert: {{ .SilenceURL }}
  {{ end }}
  {{ if gt (len .DashboardURL ) 0 }}
    Go to dashboard: {{ .DashboardURL }}
  {{ end }}
{{ end }}
```

以下に、カスタムメッセージテンプレートを作成、編集、削除する手順を紹介します。

**メッセージテンプレートの作成方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開きます。

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

1. **[アラートマネージャー]** ドロップダウンから、メッセージテンプレートを作成するアラートマネージャーインスタンスを選択します。デフォルトは Grafana アラートマネージャーです。

1. **テンプレートを追加**を選択します。

1. わかりやすい**名前**を付けます。

1. テンプレートの**内容**を追加します。例:

   ```
   {{ define "mymessage" }}
     {{ range .Alerts }}
       [{{ .Status }}] {{ range .Labels }} {{ .Name }}={{.Value }}{{end}}
     {{ end }}
   {{ end }}
   ```

   コンテンツセクションの `define` タグは、テンプレート名を割り当てます。このタグはオプションです。省略した場合、テンプレート名は**名前**フィールドから取得されます。両方を指定する場合、一致させておくことが推奨されます。

1. **[テンプレートを保存]** を選択します。

**注記**  
アラートメッセージテンプレートの HTML はテキストとして表示され、制御文字はエスケープされます。Grafana では、通知での HTML 形式の表示はサポートされていません。

**メッセージテンプレートを編集するには**

1. **アラート**ページで、**[コンタクトポイント]**を選択してコンタクトポイントのリストを開きます。

1. **テンプレートテーブル**の編集するテンプレートで**編集**アイコン (ペン) を選択します。

1. 変更後、[**テンプレートを保存**] を選択します。

**メッセージテンプレートを削除するには**

1. **アラート**ページで、**[コンタクトポイント]**を選択してコンタクトポイントのリストを開きます。

1. **テンプレートテーブル**の削除するテンプレートで**削除**アイコン (ゴミ箱) を選択します。

1. [**はい、削除します**] を選択してテンプレートを削除します。

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

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

例えば、`define` キーワードを使用してテンプレートの一部を定義することができます。

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

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

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

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


| 名前 | 注意事項 | 
| --- | --- | 
|  `default.title`  |  全体的なステータス情報を表示します。  | 
|  `default.message`  |  発生中および解決済みのアラートの概要をフォーマット付きで提供します。  | 

**カスタムテンプレートの例**

以下にカスタムテンプレートの使用方法の例を紹介します。

単一のアラートを表示するテンプレート:

```
{{ define "myalert" }}
  [{{.Status}}] {{ .Labels.alertname }}

  Labels:
  {{ range .Labels.SortedPairs }}
    {{ .Name }}: {{ .Value }}
  {{ end }}

  {{ if gt (len .Annotations) 0 }}
  Annotations:
  {{ range .Annotations.SortedPairs }}
    {{ .Name }}: {{ .Value }}
  {{ end }}
  {{ end }}

  {{ if gt (len .SilenceURL ) 0 }}
    Silence alert: {{ .SilenceURL }}
  {{ end }}
  {{ if gt (len .DashboardURL ) 0 }}
    Go to dashboard: {{ .DashboardURL }}
  {{ end }}
{{ end }}
```

通知メッセージ全体を表示するテンプレート:

```
{{ define "mymessage" }}
  {{ if gt (len .Alerts.Firing) 0 }}
    {{ len .Alerts.Firing }} firing:
    {{ range .Alerts.Firing }} {{ template "myalert" .}} {{ end }}
  {{ end }}
  {{ if gt (len .Alerts.Resolved) 0 }}
    {{ len .Alerts.Resolved }} resolved:
    {{ range .Alerts.Resolved }} {{ template "myalert" .}} {{ end }}
  {{ end }}
{{ end }}
```

## テンプレートのデータ
<a name="alert-template-data"></a>

メッセージテンプレートには、次のデータが渡されます。


| 名前 | 型 | 注意事項 | 
| --- | --- | --- | 
|  `Receiver`  |  string  |  コンタクトポイント (通知先) の名前。  | 
|  `Status`  |  string  |  少なくとも 1 つのアラートが発生している場合は「発生中」となり、それ以外の場合「解決済」となります。  | 
|  `Alerts`  |  アラート  |  この通知に含まれるアラートオブジェクトのリスト (以下を参照)。  | 
|  `GroupLabels`  |  KeyValue  |  これらのアラートがグループ化されたラベル。  | 
|  `CommonLabels`  |  KeyValue  |  この通知に含まれるすべてのアラートに共通のラベル。  | 
|  `CommonAnnotations`  |  KeyValue  |  この通知に含まれるすべてのアラートに共通する注釈。  | 
|  `ExternalURL`  |  string  |  通知の送信元である Grafana へのリンク。外部のアラートマネージャーを使用している場合、そのアラートマネージャーへのリンク。  | 

`Alerts` 型には、返されたアラートをフィルタリングするための 2 つの関数があります。
+ `Alerts.Firing` – 発生中のアラートのリストを返します。
+ `Alerts.Resolved` – 解決済みのアラートのリストを返します。

**アラート (型)**

アラート型には、次のデータがあります。


| 名前 | 型 | 注意事項 | 
| --- | --- | --- | 
|  ステータス  |  string  |  `firing` または `resolved`  | 
|  ラベル  |  KeyValue  |  アラートに付与された一連のラベル。  | 
|  ‏注釈  |  KeyValue  |  アラートに付与された一連の注釈。  | 
|  StartsAt  |  time.Time  |  アラートが発行された時刻。  | 
|  EndsAt  |  time.Time  |  アラートの終了時刻がわかっている場合にのみ設定されます。それ以外の場合、最後にアラートを受信してから設定可能なタイムアウト期間が適用されます。  | 
|  GeneratorURL  |  string  |  Grafana または外部アラートマネージャーへのリンク。  | 
|  SilenceURL  |  string  |  このアラートのラベルが事前に入力された grafana のサイレンスへのリンク。Grafana 管理のアラートのみ。  | 
|  DashboardURL  |  string  |  Grafana ダッシュボードへのリンク (アラートルールが Grafana に属している場合)。Grafana 管理のアラートのみ。  | 
|  PanelURL  |  string  |  Grafana ダッシュボードパネルへのリンク (アラートルールが Grafana に属している場合)。Grafana 管理のアラートのみ。  | 
|  Fingerprint  |  string  |  アラートの識別に使用するフィンガープリント。  | 
|  ValueString  |  string  |  アラート内の各削減された式のラベルと値を含む文字列。  | 

**KeyValue 型**

`KeyValue` 型は、キー (ラベル) 値 (注釈) の文字列を組み合わせたものです。

`KeyValue` として保存されたデータに直接アクセスするメソッドだけでなく、データをソート、削除、変換するメソッドも備えています。


| 名前 | 引数 | 戻り値 | 注意事項 | 
| --- | --- | --- | --- | 
|  SortedPairs  |    |  キーと値の文字列のソート済みのリスト  |    | 
|  削除  |  []string  |  KeyValue  |  指定したキーを除いたキー/値のマップのコピーを返します。  | 
|  名前  |    |  []string  |  ラベル名のリスト  | 
|  値  |    |  []string  |  ラベル値のリスト  | 



## テンプレート関数
<a name="alert-template-functions"></a>

テンプレート関数を使用すると、ラベルと注釈を処理して動的に通知を生成できます。以下の機能を使用できます。


| 名前 | 引数の型 | 戻り型 | 説明 | 
| --- | --- | --- | --- | 
|  `humanize`  |  数値または文字列  |  string  |  メトリクスプレフィックスを使用して、数値をより読み取り可能な形式に変換します。  | 
|  `humanize1024`  |  数値または文字列  |  string  |  humanize と同様に、1000 ではなく 1024 を基準にします。  | 
|  `humanizeDuration`  |  数値または文字列  |  string  |  時間を秒単位のより読みやすい形式に変換します。  | 
|  `humanizePercentage`  |  数値または文字列  |  string  |  比率の値を 100 分の 1 の形に変換します。  | 
|  `humanizeTimestamp`  |  数値または文字列  |  string  |  Unix のタイムスタンプを秒単位のより読みやすい形式に変換します。  | 
|  `title`  |  string  |  string  |  strings.Title を使用すると、各単語の最初の文字が大文字になります。  | 
|  `toUpper`  |  string  |  string  |  strings.ToUpper を使用すると、文字列がすべて大文字に変換されます。  | 
|  `toLower`  |  string  |  string  |  strings.ToLower を使用すると、文字列がすべて小文字に変換されます。  | 
|  `match`  |  パターン、テキスト  |  boolean  |  regexp.MatchString を使用すると、アンカーなしでの正規表現の一致テストを実行できます。  | 
|  `reReplaceAll`  |  パターン、置換、テキスト  |  string  |  Regexp.ReplaceAllString を使用すると、アンカーなしでの正規表現による置換が実行できます。  | 
|  `graphLink`  |  文字列 - `expr` および `datasource` フィールドを持つ JSON オブジェクト  |  string  |  指定された式とデータソースに対するグラフィカルビューへのパスを返します。  | 
|  `tableLink`  |  文字列 - `expr` および `datasource` フィールドを持つ JSON オブジェクト  |  string  |  指定された式とデータソースに対するタブ形式ビューへのパスを返します。  | 
|  `args`  |  []interface\$1\$1  |  map[string]interface\$1\$1  |  オブジェクトのリストを arg0、arg1 などのキーを持つマップに変換します。複数の引数をテンプレートに渡す場合、この関数を使用します。  | 
|  `externalURL`  |  なし  |  string  |  外部 URL を表す文字列を返します。  | 
|  `pathPrefix`  |  なし  |  string  |  外部 URL のパスを返します。  | 

次の表に、各関数の使用例を紹介します。


| 関数 | TemplateString | Input | 予想 | 
| --- | --- | --- | --- | 
|  humanize  |  \$1 humanize \$1value \$1  |  1234567.0  |  1.235M  | 
|  humanize1024  |  \$1 humanize1024 \$1value \$1  |  1048576.0  |  1Mi  | 
|  humanizeDuration  |  \$1 humanizeDuration \$1value \$1  |  899.99  |  14 分 59 秒  | 
|  humanizePercentage  |  \$1 humanizePercentage \$1value \$1  |  0.1234567  |  12.35%  | 
|  humanizeTimestamp  |  \$1 humanizeTimestamp \$1value \$1  |  1435065584.128  |  2015-06-23 13:19:44.128 \$10000 UTC  | 
|  title  |  \$1 \$1value \$1 title \$1  |  aa bB CC  |  Aa Bb Cc  | 
|  toUpper  |  \$1 \$1value \$1 toUpper \$1  |  aa bB CC  |  AA BB CC  | 
|  toLower  |  \$1 \$1value \$1 toLower \$1  |  aa bB CC  |  aa bb cc  | 
|  match  |  \$1 match "a\$1" \$1labels.instance \$1  |  aa  |  真  | 
|  reReplaceAll  |  \$1\$1 reReplaceAll "localhost:(.\$1)" "my.domain:\$11" \$1labels.instance \$1\$1  |  localhost:3000  |  my.domain:3000  | 
|  graphLink  |  \$1\$1 graphLink "\$1\$1"expr\$1": \$1"up\$1", \$1"datasource\$1": \$1"gdev-prometheus\$1"\$1" \$1\$1  |    |  /explore?left=["now-1h","now","gdev-prometheus",\$1"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true\$1]  | 
|  tableLink  |  \$1\$1 tableLink "\$1\$1"expr\$1":\$1"up\$1", \$1"datasource\$1":\$1"gdev-prometheus\$1"\$1" \$1\$1  |    |  /explore?left=["now-1h","now","gdev-prometheus",\$1"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false\$1]  | 
|  args  |  \$1\$1define "x"\$1\$1\$1\$1.arg0\$1\$1 \$1\$1.arg1\$1\$1\$1\$1end\$1\$1\$1\$1template "x" (args 1 "2")\$1\$1  |    |  1 2  | 
|  externalURL  |  \$1 externalURL \$1  |    |  http://localhost/path/prefix  | 
|  pathPrefix  |  \$1 pathPrefix \$1  |    |  /path/prefix  | 

# 通知ポリシーの使用
<a name="alert-notifications"></a>

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

通知ポリシーでは、アラートがコンタクトポイント (通知先) にどのように配信されるかを指定します。ポリシーはツリー構造で、ポリシーごとに 1 つ以上の子ポリシーを持つことができます。ルートポリシーを除く各ポリシーは、特定のアラートラベルにも一致させることができます。各アラートはルートポリシーによって評価され、次に各子ポリシーによって評価されます。特定のポリシーに対して `Continue matching subsequent sibling nodes` オプションを有効にすると、1 つ以上の一致があっても評価が続行されます。子ポリシーのいずれとも一致しない場合、親ポリシーの設定とコンタクトポイント (通知先) の情報によってアラートの動作が制御されます。特定のポリシーと一致しない場合、ルートポリシーがアラートを制御します。

**注記**  
Grafana 管理のアラートの通知ポリシーを作成および編集することができますが、アラートマネージャーアラートの通知ポリシーは読み取り専用となっています。

**通知のグループ化**

グループ化すると、似た性質のアラート通知を 1 つの funnel にまとめられます。これは、システム上で一度に複数の障害が発生して多数のアラートが同時に発生する場合、大規模な停止中にアラート通知を制御することができます。

**グループ化の例**

例えば、異なる環境でデータベースに接続されている100のサービスがあるとします。これらのサービスは、ラベル `env=environmentname` で区別され、サービスがデータベースに到達できるかどうかを監視するためのアラートルールが設定されています。このアラートルールは、`alertname=DatabaseUnreachable` という名前のアラートを作成します。

サービスの半分がデータベースに到達できなくなったネットワークの分断が発生すると、50 件のアラートが個別に発生しますが、影響を受けている環境のリストを含む (50 件ではなく) 1 ページの通知を受け取りたいと考えています。

`group_by: [alertname]`でグループ化を設定することができます(サービスごとに異なる `env` ラベルを使用する代わりに)。この設定を行うと、Grafana は、このアラートルールの影響を受けるすべての環境が記載された 1 通のコンパクトな通知を送信します。

**特殊グループ**

Grafana には 2 つの特殊グループがあります。デフォルトのグループである `group_by: null` は、*すべての*アラートを 1 つのグループにグループ化します。`...` という名前の特殊ラベルを使用してすべてのラベルでアラートをグループ化することで、グループ化を無効にし、各アラートを独自のグループに送信することもできます。

## 通知の使用
<a name="alert-notifications-working"></a>

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

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

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開きます。

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

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

1. **[ルートポリシー]** セクションで、**[編集]** アイコン (ペン) を選択します。

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

1. **[グループ化対象]** で、アラートをグループ化するラベル (または特殊グループ) を選択します。

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

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

**上位の特定のポリシーの追加方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開きます。

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

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

1. **[特定のルーティング]** セクションで、**[新しい特定のポリシー]** を選択します。

1. **[一致するラベル]** セクションで、一致するアラートラベルを 1 つ以上追加します。ラベルの一致の詳細については、このトピックの後半で説明します。

1. **コンタクトポイント**で、アラートがこの特定のポリシーと一致する場合に通知を送信するコンタクトポイントを追加します。ネストされたポリシーは、このコンタクトポイントを上書きします。

1. 必要に応じて **[グループ化を上書き]** を選択して、ルートポリシーとは異なるグループ化を指定します。

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

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

**ネストしたポリシーの追加方法**

1. ネストしたポリシーの作成先となる特定のポリシーを展開します。

1. **[ネストしたポリシーの追加]** を選択し、詳細を追加します (最上位の特定のポリシーを追加する場合と同様)。

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

**特定のポリシーの編集方法**

1. **[アラート]** ページから **[通知ポリシー]** を選択するとページを開き、現在設定されているポリシーが一覧表示されます。

1. 編集する設定ポリシーを選択したら、**[編集]** アイコン (ペン) を選択します。

1. 必要な変更を加えます (最上位の特定のポリシーを追加する場合と同様)。

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

**ラベル一致の仕組み**

ポリシーは、アラートのラベルがポリシーで指定されたすべての*一致ラベル*と合致する場合に、そのアラートに適用されます。
+ **ラベル** – 一致させるラベルの名前。アラートのラベル名と完全に一致する必要があります。
+ **[演算子]** – ラベル値と一致するラベル値の比較に使用される演算子。利用できる演算子は次のとおりです。
  + `=` 値が指定された文字列と完全に一致するラベルが選択されます。
  + `!=` 値が指定された文字列と一致しないラベルが選択されます。
  + `=~` 指定された文字列の正規表現解釈値と一致するラベルが選択されます (指定された文字列は正規表現として解釈されます)。
  + `!=` 指定された正規表現と一致しないラベルが選択されます。
+ **[値])** – ラベル値と一致する値。選択した演算子に応じて、文字列または正規表現として照合させることができます。

## ミュートタイミング
<a name="alert-notification-muting"></a>

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

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

外部のアラートマネージャーデータソースの Grafana 管理のミュートタイミングとミュートタイミングを設定できます。

**サイレンスとミュートタイミングの比較**

次の表に、「ミュートタイミング」と「サイレンス」の違いを示します。


| ミュートタイミング | サイレンス | 
| --- | --- | 
|  繰り返しの時間間隔を定義します  |  開始時刻と終了時刻を固定します  | 
|  作成され、通知ポリシーに追加されます  |  ラベルを使用してアラートと照合し、サイレンスするかどうかが判断されます  | 

**ミュートタイミングの作成方法**

1. Grafana コンソールの Grafana メニューで、**[アラート]** (ベル) アイコンを選択して **[アラート]** ページを開きます。

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

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

1. **[ミュートタイミング]** セクションで、**[ミュートタイミングの追加]** ボタンを選択します。

1. ミュートタイミングを適用したい時間間隔を選択します。

1. **[送信]** を選択してミュートタイミングを作成します。

**通知ポリシーへのミュートタイミングの追加方法**

1. ミュートタイミングを追加する通知ポリシーを選択し、**[編集]** ボタンを選択します。

1. **[ミュートタイミング]** ドロップダウンから、ポリシーに追加するミュートタイミングを選択します。

   **[ポリシーを保存]** ボタンを選択します。

**時間間隔**

時間間隔には、時間範囲を指定します。この時間間隔内にアラートが発生した場合、抑制されます。範囲には `:` を使用して表現することができます (例: `monday:thursday`)。ミュートタイミングには複数の時間間隔を含めることができます。時間間隔は複数のフィールド (詳細は次のリストを参照) で構成され、アラートを抑制するには、すべてのフィールドが一致する必要があります。例えば、曜日に月曜日から金曜日 `monday:friday`、時間範囲を 8:00～9:00 と指定した場合、アラートは月曜日から金曜日の 8:00～9:00 の間は抑制されますが、土曜日の 8:00～9:00 は抑制されません。
+ **[時間範囲]** – 通知を抑制する時間帯。**[開始時刻]**と**[終了時刻]** の 2 つのサブフィールドで構成されます。時刻は `14:30` のように指定します。時刻は UTC の 24 時間表記です。
+ **[曜日]** - 曜日。単一の日 (例: `monday`)、範囲 (例: `monday:friday`)、またはカンマで区切られた複数の日のリスト (例: `monday, tuesday, wednesday`) を指定できます。
+ **[月]** - 選択する月。月は、数値で指定することも、完全な月名で指定することもできます。例えば、`1` または `january` のどちらでも 1 月を指定できます。単一の月、月の範囲、またはカンマ区切りの月のリストを指定できます。
+ **[月の日付]** – 1 か月内の日付。値は `1`～`31` の範囲で指定します。負の値は月の日を逆順で指定することを意味します。たとえば、`-1` は月の最終日を表します。日付は単一の日、日付の範囲、またはカンマで区切った日付のリストを指定できます。