

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

# 管理您的提醒通知
<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)。

選擇傳送提醒通知的方式、時間和位置，是設定提醒系統的重要部分。這些決策將直接影響您快速解決問題的能力，而不會錯過任何重要事項。

首先，定義您的*聯絡點*；將提醒通知傳送到哪裡。聯絡點可以是一組符合通知的目的地。將通知範本新增至聯絡點，以便在通知中重複使用且一致的訊息。

接著，建立*通知政策*，這是一組規則，用於將提醒路由到聯絡點的位置、時間和方式。在通知政策中，您可以選擇您建立的其中一個聯絡點，以定義傳送提醒通知的位置。將靜音計時新增至您的通知政策。*靜音計時*是週期性時間間隔，在此期間您不希望傳送任何通知。

評估警示規則時，警示尺規會將警示執行個體傳送至警示管理員 — 一個警示規則可以觸發多個個別*警示執行個體*。

Alertmanager 會接收這些警示執行個體，然後處理靜音時間、將警示分組，並將通知傳送到通知政策中定義的聯絡點。

**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)。

Alertmanager 可讓您快速有效地管理和回應提醒。它透過您選擇的管道傳送通知來接收提醒、處理靜音、抑制、分組和路由，例如電子郵件或 Slack。

在 Grafana 中，您可以使用 Grafana Alertmanager 或外部 Alertmanager。您也可以執行多個警示管理員；您的決策取決於您的設定以及產生警示的位置。

**Grafana Alertmanager**

Grafana Alertmanager 是內部 Alertmanager，如果您執行 Grafana 內部部署或開放原始碼，則預設會預先設定並可供選取。

Grafana Alertmanager 可以接收來自 Grafana 的提醒，但無法接收來自 Grafana 外部的提醒，例如來自 Mimir 或 Loki。

**注意**  
Grafana Alertmanager 不支援抑制規則。

**外部警示管理員**

如果您想要使用單一警示管理員來接收所有 Grafana、Loki、Mimir 和 Prometheus 警示，您可以將 Grafana 設定為使用外部警示管理員。此外部 Alertmanager 可以從 Grafana 內部設定和管理。

以下是兩個您可能想要設定自己的外部警示管理員，並將警示傳送到該處而非 Grafana Alertmanager 的範例：

1. 您已在自己的雲端基礎設施中擁有警示管理員內部部署，且已設定且仍想使用，因為您有其他警示產生器，例如 Prometheus。

1. 您想要同時使用 Prometheus 內部部署和託管 Grafana，將警示傳送至在雲端基礎設施中執行的相同警示管理員。

警示管理員可從警示聯絡人和通知政策頁面上的下拉式功能表中看到。

如果您要佈建資料來源，請將 `jsonData` 欄位中`handleGrafanaManagedAlerts`的 旗標設定為 `true`，以將 Grafana 受管警示傳送至此 Alertmanager。

# 使用聯絡點
<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。警示啟動時，通知會傳送至為聯絡點列出的所有聯絡點整合。或者，使用[通知範本](v9-alerting-create-templates.md)來自訂聯絡點類型的通知訊息。

**注意**  
您可以建立和編輯 Grafana 受管提醒的聯絡點。Alertmanager 警示的聯絡點為唯讀。

## 使用聯絡點
<a name="v9-alerting-working-contact-points"></a>

下列程序詳細說明如何新增、編輯、測試和刪除聯絡點。

**新增聯絡點**

1. 在 Grafana 主控台的 Grafana 功能表中，選擇**提醒 **（鈴鐺） 圖示以開啟**提醒**頁面。

1. 選擇**聯絡點**，然後選擇**新增聯絡點**。

1. 從 **Alertmanager** 下拉式清單中，選取 Alertmanager。預設會選取 Grafana Alertmanager。

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 職責  |  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)。

