

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

# 範本參考
<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  |  如果至少一個提醒正在觸發，則觸發，否則會解決。  | 
|  `Alerts`  |  警示  |  此通知中包含的提醒物件清單 （請參閱下方）。  | 
|  `GroupLabels`  |  KeyValue  |  這些警示分組依據的標籤。  | 
|  `CommonLabels`  |  KeyValue  |  此通知中包含的所有提醒通用的標籤。  | 
|  `CommonAnnotations`  |  KeyValue  |  此通知中所有提醒的常見註釋。  | 
|  `ExternalURL`  |  string  |  傳送通知的 Grafana 的返回連結。如果使用外部 Alertmanager，請返回此 Alertmanager 的連結。  | 

`Alerts` 類型會公開兩個用於篩選傳回提醒的函數。
+ `Alerts.Firing` – 傳回射擊警示的清單。
+ `Alerts.Resolved` – 傳回已解析警示的清單。

**提醒 （類型）**

提醒類型包含下列資料。


| 名稱 | 類型 | 備註 | 
| --- | --- | --- | 
|  狀態  |  string  |  `firing` 或 `resolved`  | 
|  標籤  |  KeyValue  |  連接到提醒的一組標籤。  | 
|  註釋  |  KeyValue  |  連接到提醒的一組註釋。  | 
| 值 | KeyValue | 所有表達式的值，包括傳統條件 | 
|  StartsAt  |  time.Time  |  警示開始觸發的時間。  | 
|  EndsAt  |  time.Time  |  只有在已知警示的結束時間時才設定。否則，請設定為自上次收到提醒以來的可設定逾時期間。  | 
|  GeneratorURL  |  string  |  Grafana 或外部 Alertmanager 的後退連結。  | 
|  SilenceURL  |  string  |  提醒靜音的連結 （已預先填入此提醒的標籤）。僅適用於 Grafana 受管提醒。  | 
|  DashboardURL  |  string  |  如果警示規則屬於一個，則連結至 grafana 儀表板。僅適用於 Grafana 受管提醒。  | 
|  PanelURL  |  string  |  如果警示規則屬於一個，則連結至 grafana 儀表板面板。僅適用於 Grafana 受管提醒。  | 
|  指紋  |  string  |  可用來識別提醒的指紋。  | 
|  ValueString  |  string  |  字串，其中包含提醒中每個減少表達式的標籤和值。  | 

 **ExtendedData**

ExtendedData 物件包含下列屬性。


| 名稱 | Kind | Description | 範例 | 
| --- | --- | --- | --- | 
|  接收者  |  `string`  |  傳送通知的聯絡點名稱。  |  `{{ .Receiver }}`  | 
|  狀態  |  `string`  |  狀態為 `firing if at least one alert is firing, otherwise resolved.`  |  `{{ .Status }}`  | 
|  Alerts (提醒)  |  `[]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 工作區或 Alertmanager 連結。  |  `{{ .ExternalURL }}`  | 

**KeyValue 類型**

`KeyValue` 類型是一組代表標籤和註釋的鍵/值字串對。

除了直接存取存放為 的資料之外`KeyValue`，還有排序、移除和轉換資料的方法。


| 名稱 | 引數 | 傳回值 | 備註 | 範例 | 
| --- | --- | --- | --- | --- | 
|  SortedPairs  |    |  索引鍵和值字串對的排序清單  |    | `{{ .Annotations.SortedPairs }}` | 
|  移除  |  【】字串  |  KeyValue  |  傳回不含指定金鑰的金鑰/值映射複本。  | `{{ .Annotations.Remove "summary" }}` | 
|  名稱  |    |  【】字串  |  標籤名稱清單  | `{{ .Names }}` | 
|  值  |    |  【】字串  |  標籤值清單  | `{{ .Values }}` | 

**Time (時間)**

時間來自 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" }}
```

您可以在[此處](https://pkg.go.dev/time#pkg-constants)找到 Go 時間格式的參考。

## 範本函數
<a name="v9-alerting-template-functions"></a>

使用範本函數，您可以處理標籤和註釋來產生動態通知。下列 函數可供使用。


| 名稱 | 引數類型 | 傳回類型 | Description | 
| --- | --- | --- | --- | 
|  `humanize`  |  數字或字串  |  string  |  使用指標字首，將數字轉換為更易讀的格式。  | 
|  `humanize1024`  |  數字或字串  |  string  |  就像人文化一樣，但使用 1024 作為基礎，而不是 1000。  | 
|  `humanizeDuration`  |  數字或字串  |  string  |  以秒為單位將持續時間轉換為更易於讀取的格式。  | 
|  `humanizePercentage`  |  數字或字串  |  string  |  將比率值轉換為 100 的分數。  | 
|  `humanizeTimestamp`  |  數字或字串  |  string  |  以秒為單位將 Unix 時間戳記轉換為更易於讀取的格式。  | 
|  `title`  |  string  |  string  |  strings.Title，將每個單字的第一個字元大寫。  | 
|  `toUpper`  |  string  |  string  |  strings.ToUpper，將所有字元轉換為大寫。  | 
|  `toLower`  |  string  |  string  |  strings.ToLower 會將所有字元轉換為小寫。  | 
|  `match`  |  模式、文字  |  Boolean  |  regexp.MatchString 測試未錨定的 regexp 比對。  | 
|  `reReplaceAll`  |  模式、替換、文字  |  string  |  Regexp.ReplaceAllString Regexp 替換，未錨定。  | 
|  `graphLink`  |  string - 具有 `expr`和 `datasource` 欄位的 JSON 物件  |  string  |  在探索中傳回指定表達式和資料來源的圖形檢視路徑。  | 
|  `tableLink`  |  string - 具有 `expr`和 `datasource` 欄位的 JSON 物件  |  string  |  在探索中傳回指定表達式和資料來源的表格式檢視路徑。  | 
|  `args`  |  【】interface\$1\$1  |  map【string】interface\$1\$1  |  將物件清單轉換為具有索引鍵的映射，例如 arg0、arg1。使用此函數將多個引數傳遞至 範本。  | 
|  `externalURL`  |  無  |  string  |  傳回代表外部 URL 的字串。  | 
|  `pathPrefix`  |  無  |  string  |  傳回外部 URL 的路徑。  | 

下表顯示使用每個 函數的範例。


| 函式 | TemplateString | Input | 預期 | 
| --- | --- | --- | --- | 
|  人文化  |  \$1 人文化 \$1value \$1  |  1234567.0  |  12.35M  | 
|  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  | 
|  標題  |  \$1 \$1value \$1 標題 \$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  |  true  | 
|  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  | 