

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

# Grafana 第 9 版中的提醒
<a name="v9-alerts"></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 警示為您提供強大且可行的警示，協助您了解系統發生後瞬間的問題，將服務中斷降至最低。

Amazon Managed Grafana 包含對更新的提醒系統 *Grafana 提醒*的存取權，該系統會在單一可搜尋檢視中集中提醒資訊。它包含下列功能：
+ 在集中式檢視中建立和管理 Grafana 提醒。
+ 透過單一界面建立和管理 Cortex 和 Loki 受管提醒。
+ 檢視來自 Prometheus、Amazon Managed Service for Prometheus 和其他 Alertmanager 相容資料來源的提醒資訊。

當您建立 Amazon Managed Grafana 工作區時，您可以選擇使用 Grafana 提醒或 [傳統儀表板提醒](old-alerts-overview.md)。本節涵蓋 Grafana 提醒。

**注意**  
如果您在啟用傳統提醒的情況下建立工作區，並想要切換到 Grafana 提醒，您可以在[兩個提醒系統之間切換。](v9-alerting-use-grafana-alerts.md)

## Grafana 提醒限制
<a name="v9-alert-limitations"></a>
+ Grafana 提醒系統可以從所有可用的 Amazon Managed Service for Prometheus、Prometheus、Loki 和 Alertmanager 資料來源擷取規則。它可能無法從其他支援的資料來源擷取規則。
+ 在 Grafana 中定義的提醒規則，而不是在 Prometheus 中，將多個通知傳送到您的聯絡點。如果您使用的是原生 Grafana 提醒，建議您保持傳統儀表板提醒，不要啟用新的 Grafana 提醒功能。如果您想要檢視 Prometheus 資料來源中定義的提醒，建議您啟用 Grafana 提醒，這只會針對在 Prometheus Alertmanager 中建立的提醒傳送單一通知。
**注意**  
此限制不再是支援 Grafana v10.4 和更新版本的 Amazon Managed Grafana 工作區的限制。

**Topics**
+ [Grafana 提醒限制](#v9-alert-limitations)
+ [概觀](v9-alerting-overview.md)
+ [探索提醒](v9-alerting-explore.md)
+ [設定警示](v9-alerting-setup.md)
+ [將傳統儀表板提醒遷移至 Grafana 提醒](v9-alerting-use-grafana-alerts.md)
+ [管理您的提醒規則](v9-alerting-managerules.md)
+ [管理您的提醒通知](v9-alerting-managenotifications.md)

# 概觀
<a name="v9-alerting-overview"></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. **資料來源**

   連線至要由提醒使用的資料。此資料通常是時間序列資料，用於提醒，並顯示要監控和分析的系統詳細資訊。如需詳細資訊，請參閱[資料來源](AMG-data-sources-builtin.md)。

1. **提醒規則**

   設定評估條件，以判斷警示執行個體是否會觸發。警示規則包含一或多個查詢和表達式，用於從資料來源提取資料、描述 構成警示需求的條件、評估頻率，以及選擇性的觸發警示必須符合條件的持續時間。

   Grafana 受管警示支援多維度警示，這表示每個警示規則都可以建立多個警示執行個體。如果您在單一表達式中觀察多個序列，這非常強大。

1. **標籤**

   將警示規則及其執行個體與通知政策和靜音配對。它們也可以用來依嚴重性將提醒分組。

1. **通知政策**

   設定警示的路由位置、時間和方式，以便在警示觸發時通知您的團隊。每個通知政策都會指定一組標籤比對器，以指出他們負責的提醒。通知政策有指派給它的聯絡點，其中包含一或多個標記符。

1. **聯絡點**

   定義警示觸發時如何通知您的聯絡人。我們支援多種 ChatOps 工具，以確保警示送達您的團隊。

## 功能
<a name="v9-alerting-features"></a>

**所有提醒的單一頁面**

單一 Grafana 警示頁面會將位於 Prometheus 相容資料來源中的 Grafana 受管警示和警示合併為單一位置。

**多維度提醒**

提醒規則可以為每個提醒規則建立多個個別提醒執行個體，稱為多維提醒，只需一個提醒，即可讓您獲得整個系統的可見性。

**路由提醒**

根據您定義的標籤，將每個提醒執行個體路由到特定的聯絡點。通知政策是一組規則，用於將警示路由到聯絡點的位置、時間和方式。

**靜音提醒**

靜音可讓您停止接收一或多個提醒規則的持久性通知。您也可以根據特定條件部分暫停提醒。靜音有自己的專用區段，可提供更好的組織和可見性，因此您可以掃描暫停的警示規則，而不會混淆主要警示檢視。

**靜音計時**

透過靜音計時，您可以在不希望產生或傳送新通知時指定時間間隔。您也可以凍結重複期間的提醒通知，例如在維護期間。

# 探索提醒
<a name="v9-alerting-explore"></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 Alerting 提供的不同提醒規則類型。

## 警示規則類型
<a name="v9-alerting-explore-rule-types"></a>

**Grafana 受管規則**

Grafana 受管規則是最靈活的提醒規則類型。它們可讓您建立提醒，以處理來自我們任何支援資料來源的資料。除了支援多個資料來源之外，您還可以新增表達式來轉換資料並設定提醒條件。這是允許在單一規則定義中從多個資料來源發出提醒的唯一規則類型。

**Mimir 和 Loki 規則**

若要建立 Mimir 或 Loki 提醒，您必須擁有相容的 Prometheus 或 Loki 資料來源。您可以測試資料來源並觀察是否支援尺規 API，以檢查資料來源是否支援透過 Grafana 建立規則。

**錄製規則**

錄製規則僅適用於相容的 Prometheus 或 Loki 資料來源。錄製規則可讓您預先計算經常需要或運算昂貴的表達式，並將其結果儲存為一組新的時間序列。如果您想要對彙總資料執行警示，或如果您有重複查詢運算上昂貴表達式的儀表板，這會很有用。

## 重要概念和功能
<a name="v9-alerting-explore-features"></a>

下表包含關鍵概念、功能及其定義的清單，旨在協助您充分利用 Grafana 警示。


| 關鍵概念或功能 | 定義 | 
| --- | --- | 
|  警示的資料來源  |  選取您要查詢的資料來源，並將指標、日誌和追蹤視覺化。  | 
|  警示的佈建  |  管理您的提醒資源，並使用檔案佈建或 Terraform 將其佈建到您的 Grafana 系統中。  | 
|  警示管理員  |  管理警示執行個體的路由和分組。  | 
|  警示規則  |  警示規則應何時觸發的一組評估條件。提醒規則包含一或多個查詢和表達式、條件、評估頻率，以及滿足條件的持續時間。警示規則可以產生多個警示執行個體。  | 
|  警示執行個體  |  警示執行個體是警示規則的執行個體。單一維度警示規則有一個警示執行個體。多維提醒規則具有一或多個提醒執行個體。符合多個結果的單一警示規則，例如針對 10 個 VMs CPU，會計入多個 （在此案例中為 10) 警示執行個體。此數字可能會隨著時間而變化。例如，在新增 VMs 時，監控系統中所有 VM CPU VMs提醒執行個體。如需警示執行個體配額的詳細資訊，請參閱 [配額達到錯誤](v9-alerting-managerules-grafana.md#v9-alerting-rule-quota-reached)。  | 
|  警示群組  |  Alertmanager 預設會使用根通知政策的標籤來將警示執行個體分組。這可控制重複資料刪除和傳送至聯絡點的警示執行個體群組。  | 
|  聯絡點  |  定義警示規則觸發時如何通知您的聯絡人。  | 
|  訊息範本  |  建立可重複使用的自訂範本，並將其用於聯絡點。  | 
|  通知政策  |  警示分組和路由到聯絡點的位置、時間和方式的一組規則。  | 
|  標籤和標籤比對器  |  標籤可唯一識別提醒規則。它們將提醒規則連結至通知政策和靜音，決定哪些政策應該處理它們，以及哪些提醒規則應該靜音。  | 
|  靜音  |  停止來自一或多個提醒執行個體的通知。靜音和靜音計時之間的差異在於靜音只會持續一段指定的時段，而靜音計時則表示排程會重複。使用標籤比對器來靜音提醒執行個體。  | 
|  靜音計時  |  當您不希望產生或傳送新通知時，請指定時間間隔。您也可以凍結重複期間的提醒通知，例如在維護期間。必須連結到現有的通知政策。  | 

# 資料來源
<a name="v9-alerting-explore-datasources"></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)。

有許多[資料來源](AMG-data-sources-builtin.md)與 Grafana 警示相容。外掛程式支援每個資料來源。您可以使用下列其中一個內建資料來源。

這些是與 Amazon Managed Grafana 相容且受支援的資料來源。
+ [連線至 Alertmanager 資料來源](data-source-alertmanager.md)
+ [連線至 Amazon CloudWatch 資料來源](using-amazon-cloudwatch-in-AMG.md)
+ [連線至 Amazon OpenSearch Service 資料來源](using-Amazon-OpenSearch-in-AMG.md)
+ [連線至 AWS IoT SiteWise 資料來源](using-iotsitewise-in-AMG.md)
+ [連線至 an AWS IoT TwinMaker 資料來源](AMG-iot-twinmaker.md)
+ [連線至 Amazon Managed Service for Prometheus 和開放原始碼 Prometheus 資料來源](prometheus-data-source.md)
+ [連線至 Amazon Timestream 資料來源](timestream-datasource.md)
+ [連線至 Amazon Athena 資料來源](AWS-Athena.md)
+ [連線至 Amazon Redshift 資料來源](AWS-Redshift.md)
+ [連線至 AWS X-Ray 資料來源](x-ray-data-source.md)
+ [連線至 Azure Monitor 資料來源](using-azure-monitor-in-AMG.md)
+ [連線至 Google Cloud Monitoring 資料來源](using-google-cloud-monitoring-in-grafana.md)
+ [連接至 Graphite 資料來源](using-graphite-in-AMG.md)
+ [連線至 InfluxDB 資料來源](using-influxdb-in-AMG.md)
+ [連線至 Loki 資料來源](using-loki-in-AMG.md)
+ [連線至 Microsoft SQL Server 資料來源](using-microsoft-sql-server-in-AMG.md)
+ [連線至 MySQL 資料來源](using-mysql-in-AMG.md)
+ [連線至 OpenTSDB 資料來源](using-opentsdb-in-AMG.md)
+ [連線至 PostgreSQL 資料來源](using-postgresql-in-AMG.md)
+ [連接至 Jaeger 資料來源](jaeger-data-source.md)
+ [連線至 Zipkin 資料來源](zipkin-data-source.md)
+ [連線至 Tempo 資料來源](tempo-data-source.md)
+ [設定 TestData 資料來源進行測試](testdata-data-source.md)

