

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

# アラート通知の管理
<a name="v9-alerting-managenotifications"></a>

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

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

最初のステップとして、アラート通知の送信先となる*コンタクトポイント*を定義します。コンタクトポイントでは、一致する通知の宛先のセットを指定できます。通知テンプレートをコンタクトポイントに追加して、通知の再利用と一貫したメッセージングを行います。

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

アラートルールが評価されると、アラートルーラーはアラートインスタンスをアラートマネージャーに送信します。1 つのアラートルールで複数の個別の*アラートインスタンス*をトリガーできます。

アラートマネージャーは、これらのアラートインスタンスを受信し、ミュートタイミングを処理し、アラートをグループ化し、通知ポリシーで定義されているようにコンタクトポイントに通知を送信します。

**Topics**
+ [アラートマネージャー](v9-alerting-managenotifications-alertmanager.md)
+ [コンタクトポイント (通知先) の使用](v9-alerting-contact-points.md)
+ [通知ポリシーの使用](v9-alerting-notification-policies.md)
+ [通知のカスタマイズ](v9-alerting-notifications.md)
+ [Prometheus データソースのアラート通知のサイレンス化](v9-alerting-silences.md)
+ [ミュートタイミング](v9-alerting-notification-muting.md)
+ [アラートグループ別に表示およびフィルタリングする](v9-alerting-viewfiltergroups.md)
+ [通知エラーの表示](v9-alerting-viewnotificationerrors.md)

# アラートマネージャー
<a name="v9-alerting-managenotifications-alertmanager"></a>

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

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

Grafana では、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="v9-alerting-contact-points"></a>

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

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

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

## コンタクトポイント (通知先) の使用
<a name="v9-alerting-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="v9-alerting-contactpoint-supported-notifiers"></a>


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

# 通知ポリシーの使用
<a name="v9-alerting-notification-policies"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 9.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 10.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 10 での作業](using-grafana-v10.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.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="v9-alerting-notification-policies-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. 必要な変更を加えます (最上位の特定のポリシーを追加する場合と同様)。

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

**ポリシーの検索**

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

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

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

# 通知のカスタマイズ
<a name="v9-alerting-notifications"></a>

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

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

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

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

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

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

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

# Go のテンプレート言語の使用
<a name="v9-alerting-notifications-go-templating"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 9.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 10.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 10 での作業](using-grafana-v10.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="v9-go-dot"></a>

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

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

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

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

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

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

## アラートを反復処理する
<a name="v9-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="v9-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 }}
```

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

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

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

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

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

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

## [変数]
<a name="v9-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="v9-go-rangeindex"></a>

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

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

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

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

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

## テンプレートを埋め込む
<a name="v9-go-embed"></a>

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

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

## テンプレートにデータを渡す
<a name="v9-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="v9-go-comments"></a>

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

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

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

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

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

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

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

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

## スペースと改行を削除する
<a name="v9-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="v9-alerting-create-templates"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 9.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 10.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 10 での作業](using-grafana-v10.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="v9-alerting-creating-templates"></a>

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

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. 通知テンプレート全体の名前を入力します。例えば、`email`。

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

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

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

## E メールの件名テンプレートの作成
<a name="v9-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="v9-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="v9-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` を使用して**タイトル**フィールドに配置して、コンタクトポイント統合を作成するときに使用します。

   ```
   {{ template "slack.title" . }}
   ```

## Slack メッセージのコンテンツのテンプレート作成
<a name="v9-alerting-create-template-slack-message"></a>

すべての発射アラートと解決済みアラートの説明 (ラベル、注釈、ダッシュボード URL など) を含む Slack メッセージのコンテンツのテンプレートを作成します。

```
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` を使用して**テキスト本文**フィールドに配置して、コンタクトポイント統合を作成するときに使用します。

   ```
   {{ template "slack.message" . }}
   ```

## 共有テンプレートを使用して E メールと Slack の両方にテンプレートを作成する
<a name="v9-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="v9-alerting-use-notification-templates"></a>

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

**コンタクトポイントの作成時にテンプレートを使用するには**

1. **[アラート]**メニューから、**[コンタクトポイント]** を選択して、既存のコンタクトポイントのリストを表示します。

1. **[コンタクトポイントを追加]** を選択します。または、編集するコンタクトポイントの横にある **[編集]** アイコン (ペン) を選択して、既存のコンタクトポイントを編集することもできます。

1. **[Message]** (メッセージ) や **[Subject]** (件名) などの 1 つ以上のフィールドに、使用するテンプレートを入力します。テンプレートを入力するには、`{{ template "template_name" . }}` フォームを使用し、 *template\$1name* を使用するテンプレートの名前に置き換えます。