通知政策會決定警示如何路由到聯絡點。政策具有樹狀結構，其中每個政策可以有一或多個子政策。除了根政策之外，每個政策也可以符合特定的提醒標籤。每個提醒都會由根政策評估，然後由每個子政策評估。如果您針對特定政策啟用 `Continue matching subsequent sibling nodes`選項，則即使在一或多個相符項目之後，評估仍會繼續。父政策的組態設定和聯絡點資訊會管理不符合任何子政策的提醒行為。根政策會管理不符合特定政策的任何提醒。

**注意**  
您可以建立和編輯 Grafana 受管警示的通知政策。Alertmanager 提醒的通知政策為唯讀。

**分組通知**

分組會將類似性質的提醒通知分類為單一漏斗。這可讓您在系統許多部分一次失敗時控制較大的中斷期間的提醒通知，導致同時啟動大量提醒。

**分組範例**

假設您有 100 個服務連接到不同環境中的資料庫。這些服務會依標籤 區分`env=environmentname`。已制定提醒規則，以監控您的服務是否可以到達資料庫。提醒規則會建立名為 的提醒`alertname=DatabaseUnreachable`。

如果發生網路分割區，其中一半的服務無法再連線到資料庫，則會啟動 50 個不同的警示。在這種情況下，您想要收到單頁通知 （而不是 50)，其中包含受影響的環境清單。

您可以將分組設定為 `group_by: [alertname]`（不使用 `env`標籤，這對於每個服務都不同）。設定此組態後，Grafana 會傳送單一精簡通知，其中包含此提醒規則的所有受影響環境。

**特殊群組**

Grafana 有兩個特殊群組。預設群組會將`group_by: null`*所有*警示分組為單一群組。您也可以使用名為 的特殊標籤`...`，依所有標籤分組提醒、有效停用分組，並將每個提醒傳送至自己的群組。

## 使用通知
<a name="v9-alerting-notification-policies-working"></a>

下列程序說明如何建立和管理通知政策。

**編輯根通知政策**

1. 在 Grafana 主控台的 Grafana 功能表中，選擇**警示 **（鈴鐺） 圖示以開啟**警示**頁面。

1. 選擇**通知政策**。

1. 從 **Alertmanager** 下拉式清單中，選取您要編輯的 Alertmanager。

1. 在**根政策**區段中，選擇**編輯**圖示 （筆）。

1. 在**預設聯絡點**中，更新當提醒規則不符合任何特定政策時，應為規則傳送通知的聯絡點。

1. 在**分組依據**中，選擇要分組提醒依據的標籤 （或特殊群組）。

1. 在**時間選項**中，從下列選項中選取 。
   + **群組等待** – 在傳送初始通知之前，等待緩衝相同群組警示的時間。預設為 30 秒。
   + **群組間隔** – 群組的兩個通知之間的最短時間間隔。預設值為 5 分鐘。
   + **重複間隔** – 如果沒有將新警示新增至群組，則重新傳送通知之前的最短時間間隔。預設值為 4 小時。

1. 選擇**儲存**，以儲存變更。

**新增最上層特定政策**

1. 在 Grafana 主控台的 Grafana 功能表中，選擇**警示 **（鈴鐺） 圖示以開啟**警示**頁面。

1. 選擇**通知政策**。

1. 從 **Alertmanager** 下拉式清單中，選取您要編輯的 Alertmanager。

1. 在**特定路由**區段中，選擇**新增特定政策**。

1. 在**相符標籤**區段中，新增一或多個相符提醒標籤。有關標籤比對的詳細資訊，請參閱本主題的後文。

1. 在**聯絡點**中，如果提醒符合此特定政策，請新增要傳送通知的聯絡點。巢狀政策會覆寫此聯絡點。

1. 或者，即使提醒與目前的政策相符，也可以啟用**繼續比對後續的同級節點**，以繼續比對同級政策。啟用此政策時，您可以針對相同的提醒收到多個通知。

1. 選擇性地選取**覆寫群組**，以指定與根政策不同的群組。

1. 選擇性地選取**覆寫一般時間**，以覆寫群組通知政策中的時間選項。

1. 選擇**儲存政策**以儲存變更。