# 關於提醒規則
<a name="v9-alerting-explore-rules"></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)。

警示規則是一組評估條件，可判斷警示執行個體是否會觸發。規則包含一或多個查詢和表達式、條件、評估頻率，以及選擇滿足條件的持續時間。

當查詢和表達式選取要評估的資料集時，條件會設定警示必須達到或超過才能建立警示的閾值。

間隔會指定警示規則的評估頻率。設定時，持續時間表示條件必須滿足的時間長度。提醒規則也可以定義缺少資料的提醒行為。

**Topics**
+ [警示規則類型](v9-alerting-explore-rules-types.md)
+ [提醒執行個體](v9-alerting-rules-instances.md)
+ [命名空間和群組](v9-alerting-rules-grouping.md)
+ [通知範本](v9-alerting-rules-notification-templates.md)

# 警示規則類型
<a name="v9-alerting-explore-rules-types"></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 受管規則

Grafana 受管規則是最靈活的提醒規則類型。它們可讓您建立警示，以對來自任何現有資料來源的資料採取行動。

除了支援任何資料來源之外，您還可以新增[表達式](v9-panels-query-xform-expressions.md)來轉換資料並表達提醒條件。

Mimir、Loki 和 Cortex 規則

若要建立 Mimir、Loki 或 Cortex 提醒，您必須擁有相容的 Prometheus 資料來源。您可以透過測試資料來源來檢查資料來源是否相容，並檢查是否支援尺規 API 的詳細資訊。

錄製規則

錄製規則僅適用於相容的 Prometheus 資料來源，例如 Mimir、Loki 和 Cortex。

錄製規則可讓您將表達式的結果儲存到一組新的時間序列。如果您想要對彙總資料執行警示，或如果您有重複查詢相同表達式的儀表板，這會很有用。

閱讀有關在 Prometheus 中[記錄規則](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/)的詳細資訊。

# 提醒執行個體
<a name="v9-alerting-rules-instances"></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 受管警示支援多維度警示。每個提醒規則都可以建立多個提醒執行個體。如果您在單一表達式中觀察多個序列，這會非常強大。

請考慮下列 PromQL 表達式：

```
sum by(cpu) (
  rate(node_cpu_seconds_total{mode!="idle"}[1m])
)
```

使用此表達式的規則將建立與評估期間觀察到的 CPUs 數量一樣多的提醒執行個體，允許單一規則報告每個 CPU 的狀態。

# 命名空間和群組
<a name="v9-alerting-rules-grouping"></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)。

可以使用 Mimir、Loki 或 Prometheus 規則和群組名稱的 Grafana 受管規則和命名空間的資料夾來組織提醒。

**命名空間**

建立 Grafana 受管規則時，資料夾可用來執行存取控制，以及授予或拒絕存取特定資料夾中的所有規則。

**Groups (群組)**

群組內的所有規則都會以相同的**間隔**進行評估。

警示規則和群組內的記錄規則一律會**依序**評估，這表示不會同時依顯示順序評估任何規則。

**提示**  
如果您想要以不同的間隔同時評估規則，請考慮將規則存放在不同的群組中。

# 通知範本
<a name="v9-alerting-rules-notification-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)。

透過聯絡點傳送的通知會使用通知範本建置。Grafana 的預設範本是以 [Go 範本系統](https://golang.org/pkg/text/template)為基礎，其中某些欄位會評估為文字，而其他則評估為 HTML （這可能會影響逸出）。

預設範本 [default\$1template.go](https://github.com/grafana/alerting/blob/main/templates/default_template.go) 是自訂範本的實用參考。

由於大多數的聯絡點欄位都可以建立範本，因此您可以建立可重複使用的自訂範本，並在多個聯絡點中使用它們。若要了解使用 範本的自訂通知，請參閱 [自訂通知](v9-alerting-notifications.md)。

**巢狀範本**

您可以在其他範本中內嵌範本。

例如，您可以使用 `define`關鍵字定義範本片段。

```
{{ define "mytemplate" }}
  {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved.
{{ end }}
```

然後，您可以使用 `template`關鍵字在此片段中嵌入自訂範本。例如：

```
Alert summary:
{{ template "mytemplate" . }}
```

您可以使用下列任何內建範本選項來內嵌自訂範本。


| 名稱 | 備註 | 
| --- | --- | 
|  `default.title`  |  顯示高階狀態資訊。  | 
|  `default.message`  |  提供射擊和已解決警示的格式化摘要。  | 
|  `teams.default.message`  |  與 類似`default.messsage`，針對 Microsoft Teams 格式化。  | 

**通知範本中的 HTML**

警示通知範本中的 HTML 會逸出。我們不支援在產生的通知中轉譯 HTML。

有些標記符支援變更所產生通知外觀和感覺的替代方法。例如，Grafana 會安裝基本範本，以警示電子郵件給 `<grafana-install-dir>/public/emails/ng_alert_notification.html`。您可以編輯此檔案，以變更所有提醒電子郵件的外觀。

# 數值資料的提醒
<a name="v9-alerting-explore-numeric"></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 如何處理數值警示，而非時間序列資料。

在特定資料來源中，非時間序列的數值資料可以直接提醒或傳遞至伺服器端表達式 (SSE)。這可讓您在資料來源內獲得更多的處理和產生的效率，也可以簡化提醒規則。提醒數值資料而非時間序列資料時，不需要將每個標記的時間序列減少為單一數字。反之，標記的數字會傳回給 Grafana。

**表格式資料**

查詢表格式資料的後端資料來源支援此功能：
+ SQL 資料來源，例如 MySQL、Postgres、MSSQL 和 Oracle。
+ Azure Kusto 型服務：Azure Monitor (Logs)、Azure Monitor (Azure Resource Graph) 和 Azure Data Explorer。

具有 Grafana 受管警示或 SSE 的查詢會被視為具有這些資料來源的數值，如果：
+ 資料來源查詢中的「格式化 AS」選項設定為「資料表」。
+ 從查詢傳回給 Grafana 的資料表回應僅包含一個數值 （例如 int、 double、 float) 欄，以及選擇性的額外字串欄。

如果有字串資料欄，則這些資料欄會變成標籤。資料欄的名稱會變成標籤名稱，而每一列的值會變成對應標籤的值。如果傳回多個資料列，則每個資料列都應唯一識別其標籤。

**範例**

對於名為「DiskSpace」的 MySQL 資料表：


| 時間 | 主機 | Disk | PercentFree | 
| --- | --- | --- | --- | 
|  2021-June-7  |  Web1  |  /等  |  3  | 
|  2021-June-7  |  Web2  |  /var  |  4  | 
|  2021-June-7  |  Web3  |  /var  |  8  | 
|  ...  |  ...  |  ...  |  ...  | 

您可以按時查詢資料篩選，但不將時間序列傳回給 Grafana。例如，當可用空間少於 5% 時，每個主機磁碟會觸發的提醒：

```
SELECT Host , Disk , CASE WHEN PercentFree  < 5.0 THEN PercentFree  ELSE 0 END FROM ( 
   SELECT
      Host, 
      Disk, 
      Avg(PercentFree) 
   FROM DiskSpace
   Group By
      Host, 
      Disk 
   Where __timeFilter(Time)
```

此查詢會將下列資料表回應傳回 Grafana：


| 主機 | Disk | PercentFree | 
| --- | --- | --- | 
|  Web1  |  /等  |  3  | 
|  Web2  |  /var  |  4  | 
|  Web3  |  /var  |  0  | 

當此查詢用作警示規則中的**條件**時，非零將發出警示。因此，會產生三個提醒執行個體：


| 標籤 | 狀態 | 
| --- | --- | 
|  \$1Host=web1，disk=/etc\$1  |  提醒  | 
|  \$1Host=web2，disk=/var\$1  |  提醒  | 
|  \$1Host=web3，disk=/var\$1  |  正常  | 

# 標籤和註釋
<a name="v9-alerting-explore-labels"></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)。

標籤和註釋包含提醒的相關資訊。標籤和註釋的結構都相同：一組具名值，但其預期用途不同。標籤或同等註釋的範例可能是 `alertname="test"`。

標籤和註釋的主要區別在於，標籤用於區分提醒與所有其他提醒，而註釋用於將其他資訊新增至現有提醒。

例如，請考慮兩個高 CPU 警示：一個用於 `server1`，另一個用於 `server2`。在此範例中，我們可能會有一個名為 的標籤，`server`其中第一個提醒具有 標籤`server="server1"`，而第二個提醒具有 標籤`server="server2"`。不過，我們也可能想要將描述新增至每個提醒，例如 `"The CPU usage for server1 is above 75%."`，其中 `server1`和 `75%` 會取代為伺服器的名稱和 CPU 使用量 （有關如何執行此操作，請參閱 [範本標籤和註釋](v9-alerting-explore-labels-templating.md)上的文件）。這種描述會更適合做為註釋。

## 標籤
<a name="v9-alerting-explore-labels-labels"></a>

標籤包含識別提醒的資訊。標籤的範例可能是 `server=server1`。每個提醒可以有多個標籤，且提醒的完整標籤集稱為其標籤集。這是識別提醒的標籤集。

例如，提醒可能已設定標籤，`{alertname="High CPU usage",server="server1"}`而另一個提醒可能已設定標籤`{alertname="High CPU usage",server="server2"}`。這些是兩個單獨的提醒，因為雖然其`alertname`標籤相同，但其`server`標籤不同。

警示的標籤集是資料來源的標籤、警示規則的自訂標籤，以及許多預留標籤的組合，例如 `alertname`。

**自訂標籤**

自訂標籤是來自提醒規則的其他標籤。如同註釋，自訂標籤必須具有名稱，而且其值可以包含文字和範本程式碼的組合，在觸發提醒時進行評估。您可以[在這裡](v9-alerting-explore-labels-templating.md)找到如何範本自訂標籤的文件。

搭配 範本使用自訂標籤時，請務必確保標籤值不會在警示規則的連續評估之間變更，因為這最終會產生大量不同的警示。不過，範本可以為不同的提醒產生不同的標籤值。例如，請勿將查詢的值放在自訂標籤中，因為這最終會在每次值變更時建立新的一組提醒。請改用註釋。