1. **[コンタクトポイントの保存]** をクリックします。

# テンプレートリファレンス
<a name="v9-alerting-template-reference"></a>

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

このセクションでは、テンプレートを作成するためのリファレンス情報を提供します。

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

 **ExtendedData**

ExtendedData オブジェクトには、以下のプロパティが含まれています。


| 名前 | [Kind] (種類) | 説明 | 例 | 
| --- | --- | --- | --- | 
|  レシーバー  |  `string`  |  通知を送信するコンタクトポイントの名前。  |  `{{ .Receiver }}`  | 
|  ステータス  |  `string`  |  ステータスは`firing if at least one alert is firing, otherwise 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 }}` | 
|  値  |    |  []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="v9-alerting-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`  |  パターン、テキスト  |  ブール値  |  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  | 

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

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

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

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

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

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

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

1. **[サイレンス]** を選択して、既存の [コンタクトポイント (通知先) の使用](v9-alerting-contact-points.md) を一覧表示するページを開きます。

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

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="v9-alerting-notification-muting"></a>

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

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

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

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

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

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


| ミュートタイミング | サイレンス | 
| --- | --- | 
|  繰り返しの時間間隔を定義します。  |  開始時刻と終了時刻を固定します。  | 
|  作成され、通知ポリシーに追加されます。  |  ラベルを使用してアラートと照合し、サイレンスするかどうかが判断されます。  | 
|  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` は月の最終日を表します。日付は単一の日、日付の範囲、またはカンマで区切った日付のリストを指定できます。
+ **[年]** - 間隔の年または複数年。例えば、`2023:2025`。

これらの要素はそれぞれリストにすることができ、一致するには要素内の少なくとも 1 つの項目を満たす必要があります。したがって、年を `2023:2025, 2027` に設定すると、2023、2024、2025、2027 年 (2026 年を除く) に当てはまります。

フィールドを空白のままにすると、任意の時刻をフィールドと照合します。完全な時間間隔と一致させるには、ある時点がすべてのフィールドと一致している必要があります。

正確な期間を指定する場合は、その期間に必要なすべてのオプションを指定します。例えば、3 月、6 月、9 月、12 月の最初の月曜日の 12:00 から 24:00 UTC の時間間隔を作成する場合、時間間隔の指定は次のようになります。
+ 時間範囲：
  + 開始時間: `12:00`
  + 終了時間: `24:00`
+ 曜日: `monday`
+ 月: `3, 6, 9, 12`
+ 日: `1:7`

# アラートグループ別に表示およびフィルタリングする
<a name="v9-alerting-viewfiltergroups"></a>

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

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

アラートグループを表示し、特定の条件に一致するアラートルールをフィルター処理することもできます。

**アラートグループを表示するには**

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

1. **[アラートグループ]** をクリックして、既存のグループを一覧表示するページを開きます。

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

1. **[カスタムグループ化]** ドロップダウンでラベルの組み合わせを選択して、デフォルト以外のグループを表示します。これは、通知ポリシーのグループをデバッグおよび検証するのに役立ちます。

アラートにルートポリシーのグループ化またはカスタムグループ化のいずれかで指定されたラベルが含まれていない場合、アラートは `No grouping` のヘッダーを持つ [すべてのグループを取得] に追加されます。

**ラベルでフィルタリングするには**
+ **[検索]** で既存のラベルを入力して、ラベルに一致するアラートを表示します。

  例えば、`environment=production,region=~US|EU,severity!=warning`。

**状態でフィルタリングするには**
+ **[状態]** では、Active (アクティブ)、Suppressed (抑制)、または Unprocessed (未処理) の状態を選択すると、選択した状態に一致するアラートが表示されます。他のすべてのアラートは非表示になります。

# 通知エラーの表示
<a name="v9-alerting-viewnotificationerrors"></a>

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

通知エラーを表示し、送信に失敗したか受信されなかった理由を確認できます。

**注記**  
この機能は Grafana アラートマネージャーでのみサポートされています。

**通知エラーを表示するには**

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

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

   いずれかのコンタクトポイントが失敗した場合は、画面の右隅にメッセージが表示され、エラーが発生していることとその数がユーザーに通知されます。

1. コンタクトポイントをクリックすると、そのコンタクトポイントのエラーの詳細が表示されます。

   エラーアイコンにカーソルを合わせると、エラーの詳細が表示されます。

   コンタクトポイントに複数の統合がある場合、各統合のすべてのエラーが表示されます。

1. [正常性] 列で、通知のステータスを確認します。

   これは、[OK]、[試行なし]、または [エラー]のいずれかです。