

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

# 通知のカスタマイズ
<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)を参照してください。