也請務必確保警示的標籤集沒有兩個或多個具有相同名稱的標籤。如果自訂標籤的名稱與資料來源的標籤相同，則會取代該標籤。不過，如果自訂標籤與預留標籤的名稱相同，則會從提醒中省略自訂標籤。

## 註釋
<a name="v9-alerting-explore-labels-annotations"></a>

註釋是將其他資訊新增至現有提醒的命名配對。Grafana 中有許多建議的註釋，例如 `description`、`runbook_url`、 `summary``dashboardUId`和 `panelId`。與自訂標籤一樣，註釋必須具有名稱，而且其值可以包含觸發提醒時評估的文字和範本程式碼組合。如果註釋包含範本程式碼，則會在觸發提醒時評估範本一次。即使警示已解決，也不會重新評估。您可以在[此處](v9-alerting-explore-labels-templating.md)找到如何建立註釋範本的文件。

# 標籤比對的運作方式
<a name="v9-alerting-explore-labels-matching"></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)。

使用標籤和標籤比對器，將警示規則連結至通知政策和靜音。這可讓 以非常靈活的方式管理您的提醒執行個體、指定哪些政策應處理它們，以及哪些提醒靜音。

標籤比對器包含 3 個不同的部分：**標籤**、**值**和**運算子**。
+ Label **** 欄位是要比對的標籤名稱。它必須完全符合標籤名稱。
+ **值**欄位符合指定**標籤**名稱的對應值。比對方式取決於**運算子**值。
+ **運算**子欄位是要比對標籤值的運算子。可用的運算子包括：


| 運算子 | Description | 
| --- | --- | 
|  `=`  |  選取完全等於 值的標籤。  | 
|  `!=`  |  選取不等於 值的標籤。  | 
|  `=~`  |  選取 regex 符合值的標籤。  | 
|  `!~`  |  選取不與值 regex 相符的標籤。  | 

如果您使用多個標籤比對器，則會使用 AND 邏輯運算子來合併它們。這表示所有配對器都必須相符，才能將規則連結至政策。

**範例藍本**

如果您為提醒定義下列一組標籤：

```
{ foo=bar, baz=qux, id=12 }
```

然後：
+ 定義為 的標籤比對器`foo=bar`符合此提醒規則。
+ 定義為 的標籤比對器`foo!=bar`*不符合*此提醒規則。
+ 定義為 的標籤比對器`id=~[0-9]+`符合此提醒規則。
+ 定義為 的標籤比對器`baz!~[0-9]+`符合此提醒規則。
+ 定義為 `foo=bar`且`id=~[0-9]+`符合此提醒規則的兩個標籤比對程式。

