

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立通知範本
<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)。

建立可重複使用的通知範本以傳送至您的聯絡點。

您可以將一或多個範本新增至通知範本。

您的通知範本名稱必須是唯一的。您不能在相同的通知範本或不同的通知範本中有兩個同名的範本。避免使用與預設範本相同的名稱來定義範本，例如：`__subject`、`__text_alert_list`、 `__text_values_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. 按一下 Save (儲存)。

   `{{ define "email.subject" }}` （其中 `email.subject`是您範本的名稱）， `{{ end }}`會自動新增至內容的開頭和結尾。

**若要建立包含多個範本的通知範本：**

1. 按一下**新增範本**。

1. 輸入整體通知範本的名稱。例如 `email`。

1. 在內容欄位中寫入每個範本，包括每個範本`{{ end }}`的開頭和結尾的 `{{ define "name-of-template" }}`和 。您可以對通知範本中的每個範本使用描述性名稱，例如 `email.subject`或 `email.message`。在此情況下，請勿重複使用您在上方輸入的通知範本名稱。

   下列各節顯示您可能建立之範本的詳細範例。

1. 按一下 Save (儲存)。

## 為電子郵件主旨建立範本
<a name="v9-alerting-create-template-subject"></a>

為電子郵件主旨建立範本，其中包含觸發和已解決提醒的數量，如本範例所示：

```
1 firing alerts, 0 resolved alerts
```

**為電子郵件主旨建立範本**

1. 使用下列內容建立名為 `email.subject`的範本：

   ```
   {{ define "email.subject" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. 在建立聯絡點整合時使用 範本，方法是將範本放入具有 `template`關鍵字的**主旨**欄位中。

   ```
   {{ template "email.subject" . }}
   ```

## 建立電子郵件訊息的範本
<a name="v9-alerting-create-template-message"></a>

為電子郵件的訊息建立範本，其中包含所有觸發和已解決提醒的摘要，如本範例所示：

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

**建立電子郵件訊息的範本**

1. 在內容中建立名為 的通知範本`email`，其中包含兩個範本： `email.message_alert`和 `email.message`。

   `email.message_alert` 範本用於列印每個射擊和已解決提醒的標籤和值，而`email.message`範本包含電子郵件的結構。

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

為 Slack 訊息的內容建立範本，其中包含所有觸發和已解決提醒的描述，包括其標籤、註釋和儀表板 URL：

```
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`，其中包含兩個範本： `slack.print_alert`和 `slack.message`。

   `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" . }}
   ```

## 使用共用範本來範本電子郵件和 Slack
<a name="v9-alerting-create-shared-templates"></a>

您可以共用相同的範本，而不是為每個聯絡點建立個別的通知範本，例如電子郵件和 Slack。

例如，如果您想要傳送具有此主旨的電子郵件，以及具有此標題 的 Slack 訊息`1 firing alerts, 0 resolved alerts`，您可以建立共用範本。

**建立共用範本**

1. 使用下列內容建立名為 `common.subject_title`的範本：

   ```
   {{ define "common.subject_title" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. 對於電子郵件，請從電子郵件聯絡點整合中的主旨欄位執行範本：

   ```
   {{ template "common.subject_title" . }}
   ```

1. 對於 Slack，請從 Slack 聯絡點整合中的標題欄位執行範本：

   ```
   {{ template "common.subject_title" . }}
   ```

## 使用通知範本
<a name="v9-alerting-use-notification-templates"></a>

在聯絡點中使用範本來自訂您的通知。

**在建立聯絡點時使用範本**

1. 從**提醒**功能表中，選擇**聯絡點**以查看現有聯絡點的清單。

1. 選擇**新增聯絡點**。或者，您可以選擇要編輯的聯絡點旁的**編輯**圖示 （筆） 來編輯現有的聯絡點。

1. 輸入您想要在一個或多個欄位中使用的範本，例如**訊息**或**主旨**。若要輸入範本，請使用格式 `{{ template "template_name" . }}`，將 *template\$1name* 取代為您要使用的範本名稱。

1. 按一下**儲存聯絡點**。