**新增巢狀政策**

1. 展開您要在其下建立巢狀政策的特定政策。

1. 選擇**新增巢狀政策**，然後新增詳細資訊 （如同新增最上層特定政策時）。

1. 選擇**儲存政策**以儲存變更。

**編輯特定政策**

1. 在**提醒**頁面中，選擇**通知政策**以開啟列出現有政策的頁面。

1. 選取您要編輯的政策，然後選擇**編輯**圖示 （筆）。

1. 進行任何變更 （如同新增頂層特定政策時）。

1. 選擇 **儲存政策**。

**搜尋政策**

您可以在政策樹狀目錄中依*標籤配對器*或*聯絡點*進行搜尋。
+ 若要依聯絡點搜尋，請在依聯絡點**搜尋欄位中輸入聯絡點**的部分名稱或全名。
+ 若要依標籤搜尋，請在**依標籤搜尋欄位中輸入有效的標籤**比對器。您可以輸入多個相符項目，並以逗號分隔。例如，有效的配對器輸入可以是 `severity=high, region=~EMEA|NA`。
**注意**  
依標籤搜尋時，所有相符的政策將完全相符。不支援部分相符項目和 regex 樣式相符項目。

**標籤比對的運作方式**

如果警示的標籤符合政策上指定的所有*相符標籤*，則政策會比對警示。
+ **Label** – 要比對的標籤名稱。它必須完全符合提醒的標籤名稱。
+ **Operator** – 用來比較標籤值與相符標籤值的運算子。可用的運算子包括：
  + `=` 選取其值完全符合所提供字串的標籤。
  + `!=` 選取其值不符合所提供字串的標籤。
  + `=~` 選取其值符合所提供字串之 regex 解譯值的標籤 （提供的字串會解譯為規則表達式。
  + `!=` 選取不符合所提供規則表達式的標籤。
+ **值** – 要比對標籤值的值。它可以比對為字串或規則表達式，取決於所選的運算子。

# 自訂通知
<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)。

使用通知範本自訂您的通知。

您可以使用通知範本來變更通知中訊息的標題、訊息和格式。