# Grafana 警示中的標籤
<a name="v9-alerting-explore-labels-alerting"></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 使用標籤來比對通知政策中靜音和警示群組的警示。
+ 警示 UI 會顯示評估該規則期間產生之每個警示執行個體的標籤。
+ 聯絡點可以存取標籤，動態產生通知，其中包含導致通知的提醒特定資訊。
+ 您可以將標籤新增至[提醒規則](v9-alerting-managerules.md)。標籤可手動設定、使用範本函數，並可參考其他標籤。新增至提醒規則的標籤優先於標籤之間發生衝突的情況 (Grafana 預留標籤的情況除外，如需詳細資訊，請參閱以下內容）。

**外部警示管理員相容性**

Grafana 的內建 Alertmanager 支援 Unicode 標籤索引鍵和值。如果您使用的是外部 Prometheus Alertmanager，標籤金鑰必須與其[資料模型](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)相容。這表示標籤索引鍵只能包含 **ASCII 字母**、**數字**以及**底線**，並與 regex 相符`[a-zA-Z_][a-zA-Z0-9_]*`。任何無效的字元都會由 Grafana 提醒引擎移除或取代，然後再根據下列規則傳送至外部 Alertmanager：
+ `Whitespace` 將會移除。
+ `ASCII characters` 將取代為 `_`。
+ `All other characters` 將以小寫十六進位表示法取代。如果這是第一個字元，則會在字首加上 `_`。

**注意**  
如果多個標籤索引鍵已淨化為相同的值，則重複項目的原始標籤的短雜湊會附加為尾碼。

**Grafana 預留標籤**

**注意**  
Grafana `grafana_`會保留字首為 的標籤以供特殊使用。如果從 開始新增手動設定的標籤`grafana_`，則在發生碰撞時可以覆寫。

Grafana 預留標籤的使用方式與手動設定的標籤相同。目前可用的預留標籤清單如下：


| 標籤 | Description | 
| --- | --- | 
|  grafana\$1folder  |  包含提醒的資料夾標題。  | 

# 範本標籤和註釋
<a name="v9-alerting-explore-labels-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)。

在 Grafana 中，您會像在 Prometheus 中一樣範本標籤和註釋。如果您之前已使用 Prometheus，則應熟悉 `$labels`和 `$value`變數，其中包含提醒的標籤和值。您可以在 Grafana 中使用相同的變數，即使提醒不使用 Prometheus 資料來源。如果您之前沒有使用 Prometheus，則不必擔心這些變數的每一個，以及如何建立範本，當您遵循本頁面的其餘部分時，將會進行說明。

## Go 的範本語言
<a name="v9-alerting-explore-labels-templating-go"></a>

標籤和註釋的範本是以 Go 的範本語言[文字/範本](https://pkg.go.dev/text/template)撰寫。

**開啟和關閉標籤**

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

**Print (列印)**

若要列印某個項目的值，請使用 `{{`和 `}}`。您可以列印函數的結果或變數的值。例如，若要列印`$labels`變數，您會撰寫下列項目：

```
{{ $labels }}
```

**在標籤上反覆運算**

若要逐一查看 中的每個標籤`$labels`，您可以使用 `range`。這裡`$k`是指名稱，而 `$v` 是指目前標籤的值。例如，如果您的查詢傳回標籤`instance=test`，則 `$k`會是 `instance`，而 `$v` 會是 `test`。

```
{{ range $k, $v := $labels }}
{{ $k }}={{ $v }}
{{ end }}
```

## 標籤、值和值變數
<a name="v9-alerting-explore-labels-templating-variables"></a>

**標籤變數**

`$labels` 變數包含查詢中的標籤。例如，檢查執行個體是否關閉的查詢可能會傳回執行個體標籤，其名稱為關閉的執行個體。例如，假設您有一個警示規則，當其中一個執行個體停機超過 5 分鐘時，就會觸發該規則。您想要將摘要新增至提醒，告知您哪個執行個體已關閉。使用 `$labels`變數，您可以建立摘要，在摘要中列印執行個體標籤：

```
Instance {{ $labels.instance }} has been down for more than 5 minutes
```

**帶有點的標籤**

如果您想要列印的標籤在範本中使用相同點的名稱中包含點 （完全停止或句點） 將無法運作：

```
Instance {{ $labels.instance.name }} has been down for more than 5 minutes
```

這是因為範本嘗試使用 `name`中稱為 的不存在欄位`$labels.instance`。您應該改用 函數，該`index`函數會在 `$labels`變數`instance.name`中列印標籤：

```
Instance {{ index $labels "instance.name" }} has been down for more than 5 minutes
```

**值變數**

`$value` 變數的運作方式與 Prometheus 不同。在 Prometheus `$value`中，浮點數包含表達式的值，但在 Grafana 中，浮點數包含此提醒規則所有閾值、減少和數學表達式和傳統條件的標籤和值。它不包含查詢的結果，因為它們可以傳回 10s 到 10，000s 的資料列或指標。

如果您要在提醒摘要中使用 `$value`變數：

```
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ $value }})
```

摘要看起來可能會類似以下內容：

```
api has an over 5% of responses with 5xx errors: [ var='B' labels={service=api} value=6.789 ]
```

這裡`var='B'`是指具有 RefID B 的表達式。在 Grafana 中，所有查詢和表達式都是由識別提醒規則中每個查詢和表達式的 RefID 所識別。同樣地， `labels={service=api}` 是指標籤，而 `value=6.789`是指 值。

您可能已觀察到沒有 RefID A。這是因為在大多數提醒規則中，RefID A 是指查詢，而且因為查詢可以傳回許多資料列或時間序列，它們不包含在 中`$value`。

**值變數**

如果`$value`變數包含的資訊超過您需要的資訊，您可以改為使用 列印個別表達式的標籤和值`$values`。與 不同`$value`，`$values`變數是物件的資料表，其中包含每個表達式的標籤和浮點值，依其 RefID 編製索引。

如果您要在提醒摘要`B`中使用 RefID 列印表達式的值：

```
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ $values.B }}%
```

摘要將僅包含 值：

```
api has an over 5% of responses with 5xx errors: 6.789%
```

不過，當 `{{ $values.B }}`列印數字 6.789 時，它實際上是一個字串，因為您列印的物件同時包含 RefID B 的標籤和值，而不是 B 的浮點值。若要使用 RefID B 的浮點值，您必須使用 中的 `Value` 欄位`$values.B`。如果您要人為化警示摘要中的浮點值：

```
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ humanize $values.B.Value }}%
```

**無資料、執行時間錯誤和逾時**

如果警示規則中的查詢未傳回任何資料，或因為資料來源錯誤或逾時而失敗，則使用該查詢的任何閾值、減少或數學表達式也將不會傳回任何資料或錯誤。發生這種情況時，這些表達式將不存在於 `$values`。最佳實務是在使用前檢查 RefID 是否存在，否則，如果您的查詢未傳回資料或發生錯誤，您的範本將會中斷。您可以使用 if 陳述式來執行此操作：

```
{{ if $values.B }}{{ $labels.service }} has over 5% of responses with 5xx errors: {{ humanizePercentage $values.B.Value }}{{ end }}
```

## 傳統條件
<a name="v9-alerting-explore-labels-templating-classic"></a>

如果規則使用 Classic Conditions 而非 Threshold、Reuce 和 Math 運算式，則`$values`變數會以 Classic Condition 中條件的 Ref ID 和位置來編製索引。例如，如果您的 Classic Condition 具有包含兩個條件的 RefID B，則 `$values`將包含兩個條件 `B0`和 `B1`。

```
The first condition is {{ $values.B0 }}, and the second condition is {{ $values.B1 }}
```

## 函數
<a name="v9-alerting-explore-labels-templating-functions"></a>

展開標籤和註釋時，也可以使用下列函數：

**args**

`args` 函數會將物件清單轉譯為索引鍵為 arg0、arg1 等的映射。這是為了允許將多個引數傳遞至 範本。

**範例**

```
{{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}}
```

```
1 2
```

**externalURL**

`externalURL` 函數會傳回 Grafana 伺服器的外部 URL，如 ini 檔案 (ini) 中所設定。

**範例**

```
{{ externalURL }}
```

```
https://example.com/grafana
```

**graphLink**

`graphLink` 函數會針對指定的表達式和資料來源，傳回 中圖形檢視[探索 Grafana 第 9 版](v9-explore.md)的路徑。

**範例**

```
{{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```

```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}]
```

**人文化**

`humanize` 函數可人為化小數位數。

**範例**

```
{{ humanize 1000.0 }}
```

```
1k
```

**humanize1024**

`humanize1024` 的運作方式類似於 ，`humanize`但使用 1024 做為基礎，而不是 1000。

**範例**

```
{{ humanize1024 1024.0 }}
```

```
1ki
```

**humanizeDuration**

`humanizeDuration` 函數會以秒為單位將持續時間人為化。

**範例**

```
{{ humanizeDuration 60.0 }}
```

```
1m 0s
```

**humanizePercentage**

`humanizePercentage` 函數會將比率值人為化為百分比。

**範例**

```
{{ humanizePercentage 0.2 }}
```

```
20%
```

**humanizeTimestamp**

`humanizeTimestamp` 函數會人為化 Unix 時間戳記。

**範例**

```
{{ humanizeTimestamp 1577836800.0 }}
```

```
2020-01-01 00:00:00 +0000 UTC
```

**比對**

`match` 函數會比對文字與規則表達式模式。

**範例**

```
{{ match "a.*" "abc" }}
```

```
true
```

**pathPrefix**

`pathPrefix` 函數會傳回 Grafana 伺服器的路徑，如 ini 檔案 (ini) 中所設定。

**範例**

```
{{ pathPrefix }}
```

```
/grafana
```

**tableLink**

`tableLink` 函數會針對指定的表達式和資料來源，傳回 中表格式檢視[探索 Grafana 第 9 版](v9-explore.md)的路徑。

**範例**

```
{{ tableLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```

```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}]
```

**標題**

`title` 函數會大寫每個單字的第一個字元。

**範例**

```
{{ title "hello, world!" }}
```

```
Hello, World!
```

**toLower**

`toLower` 函數會傳回小寫的所有文字。

**範例**

```
{{ toLower "Hello, world!" }}
```

```
hello, world!
```

**toUpper**

`toUpper` 函數會傳回大寫的所有文字。

**範例**

```
{{ toUpper "Hello, world!" }}
```

```
HELLO, WORLD!
```

**reReplaceAll**

`reReplaceAll` 函數會取代符合規則表達式的文字。

**範例**

```
{{ reReplaceAll "localhost:(.*)" "example.com:$1" "localhost:8080" }}
```

```
example.com:8080
```

# 警示規則的狀態和運作狀態
<a name="v9-alerting-explore-state"></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)。

警示規則的狀態和運作狀態可協助您了解警示的數個關鍵狀態指標。

有三個關鍵元件：*警示規則狀態*、*警示執行個體狀態*和*警示規則運作*狀態。雖然相關，但每個元件傳達的資訊都略有不同。

**警示規則狀態**

警示規則可以處於下列其中一種狀態：


| State | Description | 
| --- | --- | 
|  正常  |  評估引擎傳回的任何時間序列都不會處於 `Pending`或 `Firing` 狀態。  | 
|  待定  |  評估引擎傳回的至少一個時間序列為 `Pending`。  | 
|  射擊  |  評估引擎傳回的至少一個時間序列為 `Firing`。  | 

**注意**  
警示會先轉換為 `pending`，然後再轉換為 `firing`，因此至少需要兩個評估週期才能觸發警示。

**警示執行個體狀態**

警示執行個體可以處於下列其中一種狀態：


| State | Description | 
| --- | --- | 
|  正常  |  既不發射也不待定的提醒狀態，一切都正常運作。  | 
|  待定  |  處於作用中狀態，且持續時間少於設定的閾值持續時間的提醒狀態。  | 
|  提醒  |  處於作用中狀態且超過設定的閾值持續時間的提醒狀態。  | 
|  NoData  |  未收到所設定時段的資料。  | 
|  錯誤  |  嘗試評估警示規則時發生錯誤。  | 

**警示規則運作狀態**

提醒規則可以具有下列其中一種運作狀態：


| State | Description | 
| --- | --- | 
|  確定  |  評估警示規則時沒有錯誤。  | 
|  錯誤  |  評估警示規則時發生錯誤。  | 
|  NoData  |  在規則評估期間，至少傳回一個時間序列中缺少資料。  | 

**`NoData`和 的特殊提醒 `Error`**

當警示規則評估產生狀態 `NoData`或 時`Error`，Grafana 警示將產生具有下列額外標籤的警示執行個體：


| 標籤 | Description | 
| --- | --- | 
|  提醒名稱  |  `DatasourceNoData` 或 `DatasourceError`取決於 狀態。  | 
|  datasource\$1uid  |  造成 狀態的資料來源 UID。  | 

您可以透過新增靜音、路由到聯絡點等方式，以與一般提醒相同的方式處理這些提醒。

# 聯絡點
<a name="v9-alerting-explore-contacts"></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、Webhook 等。當警示規則觸發時，通知會傳送至為聯絡點列出的所有聯絡點類型。您可以為 Grafana Alertmanager 和外部警示管理員設定聯絡點。

您也可以使用通知範本來自訂聯絡點類型的通知訊息。

**支援的聯絡點類型**

下表列出 Grafana 支援的聯絡點類型。


| 名稱 | 類型 | 
| --- | --- | 
|  Amazon SNS  |  `sns`  | 
|  OpsGenie  |  `opsgenie`  | 
|  Pager 職責  |  `pagerduty`  | 
|  Slack  |  `slack`  | 
|  VictorOps  |  `victorops`  | 

如需聯絡點的詳細資訊，請參閱 [使用聯絡點](v9-alerting-contact-points.md)和 [自訂通知](v9-alerting-notifications.md)。

# 通知
<a name="v9-alerting-explore-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)。

Grafana 使用警示管理員來傳送觸發和解決警示的通知。Grafana 有自己的 Alertmanager，在使用者介面中稱為「Grafana」，但也支援從其他 Alertmanager 傳送通知，例如 [Prometheus Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/)。Grafana Alertmanager 使用通知政策和聯絡點來設定通知的傳送方式和位置；通知的傳送頻率；以及提醒是否應該在相同的通知中傳送、根據一組標籤以分組通知傳送，還是單獨傳送通知。

## 通知政策
<a name="v9-alerting-explore-notifications-policies"></a>

通知政策控制通知傳送的時間和位置。通知政策可以選擇在同一通知中一起傳送所有提醒、根據一組標籤在分組通知中傳送提醒，或將提醒作為個別通知傳送。您可以設定每個通知政策來控制應傳送通知的頻率，以及具有一個或多個靜音時間，以在一天中的特定時間和一週中的特定天禁止通知。

通知政策會組織在樹狀結構中，其中樹狀目錄的根目錄有一個稱為根政策的通知政策。只能有一個根政策，且無法刪除根政策。

特定路由政策是根政策的子系，可用於根據一組相符標籤，比對所有警示或警示子集。當警示相符的標籤符合警示中的標籤時，通知政策會比對警示。

特定路由政策可以有自己的子政策，稱為巢狀政策，允許額外的警示比對。特定路由政策的範例可能是傳送基礎設施提醒給營運團隊；而子政策可能會傳送高優先順序提醒給 Pagerduty，以及傳送低優先順序提醒給 Slack。

無論其標籤為何，所有提醒都符合根政策。不過，當根政策收到提醒時，它會查看每個特定路由政策，並將提醒傳送至符合提醒的第一個特定路由政策。如果特定路由政策有進一步的子政策，則可以嘗試將提醒與其中一個巢狀政策進行比對。如果沒有巢狀政策符合提醒，則特定路由政策是相符政策。如果沒有特定路由政策，或沒有特定路由政策符合提醒，則根政策是相符政策。

## 聯絡點
<a name="v9-alerting-explore-notifications-contacts"></a>

聯絡點包含傳送通知的組態。聯絡點是整合的清單，每個整合都會傳送通知到特定的電子郵件地址、服務或 URL。聯絡點可以有相同類型的多個整合，或不同類型的整合組合。例如，聯絡點可能包含分頁器職責整合、分頁器職責和 Slack 整合，或分頁器職責整合、Slack 整合和兩個 Amazon SNS 整合。您也可以設定沒有整合的聯絡點；在這種情況下，不會傳送通知。

在將通知新增至通知政策之前，聯絡點無法傳送通知。通知政策只能將提醒傳送至一個聯絡點，但可以同時將聯絡點新增至多個通知政策。當警示符合通知政策時，該警示會傳送至該通知政策中的聯絡點，然後傳送通知給其組態中的每個整合。

**注意**  
如需支援之聯絡點整合的資訊，請參閱 [聯絡點](v9-alerting-explore-contacts.md)。

## 範本化通知
<a name="v9-alerting-explore-notifications-templating"></a>

您可以使用 範本自訂通知。例如， 範本可用來變更傳送至 Slack 通知的標題和訊息。

範本不限於個別整合或聯絡點，而是可用於相同聯絡點中的多個整合，甚至是跨不同聯絡點的整合。例如，Grafana 使用者可以建立名為 的範本，`custom_subject_or_title`並將其用於 Pager Duty 中的範本主題和 Slack 訊息的標題，而無需建立兩個單獨的範本。

所有通知範本都會以 [Go 的範本語言](https://pkg.go.dev/text/template)撰寫，且位於警示頁面上的聯絡點索引標籤中。

## 靜音
<a name="v9-alerting-explore-notifications-silences"></a>

您可以使用靜音來將一或多個觸發規則的通知靜音。靜音不會阻止警示觸發或解決，或隱藏使用者介面中的觸發警示。只要其持續時間可以設定為分鐘、小時、天、月或年，靜音就會持續。

# 設定警示
<a name="v9-alerting-setup"></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)。

設定建立和管理提醒所需的功能和整合。

**Topics**
+ [新增外部 Alertmanager](v9-alerting-setup-alertmanager.md)
+ [佈建 Grafana 警示資源](v9-alerting-setup-provision.md)

# 新增外部 Alertmanager
<a name="v9-alerting-setup-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)。

將 Grafana 設定為使用外部 Alertmanager 作為單一 Alertmanager 來接收所有提醒。然後，您可以從 Grafana 本身設定和管理此外部 Alertmanager。

新增 Alertmanager 後，您可以使用 Grafana 警示 UI 來管理靜音、聯絡點和通知政策。這些頁面中的下拉式清單選項可讓您在警示管理員之間切換。

**注意**  
從 Grafana 9.2 開始，警示頁面上管理員索引標籤中的外部警示管理員 URL 組態已棄用。它將在未來的版本中移除。

現在應使用主要 Grafana 導覽選單中的 Grafana 組態，將外部警示管理員設定為資料來源。這可讓您從 Grafana 內管理外部警示管理員的聯絡點和通知政策，並加密先前透過 URL 設定外部警示管理員時可見的 HTTP 基本身分驗證憑證。

若要新增外部 Alertmanager，請完成下列步驟。

1. 按一下組態，然後按一下資料來源。

1. 搜尋 Alertmanager。

1. 選擇您的實作，並視需要填寫頁面上的欄位。

   如果您要佈建資料來源，請將 `jsonData` 欄位中`handleGrafanaManagedAlerts`的 旗標設定為 `true`，以將 Grafana 受管警示傳送至此 Alertmanager。
**注意**  
支援 Alertmanager 的 Prometheus、Grafana Mimir 和 Cortex 實作。對於 Prometheus，聯絡點和通知政策在 Grafana 警示 UI 中為唯讀。

1. 按一下儲存並測試。

# 佈建 Grafana 警示資源
<a name="v9-alerting-setup-provision"></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. 使用警示佈建 HTTP API 佈建您的警示資源。
**注意**  
一般而言，您無法從 Grafana UI 編輯 API 佈建的提醒規則。  
若要啟用編輯，請在 API 中建立或編輯提醒規則時，將 x-disable-provenance 標頭新增至下列請求：  

   ```
   POST /api/v1/provisioning/alert-rules
   PUT /api/v1/provisioning/alert-rules/{UID}
   ```

1. 使用 Terraform 佈建提醒資源。

**注意**  
目前，佈建 Grafana 警示支援警示規則、聯絡點、靜音時間和範本。使用檔案佈建或 Terraform 佈建的提醒資源只能在建立它們的來源中編輯，而不是從 Grafana 或任何其他來源中編輯。例如，如果您使用來自磁碟的檔案佈建提醒資源，則無法編輯 Terraform 或 Grafana 中的資料。

**Topics**
+ [使用 Terraform 建立和管理提醒資源](v9-alerting-setup-provision-terraform.md)
+ [在 Grafana 中檢視佈建的提醒資源](v9-alerting-setup-provision-view.md)

# 使用 Terraform 建立和管理提醒資源
<a name="v9-alerting-setup-provision-terraform"></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)。

使用 Terraform 的 Grafana 提供者來管理您的提醒資源，並將它們佈建到您的 Grafana 系統。Grafana 警示的 Terraform 提供者支援可讓您輕鬆地建立、管理和維護整個 Grafana 警示堆疊做為程式碼。

如需使用 Terraform 管理提醒資源的詳細資訊，請參閱 Terraform 文件中的 [Grafana 提供者](https://registry.terraform.io/providers/grafana/grafana/latest/docs)文件。

完成下列任務，以使用 Terraform 建立和管理提醒資源。

1. 建立用於佈建的 API 金鑰。

1. 設定 Terraform 提供者。

1. 在 Terraform 中定義您的提醒資源。

1. 執行 `terraform apply` 來佈建您的提醒資源。

## 先決條件
<a name="v9-alerting-setup-provision-tf-prerequisites"></a>
+ 確保您擁有 grafana/grafana [Terraform 提供者](https://registry.terraform.io/providers/grafana/grafana/1.28.0) 1.27.0 或更高版本。
+ 確保您使用的是 Grafana 9.1 或更高版本。如果您使用 Grafana 第 9 版建立 Amazon Managed Grafana 執行個體，則這是 true。

## 建立用於佈建的 API 金鑰
<a name="v9-alerting-setup-provision-tf-apikey"></a>

您可以[建立一般 Grafana API 金鑰](Using-Grafana-APIs.md)來向 Grafana 驗證 Terraform。使用 API 金鑰的大多數現有工具應該會自動使用新的 Grafana 警示支援。如需建立金鑰以搭配 Terraform 使用的詳細資訊，請參閱[使用 Terraform for Amazon Managed Grafana 自動化](https://aws-observability.github.io/observability-best-practices/recipes/recipes/amg-automation-tf/)。

**建立用於佈建的 API 金鑰**

1. 為您的 CI 管道建立新的服務帳戶。

1. 指派角色「存取警示規則佈建 API」。

1. 建立新的服務帳戶字符。

1. 命名並儲存字符以用於 Terraform。

或者，您可以使用基本身分驗證。若要檢視所有支援的身分驗證格式，請參閱 Terraform 文件中的 [Grafana 身分驗證](https://registry.terraform.io/providers/grafana/grafana/latest/docs#authentication)。

## 設定 Terraform 提供者
<a name="v9-alerting-setup-provision-tf-configure"></a>

Grafana 警示支援包含在 [Grafana Terraform 提供者](https://registry.terraform.io/providers/grafana/grafana/latest/docs)中。

以下是可用來設定 Terraform 提供者的範例。

```
terraform {
    required_providers {
        grafana = {
            source = "grafana/grafana"
            version = ">= 1.28.2"
        }
    }
}

provider "grafana" {
    url = <YOUR_GRAFANA_URL>
    auth = <YOUR_GRAFANA_API_KEY>
}
```

## 佈建聯絡點和範本
<a name="v9-alerting-setup-provision-tf-contacts"></a>

聯絡點會將警示堆疊連線到外部世界。他們告訴 Grafana 如何連接到您的外部系統以及在何處傳送通知。有十五種不同的[整合](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/contact_point#optional)可供選擇。此範例使用 Slack 聯絡點。

**佈建聯絡點和範本**

1. 將此程式碼區塊複製到本機電腦上的 .tf 檔案。將 *<slack-webhook-url>* 取代為您的 Slack Webhook URL （或其他聯絡人

   此範例會建立將提醒通知傳送至 Slack 的聯絡點。

   ```
   resource "grafana_contact_point" "my_slack_contact_point" {
       name = "Send to My Slack Channel"
   
       slack {
           url = <slack-webhook-url>
           text = <<EOT
   {{ len .Alerts.Firing }} alerts are firing!
   
   Alert summaries:
   {{ range .Alerts.Firing }}
   {{ template "Alert Instance Template" . }}
   {{ end }}
   EOT
       }
   }
   ```

1. 在文字欄位中輸入通知的文字。

   `text` 欄位支援 [Go 樣式範本](https://pkg.go.dev/text/template)。這可讓您直接在 Terraform 中管理 Grafana 警示通知範本。

1. 執行 `terraform apply` 命令。

1. 前往 Grafana UI 並檢查聯絡點的詳細資訊。

   您無法從 UI 編輯透過 Terraform 佈建的資源。這可確保警示堆疊始終與您的程式碼保持同步。

1. 按一下**測試**以驗證聯絡點是否正常運作。

**注意**  
您可以在許多聯絡點之間重複使用相同的範本。在上述範例中，使用 陳述式內嵌的共用範本 `{{ template "Alert Instance Template" . }}`  
然後，可以在 Terraform 中單獨管理此片段：  

```
resource "grafana_message_template" "my_alert_template" {
    name = "Alert Instance Template"

    template = <<EOT
{{ define "Alert Instance Template" }}
Firing: {{ .Labels.alertname }}
Silence: {{ .SilenceURL }}
{{ end }}
EOT
}
```

## 佈建通知政策和路由
<a name="v9-alerting-setup-provision-tf-notifications"></a>

通知政策會告知 Grafana 如何路由警示執行個體，而不是在何處。它們使用標籤和配對器系統，將射擊提醒連接到您先前定義的聯絡點。

**佈建通知政策和路由**

1. 將此程式碼區塊複製到本機電腦上的 .tf 檔案。

   在此範例中，警示會依 分組`alertname`，這表示來自相同名稱之警示的任何通知都會分組為相同的 Slack 訊息。

   如果您想要以不同的方式路由特定通知，您可以新增子政策。子政策可讓您根據標籤比對，將路由套用至不同的提醒。在此範例中，我們將靜音時間套用至標籤為 a=b 的所有提醒。

   ```
   resource "grafana_notification_policy" "my_policy" {
       group_by = ["alertname"]
       contact_point = grafana_contact_point.my_slack_contact_point.name
   
       group_wait = "45s"
       group_interval = "6m"
       repeat_interval = "3h"
   
       policy {
           matcher {
               label = "a"
               match = "="
               value = "b"
           }
           group_by = ["..."]
           contact_point = grafana_contact_point.a_different_contact_point.name
           mute_timings = [grafana_mute_timing.my_mute_timing.name]
   
           policy {
               matcher {
                   label = "sublabel"
                   match = "="
                   value = "subvalue"
               }
               contact_point = grafana_contact_point.a_third_contact_point.name
               group_by = ["..."]
           }
       }
   }
   ```

1. 在 mute\$1timings 欄位中，將靜音時間連結至您的通知政策。

1. 執行 `terraform apply` 命令。

1. 前往 Grafana UI 並檢查通知政策的詳細資訊。
**注意**  
您無法從 UI 編輯從 Terraform 佈建的資源。這可確保警示堆疊始終與您的程式碼保持同步。

1. 按一下**測試**以驗證通知點是否正常運作。

## 佈建靜音計時
<a name="v9-alerting-setup-provision-tf-mutetiming"></a>

靜音計時可讓您在定義的期間內將警示通知靜音。

**佈建靜音計時**

1. 將此程式碼區塊複製到本機電腦上的 .tf 檔案。

   在此範例中，提醒通知會在週末靜音。

   ```
   resource "grafana_mute_timing" "my_mute_timing" {
       name = "My Mute Timing"
   
       intervals {
           times {
             start = "04:56"
             end = "14:17"
           }
           weekdays = ["saturday", "sunday", "tuesday:thursday"]
           months = ["january:march", "12"]
           years = ["2025:2027"]
       }
   }
   ```

1. 執行 `terraform apply` 命令。

1. 前往 Grafana UI 並檢查靜音時間的詳細資訊。

1. 使用 `mute_timings` 欄位，在通知政策中參考您新建立的靜音時間。這會將您的靜音時間套用至部分或全部通知。
**注意**  
您無法從 UI 編輯從 Terraform 佈建的資源。這可確保警示堆疊始終與您的程式碼保持同步。

1. 按一下**測試**以驗證靜音計時是否正常運作。

## 佈建提醒規則
<a name="v9-alerting-setup-provision-tf-rules"></a>

[提醒規則](v9-alerting-managerules.md)可讓您針對任何 Grafana 資料來源發出提醒。這可以是您已設定的資料來源，也可以搭配提醒規則在 [Terraform 中定義資料來源](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/data_source)。

**佈建提醒規則**

1. 建立要查詢的資料來源和存放規則的資料夾。

   在此範例中，使用[設定 TestData 資料來源進行測試](testdata-data-source.md)資料來源。

   您可以針對 Grafana 中的任何後端資料來源定義警示。

   ```
   resource "grafana_data_source" "testdata_datasource" {
       name = "TestData"
       type = "testdata"
   }
   
   resource "grafana_folder" "rule_folder" {
       title = "My Rule Folder"
   }
   ```

1. 定義提醒規則。

   如需警示規則的詳細資訊，請參閱[如何建立 Grafana 受管警示](https://grafana.com/blog/2022/08/01/grafana-alerting-video-how-to-create-alerts-in-grafana-9/)。

1. 建立包含一或多個規則的規則群組。

   在此範例中，會使用 `grafana_rule_group` 資源群組。

   ```
   resource "grafana_rule_group" "my_rule_group" {
       name = "My Alert Rules"
       folder_uid = grafana_folder.rule_folder.uid
       interval_seconds = 60
       org_id = 1
   
       rule {
           name = "My Random Walk Alert"
           condition = "C"
           for = "0s"
   
           // Query the datasource.
           data {
               ref_id = "A"
               relative_time_range {
                   from = 600
                   to = 0
               }
               datasource_uid = grafana_data_source.testdata_datasource.uid
               // `model` is a JSON blob that sends datasource-specific data.
               // It's different for every datasource. The alert's query is defined here.
               model = jsonencode({
                   intervalMs = 1000
                   maxDataPoints = 43200
                   refId = "A"
               })
           }
   
           // The query was configured to obtain data from the last 60 seconds. Let's alert on the average value of that series using a Reduce stage.
           data {
               datasource_uid = "__expr__"
               // You can also create a rule in the UI, then GET that rule to obtain the JSON.
               // This can be helpful when using more complex reduce expressions.
               model = <<EOT
   {"conditions":[{"evaluator":{"params":[0,0],"type":"gt"},"operator":{"type":"and"},"query":{"params":["A"]},"reducer":{"params":[],"type":"last"},"type":"avg"}],"datasource":{"name":"Expression","type":"__expr__","uid":"__expr__"},"expression":"A","hide":false,"intervalMs":1000,"maxDataPoints":43200,"reducer":"last","refId":"B","type":"reduce"}
   EOT
               ref_id = "B"
               relative_time_range {
                   from = 0
                   to = 0
               }
           }
   
           // Now, let's use a math expression as our threshold.
           // We want to alert when the value of stage "B" above exceeds 70.
           data {
               datasource_uid = "__expr__"
               ref_id = "C"
               relative_time_range {
                   from = 0
                   to = 0
               }
               model = jsonencode({
                   expression = "$B > 70"
                   type = "math"
                   refId = "C"
               })
           }
       }
   }
   ```

1. 前往 Grafana UI 並檢查您的提醒規則。

   您可以查看警示規則是否正在觸發。您也可以查看每個警示規則查詢階段的視覺化。

   當警示觸發時，Grafana 會透過您定義的政策路由通知。

   例如，如果您選擇 Slack 作為聯絡窗口，Grafana 的內嵌 [Alertmanager](https://github.com/prometheus/alertmanager) 會自動將訊息發佈到 Slack。

# 在 Grafana 中檢視佈建的提醒資源
<a name="v9-alerting-setup-provision-view"></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 執行個體。

1. 導覽至警示。

1. 按一下提醒資源資料夾，例如提醒規則。

   佈建的資源會標記為**佈建**，因此很清楚它們不是手動建立的。

**注意**  
您無法從 Grafana 編輯佈建的資源。您只能透過變更佈建檔案並重新啟動 Grafana 或執行熱重新載入來變更資源屬性。這可防止對資源進行變更，如果再次佈建檔案或執行熱重新載入，則會覆寫該資源。

# 將傳統儀表板提醒遷移至 Grafana 提醒
<a name="v9-alerting-use-grafana-alerts"></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 提醒，您必須選擇加入 功能。

您可以將 Amazon Managed Grafana 執行個體設定為使用 AWS 管理主控台、 AWS CLI或 Amazon Managed Grafana API 來使用 Grafana 提醒。如需如何設定 Amazon Managed Grafana 的詳細資訊，包括開啟或關閉 Grafana 提醒，請參閱 [設定 Amazon Managed Grafana 工作區](AMG-configure-workspace.md)。

**注意**  
使用 Grafana 提醒時，提醒規則是在 Grafana 中定義的，而不是在 Prometheus 中，傳送多個通知到您的聯絡點。如果您使用的是原生 Grafana 提醒，建議您保持傳統儀表板提醒，不要啟用新的 Grafana 提醒功能。如果您想要檢視 Prometheus 資料來源中定義的提醒，建議您啟用 Grafana 提醒，這只會針對在 Prometheus Alertmanager 中建立的提醒傳送單一通知。  
此限制已在支援 Grafana v10.4 和更新版本的 Amazon Managed Grafana 工作區中移除。

## 遷移至 Grafana 提醒系統
<a name="v9-alerting-use-grafana-alerts-opt-in"></a>

開啟 Grafana 提醒時，現有的傳統儀表板提醒會以與 Grafana 提醒相容的格式遷移。在 Grafana 執行個體的提醒頁面中，您可以檢視遷移的提醒以及新的提醒。透過 Grafana 提醒，您的 Grafana 受管提醒規則會在符合時傳送多個通知，而不是單一提醒。

傳統儀表板提醒和 Grafana 提醒的讀取和寫入存取權受存放它們的資料夾許可所管理。在遷移期間，傳統儀表板提醒許可會與新規則許可相符，如下所示：
+ 如果原始提醒的儀表板具有許可，遷移會建立名為 且具有此格式的資料夾`Migrated {"dashboardUid": "UID", "panelId": 1, "alertId": 1}`，以符合原始儀表板的許可 （包括來自資料夾的繼承許可）。
+ 如果沒有儀表板許可，且儀表板位於資料夾下，則規則會連結至此資料夾並繼承其許可。
+ 如果沒有儀表板許可，且儀表板位於一般資料夾下，則規則會連結至一般提醒資料夾，且規則會繼承預設許可。

**注意**  
由於 Grafana 提醒`NoData`中沒有 `Keep Last State`的選項，此選項會在傳統規則遷移`NoData`期間變成 。`Keep Last State` `Error` 處理選項會遷移至新的選項 `Error`。為了符合 的行為`Keep Last State`，在這兩種情況下，在遷移期間，Amazon Managed Grafana 會自動為每個警示規則建立靜音，持續時間為一年。

通知通道會使用適當的路由和接收者遷移至 Alertmanager 組態。預設通知通道會新增為預設路由的聯絡點。與任何儀表板提醒無關的通知管道會前往`autogen-unlinked-channel-recv`路由。

### 限制
<a name="v9-alerting-use-grafana-alerts-limitations"></a>
+ Grafana 提醒系統可以從所有可用的 Prometheus、Loki 和 Alertmanager 資料來源擷取規則。它可能無法從其他支援的資料來源擷取提醒規則。
+ 在 Grafana 提醒和傳統儀表板提醒之間來回遷移可能會導致一個系統支援的功能資料遺失，但另一個系統則不會遺失資料。
**注意**  
如果您遷移回傳統儀表板提醒，則會遺失在啟用 Grafana 提醒時對提醒組態所做的所有變更，包括建立的任何新提醒規則。

# 管理您的提醒規則
<a name="v9-alerting-managerules"></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 Mimir 或 Loki 執行個體的警示規則。

**Topics**
+ [建立 Grafana 受管警示規則](v9-alerting-managerules-grafana.md)
+ [建立 Grafana Mimir 或 Loki 受管提醒規則](v9-alerting-managerules-mimir-loki.md)
+ [建立 Grafana Mimir 或 Loki 受管錄製規則](v9-alerting-managerules-mimir-loki-recording.md)
+ [Grafana Mimir 或 Loki 規則群組和命名空間](v9-alerting-managerules-mimir-loki-groups.md)
+ [檢視和編輯提醒規則](v9-alerting-managerules-view-edit.md)

# 建立 Grafana 受管警示規則
<a name="v9-alerting-managerules-grafana"></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 會將通知傳送至聯絡點。

**新增 Grafana 受管規則**

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

1. 選擇**新增提醒規則**。

1. 在**步驟 1** 中，新增規則名稱、類型和儲存位置，如下所示：
   + 在**規則名稱**中，新增描述性名稱。此名稱會顯示在提醒規則清單中。它也是從此規則建立的每個提醒執行個體的`alertname`標籤。
   + 從**規則類型**下拉式清單中，選取 **Grafana 受管提醒**。
   + 從**資料夾**下拉式清單中，選取要存放規則的資料夾。如果您未選取資料夾，則規則會存放在`General`資料夾中。若要建立資料夾，請選取下拉式清單，然後輸入新的資料夾名稱。

1. 在**步驟 2** 中，新增要評估的查詢和表達式。
   + 保留預設名稱或將滑鼠游標暫留在上方，然後選擇編輯圖示以變更名稱。
   + 對於查詢，請從下拉式清單中選取資料來源。
   + 新增一或多個[查詢或表達式](v9-panels-query-xform-expressions.md)。
   + 針對每個表達式，選取 **Classic 條件**以建立單一提醒規則，或從**數學**、**減少**、**重新取樣**選項中選擇，為每個序列產生個別提醒。如需這些選項的詳細資訊，請參閱 [單一和多維度規則](#v9-alerting-single-multi-rule)。
   + 選擇**執行查詢**以驗證查詢是否成功。

1. 在**步驟 3** 中，新增條件。
   + 從**條件**下拉式清單中，選取查詢或表達式以啟動提醒規則。
   + 對於**評估每個**，請指定評估的頻率。必須是 10 秒的倍數。例如 `1m` 和 `30s`。
   + 對於**評估 **，指定條件在啟動提醒之前必須為 true 的持續時間。
**注意**  
違反條件後，提醒會進入 `Pending` 狀態。如果條件在指定的持續時間內仍然違反，警示會轉換為 `Firing` 狀態。如果不再符合，則會還原為 `Normal` 狀態。
   + 在**設定無資料和錯誤處理**中，設定缺少資料的提醒行為。 使用 中的準則[不處理任何資料或錯誤案例](#v9-alerting-rule-no-data-error)。
   + 選擇**預覽提醒**，檢查目前執行查詢的結果。預覽不包含任何資料和錯誤處理條件。

1. 在**步驟 4** 中，新增與規則相關聯的其他中繼資料。
   + 新增描述和摘要以自訂提醒訊息。使用 中的準則[標籤和註釋](v9-alerting-explore-labels.md)。
   + 新增 Runbook URL、面板、儀表板和提醒 IDs。
   + 新增自訂標籤。

1. 選擇**儲存**以儲存規則，或選擇**儲存並退出**以儲存規則，然後返回**提醒**頁面。

建立規則之後，您可以為規則建立通知。如需有關通知的詳細資訊，請參閱[管理您的提醒通知](v9-alerting-managenotifications.md)。

## 單一和多維度規則
<a name="v9-alerting-single-multi-rule"></a>

對於 Grafana 受管警示規則，您可以建立具有傳統條件的規則，也可以建立多維度規則。

**單一維度規則 （傳統條件）**

使用傳統條件表達式來建立規則，在滿足其條件時啟動單一提醒。對於傳回多個序列的查詢，Grafana 不會追蹤每個序列的提醒狀態。因此，即使多個序列符合提醒條件，Grafana 也會僅傳送單一提醒。

如需如何格式化表達式的詳細資訊，請參閱 *Grafana 文件*中的[表達式](https://grafana.com/docs/grafana/next/panels/query-a-data-source/)。

**多維度規則**

若要為查詢中傳回的每個序列產生個別的提醒執行個體，請建立多維度規則。

**注意**  
多維度規則產生的每個提醒執行個體都會計入您的提醒總配額。當您達到提醒配額時，不會評估規則。如需多維規則配額的詳細資訊，請參閱 [配額達到錯誤](#v9-alerting-rule-quota-reached)。

若要從單一規則建立多個執行個體，請使用 `Math`、 `Reduce`或 `Resample`表達式來建立多維度規則。例如，您可以：
+ 為每個查詢新增`Reduce`運算式，將所選時間範圍中的值彙總為單一值。([使用數值資料的規則](v9-alerting-explore-numeric.md)不需要）。
+ 新增具有規則條件的`Math`表達式。如果規則不應啟動提醒，則查詢或減少表達式已傳回 0，或者如果規則應啟動提醒，則傳回正數，則不需要此選項。

  一些範例：
  + `$B > 70` 如果它應該在 B 查詢/表達式的值超過 70 時啟動提醒。
  + `$B < $C * 100` 如果 B 值小於 C 值乘以 100，則應該啟動提醒。如果比較的查詢在其結果中有多個序列，則不同查詢的序列如果具有相同的標籤，或其中一個是另一個查詢的子集，則會相符。

**注意**  
Grafana 不支援具有範本變數的提醒查詢。如需詳細資訊，請參閱社群頁面 [設定警示時，警示查詢不支援範本變數](https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514)。



**多維度規則的效能考量**

每個提醒執行個體都會計入提醒配額。不會評估建立超過警示配額內可容納之執行個體的多維度規則，並傳回配額錯誤。如需詳細資訊，請參閱[配額達到錯誤](#v9-alerting-rule-quota-reached)。

多維度提醒可能對 Grafana 工作區的效能以及資料來源的效能產生高度影響，因為 Grafana 會查詢它們來評估您的提醒規則。當您嘗試最佳化監控系統的效能時，下列考量會很有幫助。
+ **規則評估的頻率** – 警示規則的每個屬性**評估**控制規則評估的頻率。我們建議您使用可接受的最低評估頻率。
+ **結果集基數** – 您使用規則建立的提醒執行個體數量會影響其效能。假設您正在監控機群中每個 VM 上每個 API 路徑的 API 回應錯誤。此集具有路徑數量的基數乘以 VMs 數量。您可以降低結果集的基數，例如，透過監控每個 VM 的總錯誤數，而不是每個 VM 的每個路徑。
+ **查詢的複雜性** – 資料來源可以處理和回應以快速耗用較少資源的查詢。雖然此考量比上述其他考量更不重要，但如果您已盡可能減少這些考量，查看個別查詢效能可能會產生影響。您也應該了解評估這些規則對資料來源造成的效能影響。警示查詢通常是監控資料庫處理的絕大多數查詢，因此影響 Grafana 執行個體的相同負載因素也會影響它們。

## 配額達到錯誤
<a name="v9-alerting-rule-quota-reached"></a>

您可以在單一工作區中擁有的提醒執行個體數量有配額。當您達到該號碼時，您無法再在該工作區中建立新的提醒規則。使用多維提醒時，提醒執行個體的數量會隨著時間而變化。

使用提醒執行個體時，請務必記住下列事項。
+ 如果您只建立單一維度規則，則每個規則都是單一提醒執行個體。您可以在單一工作區中建立與提醒執行個體配額相同的規則數目，而不再建立。
+ 多維度規則會建立多個提醒執行個體，但是，在評估數字之前，不會知道數字。例如，如果您建立警示規則來追蹤 Amazon EC2 執行個體的 CPU 用量，則當您建立 EC2 執行個體時，可能會有 50 個 EC2 執行個體 （因此還有 50 個警示執行個體），但如果您一週後再新增 10 個 EC2 執行個體，則下一個評估會有 60 個警示執行個體。

  當您建立多維提醒時，會評估提醒執行個體的數量，而且您無法建立讓您立即超過提醒執行個體配額的提醒執行個體數量。由於提醒執行個體的數量可以變更，每次評估您的規則時都會檢查您的配額。
+ 在規則評估時間，如果規則導致您超出提醒執行個體的配額，則在更新提醒規則，使提醒執行個體總數低於服務配額之前，不會評估該規則。發生這種情況時，您會收到提醒通知，通知您已達到配額 （通知使用通知政策來評估規則）。通知包含值為 的`Error`註釋`QuotaReachedError`。
+ 導致`QuotaReachedError`停止評估的規則。只有在進行更新且更新之後的評估本身不會導致 時，才會繼續評估`QuotaReachedError`。未評估的規則會顯示 Grafana 主控台中**配額達到**的錯誤。
+ 您可以透過移除提醒規則，或編輯多維提醒來減少提醒執行個體的數量 （例如，對每個 VM 的錯誤有一個提醒，而不是對 VM 中的每個 API 的錯誤有一個提醒）。
+ 若要繼續評估，請更新提醒並儲存。您可以更新它以降低提醒執行個體的數量，或者如果您已進行其他變更以降低提醒執行個體的數量，則可以儲存它而不進行任何變更。如果可以繼續，則為 。如果它造成另一個 `QuotaReachedError`，您就無法儲存它。
+ 儲存提醒並恢復評估而不超過提醒配額時，**配額達到**的錯誤可以繼續在 Grafana 主控台中顯示一段時間 （直到其評估間隔），不過，如果達到規則閾值，則提醒規則評估會開始並傳送提醒。
+ 如需提醒配額和其他配額的詳細資訊，請參閱 [Amazon Managed Grafana 服務配額](AMG_quotas.md)。

## 不處理任何資料或錯誤案例
<a name="v9-alerting-rule-no-data-error"></a>

選擇在資料不存在或發生錯誤時如何處理提醒行為的選項。

處理任何資料的選項會列在下表中。


| 無資料選項 | Behavior (行為) | 
| --- | --- | 
|  無資料  |  建立具有提醒規則`DatasourceNoData`名稱和 UID 的提醒，以及未以標籤形式傳回資料之資料來源的 UID。  | 
|  提醒  |  將警示規則狀態設定為 `Alerting`。  | 
|  OK  |  將警示規則狀態設定為 `Normal`。  | 

下表列出處理錯誤案例的選項。


| 錯誤或逾時選項 | Behavior (行為) | 
| --- | --- | 
|  提醒  |  將警示規則狀態設定為 `Alerting`  | 
|  OK  |  將警示規則狀態設定為 `Normal`  | 
|  錯誤  |  建立具有提醒規則`DatasourceError`名稱和 UID 的提醒，以及未以標籤形式傳回資料之資料來源的 UID。  | 

# 建立 Grafana Mimir 或 Loki 受管提醒規則
<a name="v9-alerting-managerules-mimir-loki"></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 Mimir 或 Loki 執行個體建立提醒規則。

**注意**  
Grafana Mimir 可以連線至 Amazon Managed Service for Prometheus 和 Prometheus 資料來源。

**先決條件**
+ 確認您具有 Prometheus 資料來源的寫入許可。否則，您無法建立或更新 Cortex 受管提醒規則。
+ 對於 Grafana Mimir 和 Loki 資料來源，請設定各自的服務來啟用尺規 API。
  + **Loki** – `local`規則儲存類型預設為 Loki 資料來源，僅支援檢視規則。若要編輯規則，請設定其他儲存類型之一。
  + **Grafana Mimir** – 使用舊版`/api/prom`字首，而非 `/prometheus`。Prometheus 資料來源同時支援 Grafana Mimir 和 Prometheus，Grafana 預期查詢 API 和尺規 API 都位於相同的 URL 下。您無法為尺規 API 提供單獨的 URL。

**注意**  
如果您不想管理特定 Loki 或 Prometheus 資料來源的提醒規則，請前往其設定，並清除**透過提醒 UI 管理提醒**核取方塊。

**新增 Grafana Mimir 或 Loki 受管提醒規則**

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

1. 選擇**建立提醒規則**。

1. 在**步驟 1** 中，選擇規則類型和詳細資訊，如下所示：
   + 選擇 **Mimir 或 Loki 提醒**。
   + 在**規則名稱**中，新增描述性名稱。此名稱會顯示在提醒規則清單中。它也是從此規則建立的每個提醒執行個體的`alertname`標籤。
   + 從**選取資料來源**下拉式清單中，選取 Prometheus 或 Loki 資料來源。
   + 從**命名空間**下拉式清單中，選取現有的規則命名空間。否則，請選擇**新增**並輸入名稱以建立名稱。命名空間可以包含一或多個規則群組，而且只有組織用途。如需詳細資訊，請參閱[Cortex 或 Loki 規則群組和命名空間](alert-rules.md#alert-rule-groups)。
   + 從**群組**下拉式清單中，選取所選命名空間內的現有群組。否則，請選擇**新增**並輸入名稱以建立名稱。新建立的規則會附加到 群組的結尾。群組內的規則會以固定間隔循序執行，且評估時間相同。

1. 在**步驟 2** 中，新增要評估的查詢。

   值可以是 PromQL 或 LogQL 表達式。如果評估結果具有至少一個值大於 0 的序列，則規則會啟動提醒。會為每個系列建立提醒。

1. 在**步驟 3** 中，指定警示評估間隔。

   在條件的****文字方塊中，指定條件在啟動提醒之前必須為 true 的持續時間。如果您指定 `5m`，則在警示啟動之前，條件必須為 true 五分鐘。
**注意**  
滿足條件後，提醒會進入 `Pending` 狀態。如果條件在指定的持續時間內保持作用中，警示會轉換為 `Firing` 狀態。如果不再符合，則會還原為 `Normal` 狀態。

1. 在**步驟 4** 中，新增與規則相關聯的其他中繼資料。
   + 新增描述和摘要以自訂提醒訊息。使用 中的準則[標籤和註釋](v9-alerting-explore-labels.md)。
   + 新增 Runbook URL、面板、儀表板和提醒 IDs。
   + 新增自訂標籤。

1. 選擇**預覽提醒**來評估規則，並查看它會產生哪些提醒。它會顯示警示清單，其中包含每個警示的狀態和值。

1. 選擇**儲存**以儲存規則，或選擇**儲存並結束**以儲存規則，然後返回**提醒**頁面。

建立規則之後，您可以為規則建立通知。如需有關通知的詳細資訊，請參閱[管理您的提醒通知](v9-alerting-managenotifications.md)。

# 建立 Grafana Mimir 或 Loki 受管錄製規則
<a name="v9-alerting-managerules-mimir-loki-recording"></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 Mimir 或 Loki 執行個體的錄製規則。錄製規則會預先計算經常需要的表達式或運算昂貴的表達式，並將結果儲存為新的一組時間序列。查詢這個新的時間序列速度更快，尤其是儀表板，因為每次儀表板重新整理時都會查詢相同的表達式。

**先決條件**

對於 Grafana Mimir 和 Loki 資料來源，請設定各自的服務來啟用尺規 API。
+ **Loki** – `local`規則儲存類型，預設為 Loki 資料來源，僅支援檢視規則。若要編輯規則，請設定其他儲存類型之一。
+ **Grafana Mimir** – 設定資料來源以指向 Grafana Mimir 時，請使用舊版`/api/prom`字首，而不是 `/prometheus`。Prometheus 資料來源同時支援 Grafana Mimir 和 Prometheus，Grafana 預期查詢 API 和尺規 API 都位於相同的 URL 下。您無法為尺規 API 提供單獨的 URL。

**注意**  
如果您不想管理特定 Loki 或 Prometheus 資料來源的提醒規則，請前往其設定，並清除**透過提醒 UI 管理提醒**核取方塊。

**新增 Grafana Mimir 或 Loki 受管錄製規則**

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

1. 選擇**建立提醒規則**。

1. 在**步驟 1** 中，新增規則類型、規則名稱和儲存位置，如下所示。
   + 選取 **Mimir 或 Loki 錄製規則**選項。
   + 在**規則名稱**中，新增描述性名稱。此名稱會顯示在提醒規則清單中。它也是從此規則建立的每個提醒執行個體的`alertname`標籤。
   + 從**選取資料來源**下拉式清單中，選取 Prometheus 或 Loki 資料來源。
   + 從**命名空間**下拉式清單中，選取現有的規則命名空間。否則，請選擇**新增**並輸入名稱以建立名稱。命名空間可以包含一或多個規則群組，而且只有組織用途。如需詳細資訊，請參閱[Cortex 或 Loki 規則群組和命名空間](alert-rules.md#alert-rule-groups)。
   + 從**群組**下拉式清單中，選取所選命名空間內的現有群組。否則，請選擇**新增**並輸入名稱以建立名稱。新建立的規則會附加到 群組的結尾。群組內的規則會以固定間隔循序執行，評估時間相同。

1. 在**步驟 2** 中，新增要評估的查詢。

   此值可以是 PromQL 或 LogQL 表達式。如果評估結果具有至少一個值大於 0 的序列，則規則會啟動提醒。會為每個系列建立提醒。

1. 在**步驟 3** 中，新增與規則相關聯的其他中繼資料。
   + 新增描述和摘要以自訂提醒訊息。使用 中的準則[提醒規則的註釋和標籤](alert-rules.md#alert-rule-labels)。
   + 新增 Runbook URL、面板、儀表板和提醒 IDs。
   + 新增自訂標籤。

1. 選擇**儲存**以儲存規則，或選擇**儲存並退出**以儲存規則，然後返回**提醒**頁面。

# Grafana Mimir 或 Loki 規則群組和命名空間
<a name="v9-alerting-managerules-mimir-loki-groups"></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 Mimir 或 Loki 命名空間和規則群組，並編輯規則群組評估間隔。

**編輯規則群組或命名空間**

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

1. 導覽至您要編輯的規則群組或命名空間內的規則。

1. 選擇**編輯** （筆） 圖示。

1. 變更規則群組或命名空間。
**注意**  
對於命名空間，您只能編輯名稱。對於規則群組，您可以變更群組中規則的名稱或評估間隔。例如，您可以選擇讓`1m`規則每分鐘評估一次，或每 30 秒`30s`評估一次。

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

# 檢視和編輯提醒規則
<a name="v9-alerting-managerules-view-edit"></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 管理的規則，**Cortex/Loki** 區段則列出 Prometheus 相容資料來源的規則。您可以檢視 Prometheus 相容資料來源的提醒規則，但無法編輯它們。

Mimir/Cortex/Loki 規則區段會列出 Mimir、Cortex 或 Loki 資料來源的所有規則。本節也會列出雲端提醒規則。

管理大量警示時，您可以使用延伸警示規則搜尋功能來篩選資料夾、評估群組和規則。此外，您可以依其屬性篩選警示規則，例如標籤、狀態、類型和運作狀態。

**注意**  
您可以檢視已佈建提醒的查詢定義，但無法編輯它們。能夠檢視它們可讓您驗證查詢和規則定義是否正確，而無需返回佈建儲存庫進行規則定義。

## 檢視提醒規則
<a name="v9-alerting-managerules-view"></a>

使用 Grafana 提醒，您可以在一個頁面中檢視所有提醒。

**檢視提醒詳細資訊**

1. 在 Grafana 主控台的 Grafana 功能表中，選擇**警示 **（鈴鐺） 圖示以開啟**警示**頁面。根據預設，規則會依資料來源類型顯示在群組中。您也可以依每個提醒的目前狀態檢視 （以下文字會更詳細地說明這些內容）。

1. 在**檢視為**中，您可以選擇您偏好的選項，在群組和狀態檢視之間切換。

1. 選擇資料列旁的箭頭，以檢視該資料列的更多詳細資訊。規則的詳細資訊包括規則標籤、註釋、資料來源和查詢，以及規則產生的提醒執行個體清單。

**注意**  
如需了解提醒詳細資訊的詳細資訊，請參閱 [警示規則的狀態和運作狀態](v9-alerting-explore-state.md)。

**群組檢視**

群組檢視顯示依資料夾分組的 Grafana 提醒規則，以及依 `namespace` \$1 分組的 Loki 或 Prometheus 提醒規則`group`。這是預設規則清單檢視，用於管理規則。您可以展開每個群組，以檢視此群組中的規則清單。進一步展開規則以檢視其詳細資訊。您也可以展開規則產生的動作按鈕和提醒，以檢視其詳細資訊。

**狀態檢視**

狀態檢視會顯示依狀態分組的提醒規則。使用此檢視來取得哪些規則處於何種狀態的概觀。每個規則都可以展開以檢視其詳細資訊。動作按鈕和此規則產生的任何提醒，每個提醒都可以進一步展開以檢視其詳細資訊。

**篩選提醒規則**

您可以透過多種方式篩選出現在提醒頁面上的**提醒**規則。
+ 您可以選擇**選取資料來源，然後選擇要篩選的資料來源**，以顯示查詢特定資料來源的規則。
+ 您可以在依標籤搜尋中選擇搜尋條件，依**標籤篩選**。例如，您可以輸入 `environment=production,region=~US|EU,severity!=warning` 來篩選美國和歐洲的生產警告。
+ 您可以選擇**依狀態篩選警示**，然後選擇您要檢視的狀態，以篩選在特定狀態顯示規則。

## 編輯或刪除提醒規則
<a name="v9-alerting-managerules-edit"></a>

只有具有儲存規則之資料夾編輯許可的使用者，才能編輯或刪除 Grafana 受管提醒規則。具有編輯器或管理員角色的使用者可以編輯或刪除外部 Mimir 或 Loki 執行個體的提醒規則。

**編輯或刪除規則**

1. 展開規則，直到您可以查看**檢視**、**編輯**和**刪除**的規則控制項。

1. 選擇**編輯**以開啟建立規則頁面。以建立規則的相同方式進行更新。如需詳細資訊，請參閱 [建立 Grafana 受管警示規則](v9-alerting-managerules-grafana.md)或 中的說明[建立 Grafana Mimir 或 Loki 受管提醒規則](v9-alerting-managerules-mimir-loki.md)。

1. 或者，選擇**刪除**以刪除規則。

## 匯出提醒規則
<a name="v9-alerting-managerules-export"></a>

您可以選擇匯出，將規則**匯出**至 Grafana 工作區中的 YAML 或 JSON。它將為您提供定義新規則的選項，然後匯出它。您可以使用 UI 建立規則，然後將其匯出以用於佈建 API 或 terraform 指令碼。

**注意**  
Grafana 工作區和佈建介面都支援此功能。

# 管理您的提醒通知
<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. 在運作狀態欄中，檢查通知的狀態。

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