通知範本不會與特定聯絡點整合繫結，例如電子郵件或 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 的範本語言[文字/範本撰寫通知範本](https://pkg.go.dev/text/template)。

本節提供 Go 的範本語言和以文字/範本撰寫範本的概觀。

## 點
<a name="v9-go-dot"></a>

在文字/範本中，有一個稱為點的特殊游標，並寫入為 `.`。您可以將此游標視為變數，其值會根據使用的範本中的位置而變更。例如，在通知範本的開頭`.`是指 `ExtendedData` 物件，其中包含多個欄位，包括 `Alerts`、`Status`、`GroupLabels`、 `CommonLabels``CommonAnnotations`和 `ExternalURL`。不過，當在`range`清單上使用 時、在 內使用時，或寫入要用於其他範本的功能範本時`with`，點可能會參照其他項目。您可以在 中看到此範例[建立通知範本](v9-alerting-create-templates.md)，以及 中的所有資料和函數[範本參考](v9-alerting-template-reference.md)。

## 開啟和關閉標籤
<a name="v9-go-openclosetags"></a>

在文字/範本中，無論範本`}}`是否列印變數或執行控制結構，例如 if 陳述式，範本都會以 開頭`{{`和結尾。這與其他範本語言不同，例如 Jinja，其中列印變數使用 `{{`和 `}}`，控制結構使用 `{%`和 `%}`。

## Print (列印)
<a name="v9-go-print"></a>

若要列印某個項目的值，請使用 `{{`和 `}}`。您可以列印點的值、點的欄位、函數的結果，以及[變數](#v9-go-variables)的值。例如，若要列印 點所指`Alerts`的欄位`ExtendedData`，您需要撰寫以下內容：

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

## 重複提醒
<a name="v9-go-iterate-alerts"></a>

若要只列印每個提醒的標籤，而不是有關提醒的所有資訊，您可以使用 `range`來重複 中的提醒`ExtendedData`：

```
{{ range .Alerts }}
{{ .Labels }}
{{ end }}
```

範圍內的點不再是指 `ExtendedData`，而是 `Alert`。您可以使用 `{{ .Labels }}`來列印每個提醒的標籤。這是因為`{{ range .Alerts }}`變更點指向提醒清單中的目前提醒。當範圍完成時，點會重設為範圍開始之前的值，在此範例中為 `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`讓點參照提醒清單中的目前提醒，然後在排序的標籤上使用第二個範圍，讓點再次更新以參照目前的標籤。在第二個範圍內，使用 `.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="v9-go-if"></a>

您可以在範本中使用 if 陳述式。例如，`There are no alerts`若要在 中沒有提醒時列印`.Alerts`，您會撰寫下列項目：

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

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

使用 與 if 陳述式類似，但與使用 陳述式不同， 會以下列方式`with`更新點來參考 的值：

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

## Variables
<a name="v9-go-variables"></a>

文字/範本中的變數必須在範本中建立。例如，若要建立名為 `$variable`且目前值為點的變數，您需要撰寫下列項目：

```
{{ $variable := . }}
```

您可以在範圍 或 `$variable`內使用 ，`with`它會在定義變數時參考點的值，而不是點的目前值。

例如，您無法撰寫`{{ .Labels }}`在第二個範圍內使用的範本，因為這裡的點是指目前的標籤，而不是目前的提醒：

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

您可以透過在第一個範圍`$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_alert_list`、 `__text_values_list``default.title`和 `default.message`。如果已建立與預設範本同名的範本，或另一個通知範本中的範本，Grafana 可能會使用任一個範本。當有兩個或多個具有相同名稱的範本時，Grafana 不會阻止或顯示錯誤訊息。

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

## 內嵌範本
<a name="v9-go-embed"></a>

您可以使用 `template`、雙引號中的範本名稱，以及應該傳遞給範本的游標，在範本中嵌入定義的範本：

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

## 將資料傳遞至 範本
<a name="v9-go-passdata"></a>

在範本點中， 是指傳遞給範本的值。

例如，如果範本通過射擊提醒清單，則點是指射擊提醒清單：

```
{{ template "print_alerts" .Alerts }}
```

如果範本已傳遞警示的排序標籤，則點會參照排序標籤的清單：

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

在文字/範本中，使用 `{{-`和 `-}}` 來移除前後空格和換行符號。

例如，使用縮排和換行讓範本更易讀：

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

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

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

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

# 範本參考
<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  | 

# 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)，您可以使用*靜音*來隱藏警示通知。靜音只會停止建立通知：靜音不會阻止評估提醒規則，也不會停止在使用者介面中顯示提醒執行個體。當您將警示設為靜音時，您可以指定封鎖警示的時段。

您可以為外部 Alertmanager 資料來源設定靜音。

**注意**  
若要隱藏定期的提醒通知，或其他資料來源 （例如，在定期維護期間），請使用 [靜音計時](v9-alerting-notification-muting.md)而非靜音。

**新增靜音**

1. 在 Grafana 主控台的 Grafana 功能表中，選擇**警示 **（鈴鐺） 圖示以開啟**警示**頁面。

1. 選擇**靜音**以開啟列出現有 的頁面[使用聯絡點](v9-alerting-contact-points.md)。

1. 從 Alertmanager 下拉式清單中選擇外部 **Alertmanager**。

1. 選取**新增靜音**。

1. 在**靜音開始和結束日期中選取開始和**結束日期，以指示靜音何時生效以及何時結束。

   做為設定結束時間的替代方案，請在**持續時間**中指定強制執行靜音的時間長度。這會自動更新**靜音開始和結束**欄位中的結束時間。

1. 在**名稱**和**值**欄位中，輸入一或多個*相符標籤*。配對者決定靜音適用的規則。在此程序之後，會更詳細地討論標籤比對。

1. 或者，新增**註解**或修改**建立者**以設定靜音的擁有者。

1. 選擇**建立**以建立靜音。

您可以選擇編輯圖示 （筆） 來**編輯**現有的靜音。

**警示抑制的標籤比對**

當您建立靜音時，您會建立一組*相符的標籤*，做為靜音的一部分。這是一組關於標籤的規則，必須符合才能隱藏提醒。相符的標籤包含三個部分：
+ **Label** – 要比對的標籤名稱。它必須完全符合提醒的標籤名稱。
+ **Operator** – 用來比較標籤值與相符標籤值的運算子。可用的運算子包括：
  + `=` 選取其值完全符合所提供字串的標籤。
  + `!=` 選取其值不符合所提供字串的標籤。
  + `=~` 選取其值符合所提供字串之 regex 解譯值的標籤 （提供的字串會解譯為規則表達式）。
  + `!=` 選取不符合所提供規則表達式的標籤。
+ **值** – 要比對標籤值的值。它可以比對為字串或規則表達式，取決於所選的運算子。

靜音會在指定的結束日期結束，但您可以隨時手動結束禁止。

**手動結束靜音**

1. 在**提醒**頁面中，選擇**靜音**以檢視現有靜音的清單。

1. 選取您要結束的靜音，然後選擇**取消靜音**。這會結束提醒抑制。
**注意**  
取消靜音會結束提醒抑制，就好像已將結束時間設定為目前時間一樣。已結束的靜音 （自動或手動） 會保留並列出五天。您無法手動從清單中移除靜音。

**建立靜音建立表單的連結**

您可以使用已填入的詳細資訊來建立靜音建立表單的 URL。操作員可以使用此功能在操作事件期間快速抑制警示。

建立靜音表單的連結時，請使用`matchers`查詢參數來指定相符的標籤，並使用`comment`查詢參數來指定註解。`matchers` 參數需要格式為 的一或多個值`[label][operator][value]`，並以逗號分隔。

**範例 URL**

若要連結至靜音表單，並搭配相符的標籤 `severity=critical`和 `cluster!~europe-.*`，並加上註解指出 `Silencing critical EU alerts`，請使用如下所示的 URL。使用 *Grafana 執行個體的主機名稱取代 mygrafana*。

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

若要連結至外部 Alertmanager 的新靜音頁面，請使用 Alertmanage 資料來源名稱新增`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 受管靜音計時，以及外部 Alertmanager 資料來源的靜音計時。

**相較於靜音的靜音時間**

下表重點介紹靜音時間和靜音之間的差異。


| 靜音計時 | 靜音 | 
| --- | --- | 
|  使用可重複發生的時間間隔定義。  |  有固定的開始和結束時間。  | 
|  已建立 ，然後新增至通知政策。  |  使用標籤來比對提醒，以判斷是否靜音。  | 
|  適用於 Grafana 提醒和外部提醒管理員。  |  僅適用於外部警示管理員。  | 

**建立靜音計時**

1. 在 Grafana 主控台的 Grafana 功能表中，選擇**警示 **（鈴鐺） 圖示以開啟**警示**頁面。

1. 選擇**通知政策**。

1. 從 **Alertmanager** 下拉式清單中，選取您要編輯的 Alertmanager。

1. 在**靜音計時**區段中，選擇**新增靜音計時**按鈕。

1. 選擇您要套用靜音計時的時間間隔。

1. 選擇**提交**以建立靜音計時。

**將靜音時間新增至通知政策**

1. 選取您要新增靜音時間的通知政策，然後選擇**編輯**按鈕。

1. 從**靜音時間**下拉式清單中，選取要新增至政策的靜音時間。

   選擇**儲存政策**按鈕。

**時間間隔**

時間間隔是一段時間範圍內的定義。如果在此間隔期間啟動提醒，則會予以隱藏。使用 支援範圍 `:`（例如，`monday:thursday`)。靜音計時可包含多個時間間隔。時間間隔包含多個欄位 （詳細資訊請參閱下列清單），所有欄位都必須相符才能隱藏提醒。例如，如果您指定星期幾`monday:friday`和時間範圍為 8：00-9：00，則警示會在週一至週五的 8–9 之間隱藏，但不會在週六的 8–9 之間隱藏。
+ **時間範圍** – 一天中隱藏通知的時間。包含兩個子欄位，**開始時間**和**結束時間**。範例時間為 `14:30`。時間以 24 小時表示，以 UTC 表示。
+ **星期幾** – 星期幾。可以是一天，例如 `monday`、範圍，例如 `monday:friday`，或逗號分隔的天數清單，例如 `monday, tuesday, wednesday`。
+ **月** – 要選取的月。您可以使用數字指定來指定月份，或使用完整月份名稱來指定月份，例如，`1`或`january`同時指定一月。您可以指定單一月份、月份範圍或以逗號分隔的月份清單。
+ **當月天數** – 一個月內的日期。值的範圍可以是 `1`-`31`。負值會以相反順序指定月份的天數，因此 `-1`代表該月的最後一天。月份的天數可以指定為一天、天數範圍或逗號分隔的天數清單。
+ **年** – 間隔的年或年。例如 `2023:2025`。

每個元素都可以是清單，而且元素中至少必須滿足一個項目才能符合。因此，如果您將年份設定為 `2023:2025, 2027`，則在 2023 年、2024 年、2025 年和 2027 年 （但不是 2026 年） 期間是如此。

如果欄位保留空白，則任何時間都會與欄位相符。某個時間點必須符合所有欄位，才能符合完整的時間間隔。

如果您想要指定確切的持續時間，請指定該持續時間所需的所有選項。例如，如果您想要在 UTC 的 12：00 到 24：00 之間的 3 月、6 月、9 月和 12 月的第一個星期一建立時間間隔，您的時間間隔規格可能是：
+ 時間範圍：
  + 開始時間： `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)。

警示群組會顯示來自 Alertmanager 執行個體的分組警示。根據預設，警示規則會依通知政策中根政策的標籤索引鍵分組。將常見提醒規則分組為單一提醒群組可防止重複的提醒規則遭到觸發。

您可以檢視警示群組，也可以篩選符合特定條件的警示規則。

**檢視提醒群組**

1. 在 Grafana 選單中，按一下**提醒 **（鈴） 圖示，開啟列出現有提醒的提醒頁面。

1. 按一下**警示群組**以開啟列出現有群組的頁面。

1. 從 **Alertmanager** 下拉式清單中，選取外部 Alertmanager 做為資料來源。

1. 從**依下拉式清單的自訂群組**中，選取標籤組合以檢視預設以外的群組。這有助於偵錯和驗證您的通知政策群組。

如果提醒不包含根政策群組或自訂群組中指定的標籤，則提醒會新增至具有 標頭的所有群組`No grouping`。

**依標籤篩選**
+ 在**搜尋**中，輸入現有的標籤以檢視符合標籤的提醒。

  例如 `environment=production,region=~US|EU,severity!=warning`。

**依狀態篩選**
+ 在 **狀態**中，從作用中、隱藏或未處理狀態中選取 ，以檢視符合您所選狀態的提醒。所有其他提醒都會隱藏。

# 檢視通知錯誤
<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 Alertmanager。

**檢視通知錯誤**

1. 在 Grafana 功能表中，按一下**警示 **（鐘） 圖示，開啟列出現有警示的警示頁面。

1. 選擇**聯絡點**以查看現有聯絡點的清單。

   如果有任何聯絡點失敗，畫面右上角的訊息會提醒使用者出現錯誤和數量。

1. 按一下聯絡點以檢視該聯絡點的錯誤詳細資訊。

   如果您將滑鼠暫留在錯誤圖示上，則會顯示錯誤詳細資訊。

   如果聯絡點有多個整合，您會看到列出的每個整合的所有錯誤。

1. 在運作狀態欄中，檢查通知的狀態。

   這可以是確定、無嘗試或錯誤。