

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

# 概觀
<a name="v10-alerting-overview"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

無論您是剛開始，還是更經驗豐富的 Grafana 提醒使用者，請進一步了解可協助您建立、管理和回應提醒的基礎知識和可用功能；並改善團隊快速解決問題的能力。

## 原則
<a name="v10-alerting-overview-principles"></a>

在 Prometheus 型警示系統中，您有一個警示產生器可建立警示，以及一個接收警示的警示接收者。例如，Prometheus 是警示產生器，負責評估警示規則，而 Alertmanager 是警示接收者，負責分組、禁止、靜音和傳送有關觸發和解析警示的通知。

Grafana 警示是以設計警示系統的 Prometheus 模型為基礎。它有一個內部提醒產生器，負責排程和評估提醒規則，以及一個內部提醒接收者，負責分組、禁止、靜音和傳送通知。Grafana 不會使用 Prometheus 做為警示產生器，因為除了 Prometheus 之外，Grafana 警示還需要使用許多其他資料來源。不過，它確實使用 Alertmanager 做為其警示接收者。

警示會傳送至警示接收者，並在其中進行路由、分組、禁止、靜音和通知。在 Grafana 警示中，預設警示接收者是內嵌在 Grafana 內的警示管理員，稱為 Grafana 警示管理員。不過，您也可以使用其他警示管理員，這些稱為[外部警示管理員](v10-alerting-setup-alertmanager.md)。

## 基本概念
<a name="v10-alerting-overview-fundamentals"></a>

以下提供 Grafana 提醒不同部分的概觀。

### 提醒規則
<a name="v10-alerting-overview-alert-rules"></a>

警示規則是一組條件，用於判斷警示應何時觸發。它包含一或多個查詢和表達式、需要滿足的條件、決定警示規則評估頻率的間隔，以及必須滿足條件才能觸發警示的持續時間。

警示規則會在其間隔內評估，而且每個警示規則一次可以觸發零個、一個或任何數量的警示。警示規則的狀態取決於其最大的`severe`警示，可以是「正常」、「待定」或「觸發」之一。例如，如果至少一個警示規則的警示正在觸發，則警示規則也會觸發。警示規則的運作狀態取決於其最近的評估狀態。這些可以是正常、錯誤和NoData。

警示規則的一個非常重要的功能是它們支援自訂註釋和標籤。這些可讓您使用摘要和描述等其他中繼資料來檢測警示，並新增其他標籤，將警示路由到特定的通知政策。

### Alerts (提醒)
<a name="v10-alerting-overview-alerts"></a>

警示由一組名為 Labels 的鍵/值對唯一識別。每個索引鍵都是標籤名稱，而每個值都是標籤值。例如，一個提醒可能有標籤，`foo=bar`另一個提醒可能有標籤 `foo=baz`。提醒可以有許多標籤，例如 ，`foo=bar,bar=baz`但不能有兩個相同的標籤，例如 `foo=bar,foo=baz`。兩個提醒也不能有相同的標籤，如果兩個提醒具有相同的標籤，例如 `foo=bar,bar=baz`，`foo=bar,bar=baz`則會捨棄其中一個提醒。當不再符合警示規則中的條件，或刪除警示規則時，會解析警示。

在 Grafana 受管提醒中，提醒可以處於正常、待定、提醒、無資料或錯誤狀態。在資料來源受管警示中，例如 Mimir 和 Loki，警示可以是正常、待定和警示，但不能是 NoData 或錯誤。

### 聯絡點
<a name="v10-alerting-overview-contact-points"></a>

聯絡點會決定傳送通知的位置。例如，您可能有一個聯絡點，可將通知傳送到電子郵件地址、Slack、事件管理系統 (IRM)，例如 Grafana OnCall 或 Pagerduty，或是 Webhook。

可以使用通知範本自訂從聯絡點傳送的通知。您可以使用通知範本來變更通知的標題、訊息和結構。通知範本並非專屬於個別整合或聯絡點。

### 通知政策
<a name="v10-alerting-overview-notification-policies"></a>

通知政策群組警示，然後將它們路由到聯絡點。它們決定何時傳送通知，以及應重複通知的頻率。

警示會與使用標籤比對程式的通知政策相符。這些是人類可讀取的表達式，可宣告提醒的標籤是否完全相符、不完全相符、包含或不包含一些預期的文字。例如，配對器會將警示與 標籤`foo=bar`比對，`foo=bar`而配對器會將警示與名稱為 foo 的任何標籤`foo=~[a-zA-Z]+`比對，其值符合規則表達式 `[a-zA-Z]+`。

根據預設，提醒只能符合一個通知政策。不過，您可以使用`continue`功能提醒來同時符合任意數量的通知政策。如需通知政策的詳細資訊，請參閱[通知政策](v10-alerting-explore-notifications-policies-details.md)。

### 靜音和靜音計時
<a name="v10-alerting-overview-silences-and-mute-timings"></a>

靜音和靜音計時可讓您暫停特定提醒或甚至是整個通知政策的通知。使用無聲以臨機方式暫停通知，例如在修正警示時；並使用靜音計時定期暫停通知，例如在定期排定的維護時段期間。

**Topics**
+ [原則](#v10-alerting-overview-principles)
+ [基本概念](#v10-alerting-overview-fundamentals)
+ [資料來源和 Grafana 提醒](v10-alerting-overview-datasources.md)
+ [數值資料的提醒](v10-alerting-overview-numeric.md)
+ [標籤和註釋](v10-alerting-overview-labels.md)
+ [關於提醒規則](v10-alerting-explore-rules.md)
+ [警示管理員](v10-alerting-explore-alertmanager.md)
+ [聯絡點](v10-alerting-explore-contacts.md)
+ [通知](v10-alerting-explore-notifications.md)
+ [提醒高可用性](v10-alerting-explore-high-availability.md)

# 資料來源和 Grafana 提醒
<a name="v10-alerting-overview-datasources"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

有許多資料來源與 Grafana 警示相容。外掛程式支援每個資料來源。Grafana 提醒要求資料來源外掛程式為*後端*外掛程式，以便使用資料來源評估規則，因為評估引擎在後端執行。外掛程式也必須指定它們與 Grafana 提醒相容。

系統會隨時間新增和更新資料來源。已知下列資料來源與 Grafana 提醒相容。
+ [連線至 Amazon CloudWatch 資料來源](using-amazon-cloudwatch-in-AMG.md)
+ [連線至 Azure Monitor 資料來源](using-azure-monitor-in-AMG.md)
+ [連線至 Amazon OpenSearch Service 資料來源](using-Amazon-OpenSearch-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)
+ [連線至 Amazon Managed Service for Prometheus 和開放原始碼 Prometheus 資料來源](prometheus-data-source.md)
+ [連接至 Jaeger 資料來源](jaeger-data-source.md)
+ [連線至 Zipkin 資料來源](zipkin-data-source.md)
+ [連線至 Tempo 資料來源](tempo-data-source.md)
+ [設定 TestData 資料來源進行測試](testdata-data-source.md)

如需 Amazon Managed Grafana 中資料來源和資料來源外掛程式的詳細資訊，請參閱 [連線至資料來源](AMG-data-sources.md)。

# 數值資料的提醒
<a name="v10-alerting-overview-numeric"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

本主題說明 Grafana 如何處理數值警示，而非時間序列資料。

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

## 表格式資料
<a name="v10-alerting-numeric-tabular"></a>

查詢表格式資料的後端資料來源支援此功能：
+ 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) 欄，以及選擇性的額外字串欄。

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

## 範例
<a name="v10-alerting-numeric-tabexample"></a>

對於名為「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="v10-alerting-overview-labels"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

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

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

## 標籤
<a name="v10-alerting-overview-labels-labels"></a>

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

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

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

**自訂標籤**

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

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

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

## 註釋
<a name="v10-alerting-overview-labels-annotations"></a>

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

**Topics**
+ [標籤](#v10-alerting-overview-labels-labels)
+ [註釋](#v10-alerting-overview-labels-annotations)
+ [標籤比對的運作方式](v10-alerting-overview-labels-matching.md)
+ [Grafana 警示中的標籤](v10-alerting-overview-labels-alerting.md)
+ [範本標籤和註釋](v10-alerting-overview-labels-templating.md)

# 標籤比對的運作方式
<a name="v10-alerting-overview-labels-matching"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

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


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

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

## 範例
<a name="v10-alerting-overview-labels-matching-ex"></a>

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

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

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

## 排除標籤
<a name="v10-alerting-overview-labels-matching-exclude"></a>

您也可以撰寫標籤比對器來排除標籤。

以下是示範如何排除標籤 的範例`team`。您可以選擇任何這些值來排除標籤。
+ `team=""`
+ `team!~.+`
+ `team=~^$`

# Grafana 警示中的標籤
<a name="v10-alerting-overview-labels-alerting"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

本主題說明標籤為何是提醒的基本元件。
+ 提醒的完整標籤集是 Grafana 提醒中唯一識別提醒的內容。
+ Alertmanager 使用標籤來比對通知政策中靜音和警示群組的警示。
+ 警示 UI 會顯示評估該規則期間產生的每個警示執行個體的標籤。
+ 聯絡點可以存取標籤，以動態產生通知，其中包含導致通知的提醒特定資訊。
+ 您可以將標籤新增至[提醒規則](v10-alerting-configure.md)。標籤可手動設定、使用範本函數，並可參考其他標籤。新增至提醒規則的標籤優先於標籤之間發生衝突的情況 (Grafana 預留標籤的情況除外，如需詳細資訊，請參閱下文）。

## 外部警示管理員相容性
<a name="v10-alerting-overview-labels-alerting-external"></a>

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 預留標籤
<a name="v10-alerting-overview-labels-alerting-reserved"></a>

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

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


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

# 範本標籤和註釋
<a name="v10-alerting-overview-labels-templating"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

您可以使用 範本，在標籤和註釋中包含來自查詢和表達式的資料。例如，您可能想要根據查詢的值設定警示的嚴重性標籤，或在摘要註釋中使用查詢中的執行個體標籤，以便您知道哪個伺服器遇到高 CPU 使用率。

所有範本都應以[文字/範本](https://pkg.go.dev/text/template)撰寫。無論您要範本標籤或註釋，都應該在範本標籤或註釋內內嵌寫入每個範本。這表示您無法在標籤和註釋之間共用範本，而是需要在您想要使用範本的位置複製範本。

每當評估提醒規則時，都會評估每個範本，並分別針對每個提醒進行評估。例如，如果您的提醒規則具有範本摘要註釋，且提醒規則具有 10 個觸發提醒，則範本將執行 10 次，每個提醒一次。您應該盡可能避免在範本中進行昂貴的運算。

## 範例
<a name="v10-alerting-overview-labels-templating-examples"></a>

下列範例不會針對文字/範本撰寫完整的教學課程，而是嘗試顯示我們在範本中看到的最常見使用案例。您可以逐字使用這些範例，或根據您的使用案例視需要進行調整。如需如何撰寫文字/範本的詳細資訊，請參閱[文字/範本](https://pkg.go.dev/text/template)文件。

**列印所有標籤，以逗號分隔**

若要列印所有標籤，請以逗號分隔，請列印`$labels`變數：

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

例如，使用標籤 `alertname=High CPU usage`、 `grafana_folder=CPU alerts`和 提供提醒`instance=server1`，這會列印：

```
alertname=High CPU usage, grafana_folder=CPU alerts, instance=server1
```

**注意**  
如果您使用的是傳統條件，則 `$labels`不會包含查詢中的任何標籤。如需詳細資訊[，請參閱 \$1labels 變數](#v10-alerting-overview-labels-templating-the-labels-variable)。

**列印所有標籤，每行一個**

若要列印所有標籤，每行一個標籤，請使用 `range`逐一查看每個鍵/值對，並個別列印。這裡`$k`是指名稱，而 `$v` 是指目前標籤的值：

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

例如，使用標籤 `alertname=High CPU usage`、 `grafana_folder=CPU alerts`和 提供提醒`instance=server1`，這會列印：

```
alertname=High CPU usage
grafana_folder=CPU alerts
instance=server1
```

**注意**  
如果您使用的是傳統條件，則 `$labels`不會包含查詢中的任何標籤。如需詳細資訊[，請參閱 \$1labels 變數](#v10-alerting-overview-labels-templating-the-labels-variable)。

**列印個別標籤**

若要列印個別標籤，請使用 `index`函數搭配 `$labels`變數：

```
The host {{ index $labels "instance" }} has exceeded 80% CPU usage for the last 5 minutes
```

例如，使用標籤 提供提醒`instance=server1`，這會列印：

```
The host server1 has exceeded 80% CPU usage for the last 5 minutes
```

**注意**  
如果您使用的是傳統條件，則 `$labels`不會包含查詢中的任何標籤。如需詳細資訊[，請參閱 \$1labels 變數](#v10-alerting-overview-labels-templating-the-labels-variable)。

**列印查詢的值**

若要列印即時查詢的值，您可以使用 `index`函數和 `$values`變數來列印其 Ref ID：

```
{{ index $values "A" }}
```

例如，假設即時查詢傳回值 81.2345，則會列印：

```
81.2345
```

若要列印範圍查詢的值，您必須先將其從時間序列縮減為具有減少表達式的即時向量。然後，您可以改為使用其 Ref ID 來列印減少表達式的結果。例如，如果減少表達式採用 A 的平均值，且具有 Ref ID B，您會寫入：

```
{{ index $values "B" }}
```

**列印查詢的人工值**

若要列印即時查詢的人工值，請使用 `humanize`函數：

```
{{ humanize (index $values "A").Value }}
```

例如，假設即時查詢傳回值 81.2345，則會列印：

```
81.234
```

若要列印範圍查詢的人工值，您必須先將其從時間序列縮減為具有減少表達式的即時向量。然後，您可以改為使用其 Ref ID 來列印減少表達式的結果。例如，如果減少表達式採用 A 的平均值，且具有 Ref ID B，您會寫入：

```
{{ humanize (index $values "B").Value }}
```

**以百分比列印查詢的值**

若要以百分比列印即時查詢的值，請使用 `humanizePercentage`函數：

```
{{ humanizePercentage (index $values "A").Value }}
```

此函數預期值為介於 0 到 1 之間的十進位數字。如果值是介於 0 到 100 之間的十進位數字，您可以在查詢中或使用數學表達式將其除以 100。如果查詢是範圍查詢，您必須先將其從時間序列縮減為具有減少表達式的即時向量。

**從查詢的值設定嚴重性**

若要從查詢的值設定嚴重性標籤，請使用 if 陳述式和大於比較函數。比較`$values`文字/範本不支援類型強制時`80.0`，請務必使用小數 (`50.0`、`0.0`、 等）。您可以在[此處](https://pkg.go.dev/text/template#hdr-Functions)找到所有支援的比較函數清單。

```
{{ if (gt $values.A.Value 80.0) -}}
high
{{ else if (gt $values.A.Value 50.0) -}}
medium
{{ else -}}
low
{{- end }}
```

**從傳統條件列印所有標籤**

如果您使用傳統條件，則無法使用 從查詢`$labels`列印標籤，而且必須`$values`改用 。原因是傳統條件會捨棄這些標籤，以強制執行單維行為 （每個警示規則最多一個警示）。如果傳統條件未捨棄這些標籤，則傳回許多時間序列的查詢會在觸發之間產生警示並持續解決，因為標籤會在每次評估警示規則時變更。

反之，`$values`變數包含所有觸發條件的所有時間序列的減少值。例如，如果您有一個具有查詢 A 的警示規則會傳回兩個時間序列，以及具有兩個條件的傳統條件 B，則 `$values`會包含 `B0`、 `B1``B2`和 `B3`。如果傳統條件 B 只有一個條件，則 `$values` 只會包含 `B0`和 `B1`。

若要列印所有射擊時間序列的所有標籤，請使用下列範本 （請務必使用傳統條件的 Ref ID 取代規則表達式`B`中的 )：

```
{{ range $k, $v := $values -}}
{{ if (match "B[0-9]+" $k) -}}
{{ $k }}: {{ $v.Labels }}{{ end }}
{{ end }}
```

例如，超過單一條件的兩個時間序列的傳統條件會列印：

```
B0: instance=server1
B1: instance=server2
```

如果傳統條件有兩個或多個條件，且時間序列同時超過多個條件，則會針對超過的每個條件複製其標籤：

```
B0: instance=server1
B1: instance=server2
B2: instance=server1
B3: instance=server2
```

如果您需要列印唯一標籤，建議您改為將提醒規則從單維變更為多維。您可以透過使用減少和數學表達式取代傳統條件來執行此操作。

**從傳統條件列印所有值**

若要從傳統條件列印所有值，請採用上述範例並以 `$v.Labels`取代`$v.Value`：

```
{{ range $k, $v := $values -}}
{{ if (match "B[0-9]+" $k) -}}
{{ $k }}: {{ $v.Value }}{{ end }}
{{ end }}
```

例如，超過單一條件的兩個時間序列的傳統條件會列印：

```
B0: 81.2345
B1: 84.5678
```

如果傳統條件有兩個或多個條件，且時間序列同時超過多個條件，則 `$values`將包含所有條件的值：

```
B0: 81.2345
B1: 92.3456
B2: 84.5678
B3: 95.6789
```

## Variables
<a name="v10-alerting-overview-labels-templating-variables"></a>

在範本化標籤和註釋時，您可以使用下列變數：

### 標籤變數
<a name="v10-alerting-overview-labels-templating-the-labels-variable"></a>

`$labels` 變數包含查詢中的所有標籤。例如，假設您有一個查詢會傳回所有伺服器的 CPU 用量，而且您有一個警示規則，會在您的任何伺服器在過去 5 分鐘內超過 80% 的 CPU 用量時觸發。您想要將摘要註釋新增至提醒，告知您哪個伺服器正在經歷高 CPU 使用率。您可以使用 `$labels`變數撰寫範本，列印人類可讀的句子，例如：

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes
```

**注意**  
如果您使用傳統條件，則 `$labels`不會包含查詢中的任何標籤。傳統條件會捨棄這些標籤，以強制執行單維行為 （每個警示規則最多一個警示）。如果您想要在範本中使用查詢中的標籤，請遵循先前的*列印傳統條件範例中的所有標籤*。

### 值變數
<a name="v10-alerting-overview-labels-templating-the-value-variable"></a>

`$value` 變數是一個字串，其中包含所有即時查詢的標籤和值；閾值、減少和數學表達式，以及警示規則中的傳統條件。它不包含範圍查詢的結果，因為這些查詢可以傳回 10s 到 10，000s 的資料列或指標。如果這樣做，特別是大型查詢，單一提醒可能會使用 10 MBs 的記憶體，且 Grafana 會很快耗盡記憶體。

若要在摘要中列印`$value`變數，您會撰寫類似以下內容：

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes: {{ $value }}
```

看起來會像這樣：

```
CPU usage for instance1 has exceeded 80% for the last 5 minutes: [ var='A' labels={instance=instance1} value=81.234 ]
```

此處`var='A'`是指具有參考 ID A 的即時查詢，`labels={instance=instance1}`是指標籤，並`value=81.234`是指過去 5 分鐘內的平均 CPU 使用量。

如果您想要只列印部分字串而非完整字串，請使用 `$values`變數。它包含與 相同的資訊`$value`，但在結構化資料表中，並且更容易使用，然後編寫規則表達式來只比對您想要的文字。

### 值變數
<a name="v10-alerting-overview-labels-templating-the-values-variable"></a>

`$values` 變數是包含所有即時查詢和表達式標籤和浮點值的資料表，依其 Ref IDs 編製索引。

若要使用 Ref ID A 列印即時查詢的值：

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes: {{ index $values "A" }}
```

例如，針對具有標籤的提醒`instance=server1`和具有值 的即時查詢`81.2345`，這會列印：

```
CPU usage for instance1 has exceeded 80% for the last 5 minutes: 81.2345
```

如果 Ref ID A 中的查詢是範圍查詢而非即時查詢，請使用 Ref ID B 新增減少表達式，並以 `(index $values "A")` 取代`(index $values "B")`：

```
CPU usage for {{ index $labels "instance" }} has exceeded 80% for the last 5 minutes: {{ index $values "B" }}
```

## 函數
<a name="v10-alerting-overview-labels-templating-functions"></a>

在範本化標籤和註釋時，您可以使用下列函數：

**args**

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

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

```
1 2
```

**externalURL**

`externalURL` 函數會傳回 Grafana 伺服器的外部 URL。

```
{{ externalURL }}
```

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

**graphLink**

`graphLink` 函數會傳回指定表達式和資料來源在 中圖形檢視[在 Grafana 第 10 版中探索](v10-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 伺服器的路徑。

```
{{ pathPrefix }}
```

```
/grafana
```

**tableLink**

`tableLink` 函數會針對指定的表達式和資料來源，傳回 中表格式檢視[在 Grafana 第 10 版中探索](v10-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="v10-alerting-explore-rules"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

當查詢和表達式選取要評估的資料集時，*條件*會設定資料必須符合或超過的閾值，以建立提醒。

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

**Topics**
+ [警示規則類型](v10-alerting-explore-rules-types.md)
+ [錄製規則](v10-alerting-explore-rule-recording.md)
+ [查詢和條件](v10-alerting-explore-rules-queries.md)
+ [提醒執行個體](v10-alerting-rules-instances.md)
+ [命名空間、資料夾和群組](v10-alerting-rules-grouping.md)
+ [警示規則評估](v10-alerting-rules-evaluation.md)
+ [警示規則的狀態和運作狀態](v10-alerting-explore-state.md)
+ [通知範本](v10-alerting-rules-notification-templates.md)

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

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

Grafana 支援多種警示規則類型。進一步了解每個警示規則類型及其運作方式，並決定哪個最適合您的使用案例。

## Grafana 受管規則
<a name="v10-alerting-explore-rule-types-grafana"></a>

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

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

在 Grafana 受管提醒中：
+ 警示規則是根據一或多個資料來源在 Grafana 內建立。
+ 提醒規則由 Grafana 內的提醒規則評估引擎進行評估。
+ 警示會使用內部 Grafana Alertmanager 傳遞。

**注意**  
您也可以設定使用外部 Alertmanager 傳送提醒，或使用內部和外部 Alertmanager。如需詳細資訊，請參閱[新增外部警示管理員](v10-alerting-setup-alertmanager.md)。

## 資料來源受管規則
<a name="v10-alerting-explore-rule-types-datasource"></a>

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

在資料來源受管提醒中：
+ 警示規則會在資料來源本身內建立和存放。
+ 警示規則只能根據 Prometheus 資料建立。
+ 警示規則評估和交付會分散到多個節點，以提供高可用性和容錯能力。

## 選擇提醒規則類型
<a name="v10-alerting-explore-rule-types-choose"></a>

選擇要使用的提醒規則類型時，請考慮 Grafana 受管提醒規則和資料來源受管提醒規則之間的下列比較。


| 功能 | Grafana 受管提醒規則 | Loki/Mimir 受管提醒規則 | 
| --- | --- | --- | 
| 根據來自我們任何支援資料來源的資料建立提醒規則 | 是 | 否：您只能建立以 Prometheus 資料為基礎的提醒規則。資料來源必須啟用 Ruler API。  | 
| 混合和比對資料來源 | 是 | 否 | 
| 包括對記錄規則的支援 | 否 | 是 | 
| 新增表達式以轉換您的資料並設定提醒條件 | 是 | 否 | 
| 在提醒通知中使用映像 | 是 | 否 | 
| 擴展 | 更密集的資源、取決於資料庫，而且可能會遇到暫時性錯誤。它們只會垂直擴展。 | 將警示規則存放在資料來源本身，並允許「無限」擴展。從資料的位置產生和傳送提醒通知。 | 
| 警示規則評估和交付 | 警示規則評估和交付是從 Grafana 內使用外部 Alertmanager； 或兩者完成。 | 警示規則評估和警示交付是分散式的，這表示沒有單點故障。 | 

# 錄製規則
<a name="v10-alerting-explore-rule-recording"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

*錄製規則僅適用於相容的 Prometheus 或 Loki 資料來源。*

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

查詢這個新的時間序列速度更快，尤其是儀表板，因為每次儀表板重新整理時都會查詢相同的表達式。

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

# 查詢和條件
<a name="v10-alerting-explore-rules-queries"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

在 Grafana 中，查詢在從支援的資料來源擷取和轉換資料方面扮演重要角色，其中包括 MySQL 和 PostgreSQL 等資料庫、Prometheus、InfluxDB 和 Graphite 等時間序列資料庫，以及 OpenSearch、Amazon CloudWatch、Azure Monitor 和 Google Cloud Monitoring 等服務。

如需支援資料來源的詳細資訊，請參閱 [資料來源和 Grafana 提醒](v10-alerting-overview-datasources.md)。

執行查詢的程序包括定義資料來源、指定要擷取的所需資料，以及套用相關的篩選條件或轉換。系統會使用所選資料來源特有的查詢語言或語法來建構這些查詢。

在警示中，您可以定義查詢，以取得您要測量的資料，以及在警示規則觸發之前需要滿足的條件。

提醒規則包含一或多個查詢和表達式，這些查詢和表達式會選取您要測量的資料。

如需查詢和表達式的詳細資訊，請參閱 [查詢和轉換資料](v10-panels-query-xform.md)。

## 資料來源查詢
<a name="v10-alerting-explore-rules-queries-data-source-queries"></a>

Grafana 中的查詢可以透過各種方式套用，具體取決於使用的資料來源和查詢語言。每個資料來源的查詢編輯器都提供自訂的使用者介面，可協助您撰寫利用其唯一功能的查詢。

由於查詢語言之間的差異，每個資料來源查詢編輯器的外觀和功能都不同。根據您的資料來源，查詢編輯器可能會提供自動完成功能、指標名稱、變數建議或視覺化查詢建置界面。

一些常見的查詢元件類型包括：

**指標或資料欄位** – 指定您要擷取的特定指標或資料欄位，例如 CPU 用量、網路流量或感應器讀數。

**時間範圍** – 定義您要擷取資料的時間範圍，例如最後一個小時、特定日期或自訂時間範圍。

**篩選條件** – 套用篩選條件以根據特定條件縮小資料範圍，例如依特定標籤、主機或應用程式篩選資料。

**彙總** – 對資料執行彙總，以計算指定期間內的平均值、總和或計數等指標。

**分組** – 依特定維度或標籤分組資料，以建立彙總檢視或明細。

**注意**  
Grafana 不支援具有範本變數的提醒查詢。如需詳細資訊，[請參閱](https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514) Grafana 實驗室論壇。

## 表達式查詢
<a name="v10-alerting-explore-rules-queries-expression-queries"></a>

在 Grafana 中，表達式用於對資料來源查詢的資料執行計算、轉換或彙總。它可讓您根據數學操作、函數或邏輯表達式建立自訂指標或修改現有的指標。

透過利用表達式查詢，使用者可以執行任務，例如計算兩個值之間的百分比變更、套用對數或三角函數等函數、彙總特定時間範圍或維度的資料，以及實作條件式邏輯來處理不同的案例。

在警示中，您只能將表達式用於 Grafana 受管警示規則。對於每個表達式，您可以選擇數學、減少和重新取樣表達式。這些稱為多維規則，因為它們為每個序列產生單獨的提醒。

您也可以使用傳統條件，這會建立警示規則，在符合其條件時觸發單一警示。因此，即使多個序列符合提醒條件，Grafana 也會僅傳送單一提醒。

**注意**  
傳統條件主要基於相容性原因存在，應盡可能避免。

**減少**

將所選時間範圍中的時間序列值彙總為單一值。

**Math**

對時間序列和數字資料執行自由格式數學函數/操作。可用於預先處理時間序列資料，或定義數字資料的提醒條件。

**重新取樣**

將時間範圍重新對齊新的一組時間戳記，這在比較時間序列資料時非常有用，因為在不同資料來源中，時間戳記不會對齊。

**Threshold**

檢查任何時間序列資料是否符合閾值條件。

閾值表達式可讓您比較兩個單一值。當條件為 false `0` 且條件為 true `1` 時，它會傳回 。可使用下列閾值函數：
+ 高於 (x > y)
+ 低於 (x < y)
+ 在範圍內 (x > y1 AND x < y2)
+ 超出範圍 (x < y1 AND x > y2)

**傳統條件**

檢查任何時間序列資料是否符合提醒條件。

**注意**  
無論條件符合多少時間序列，傳統條件表達式查詢一律只會產生一個提醒執行個體。傳統條件主要基於相容性原因存在，應盡可能避免。

## 彙總
<a name="v10-alerting-explore-rules-queries-aggregations"></a>

Grafana 警示提供下列彙總函數，可讓您進一步精簡查詢。

這些函數僅適用於 **Reduce** 和 **Classic 條件**表達式。


| 函式 | 表達式 | 它的功能 | 
| --- | --- | --- | 
| avg | 減少 / Classic | 顯示值的平均值 | 
| min | 減少 / Classic | 顯示最低值 | 
| max | 減少 / Classic | 顯示最高值 | 
| sum | 減少 / Classic | 顯示所有值的總和 | 
| count | 減少 / Classic | 計算結果中的值數目 | 
| last | 減少 / Classic | 顯示最後一個值 | 
| median | 減少 / Classic | 顯示中位數值 | 
| 差異 | 傳統 | 顯示最新和最舊值之間的差異 | 
| diff\$1abs | 傳統 | 顯示 diff 的絕對值 | 
| percent\$1diff | 傳統 | 顯示最新和最舊值之間的差異百分比值 | 
| percent\$1diff\$1abs | 傳統 | 顯示 percent\$1diff 的絕對值 | 
| count\$1non\$1null | 傳統 | 顯示結果集中非 的值計數 null | 

## 警示條件
<a name="v10-alerting-explore-rules-queries-alert-condition"></a>

警示條件是查詢或表達式，決定警示是否會觸發，取決於其產生的值。只能有一個條件來決定觸發提醒。

定義查詢和/或表達式之後，請選擇其中一個做為提醒規則條件。

當查詢的資料滿足定義的條件時，Grafana 會觸發相關聯的提醒，其可設定為透過電子郵件、Slack 或 PagerDuty 等各種管道傳送通知。通知會通知您符合的條件，讓您採取適當動作或調查基礎問題。

根據預設，新增的最後一個表達式會用作提醒條件。

## 復原閾值
<a name="v10-alerting-explore-rules-queries-recovery-threshold"></a>

若要減少翻滾警示的雜訊，您可以設定與警示閾值不同的復原閾值。

當指標圍繞警示閾值條件移動，並可能導致頻繁的狀態變更，從而導致產生太多通知時，就會發生遮蔽警示。

Grafana 受管警示規則會針對特定時間間隔進行評估。每次評估時，都會針對警示規則中設定的閾值檢查查詢結果。如果指標的值高於閾值，則會觸發警示規則並傳送通知。當值低於閾值，且此指標有作用中的提醒時，會解析提醒，並傳送另一個通知。

為雜訊指標建立警示規則可能很困難。也就是說，當指標的值持續高於和低於閾值時。這稱為翻轉，並導致一系列射擊 - 已解決 - 射擊通知和雜訊提醒狀態歷史記錄。

例如，如果您的延遲警示閾值為 1000 毫秒，而數字波動大約 1000 （例如 980 ->1010 -> 990 -> 1020，以此類推），則每個警示都會觸發通知。

若要解決此問題，您可以設定 （自訂） 復原閾值，基本上表示有兩個閾值，而不是一個閾值。警示會在第一個閾值超過時觸發，並且只有在第二個閾值超過時才會解析。

例如，您可以設定 1000 毫秒的閾值和 900 毫秒的復原閾值。如此一來，警示規則只會在低於 900 毫秒時停止發射，並降低翻滾。

# 提醒執行個體
<a name="v10-alerting-rules-instances"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

請考慮下列 PromQL 表達式：

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

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

# 命名空間、資料夾和群組
<a name="v10-alerting-rules-grouping"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

**命名空間和資料夾**

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

命名空間包含一或多個群組。群組內的規則會以定期間隔循序執行。預設間隔為一分鐘。您可以重新命名 Grafana Mimi 或 Loki 規則命名空間和群組，並編輯群組評估間隔。

**Groups (群組)**

群組內的規則會以定期間隔循序執行，這表示不會同時評估任何規則，並依顯示順序進行評估。預設間隔為一分鐘。您可以重新命名 Grafana Mimir 或 Loki 規則命名空間或 Loki 規則命名空間和群組，並編輯群組評估間隔。

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

**注意**  
Grafana 受管警示規則會同時評估，而不是循序評估。

# 警示規則評估
<a name="v10-alerting-rules-evaluation"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

使用警示規則評估來判斷應評估警示規則的頻率，以及應變更其狀態的速度。

若要這樣做，您需要確保您的提醒規則位於正確的評估群組中，並設定最適合您的使用案例的等待期間。

## 評估群組
<a name="v10-alerting-rules-evaluation-group"></a>

每個提醒規則都是評估群組的一部分。每個評估群組都包含評估間隔，可決定檢查警示規則的頻率。

同一群組內的**資料來源受**管警示規則會依序評估，而不同群組中的警示規則可以同時評估。當您想要確保在任何警示規則之前評估記錄規則時，此功能特別有用。

無論警示規則群組為何，都會同時評估 **Grafana 受管**警示規則。預設評估間隔設定為 10 秒，這表示 Grafana 受管警示規則會每 10 秒評估一次，直到時鐘上最接近的 10 秒時段，例如 10：00：00、10：00：10、10：00：20 等。您也可以視需要設定自己的評估間隔。

**注意**  
通知政策中的評估群組和提醒分組是兩個不同的項目。將通知政策分組允許在相同時間訊息中傳送多個共用相同標籤的提醒。

## 待處理期間
<a name="v10-alerting-rules-evaluation-pending-period"></a>

透過設定擱置期間，您可以避免暫時問題的不必要的提醒。

在等待期間，您可以選取警示規則在觸發之前可能違反條件的期間。

**範例**

假設您已將警示規則評估間隔設定為每 30 秒一次，並將擱置期間設定為 90 秒。

評估將如下所示：

【00：30】 第一次評估 - 不符合條件。

【01：00】 第二次評估 - 違反條件。待定計數器啟動。**警示開始待定。**

【01：30】 第三次評估 - 違反條件。待定計數器 = 30 秒。**待定狀態。**

【02：00】 第四個評估 - 違反條件。待定計數器 = 60s **待定狀態。**

【02：30】 第五次評估 - 違反條件。待定計數器 = 90 秒。**提醒開始發射**

如果警示規則的條件在採取動作之前需要違規一段時間，則其狀態會變更，如下所示：
+ 第一次違反條件時，規則會進入「待定」狀態。
+ 規則會保持在「待定」狀態，直到條件在必要的時間量 - 待定期間中斷為止。
+ 一旦超過所需時間，規則就會進入「觸發」狀態。
+ 如果條件在等待期間不再中斷，則規則會回到正常狀態。

**注意**  
如果您想要略過待定狀態，只需將待定期間設定為 0。這會有效地略過擱置期間，一旦違反條件，您的警示規則就會開始觸發。

當警示規則觸發時，會產生警示執行個體，然後傳送至 Alertmanager。

# 警示規則的狀態和運作狀態
<a name="v10-alerting-explore-state"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

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

**警示規則狀態**

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


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

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

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

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


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

**保持最後狀態**

警示規則可設定為在遇到 `NoData`或 狀態時保持最後`Error`狀態。這將防止觸發提醒，以及解決和重新觸發提醒。如同一般評估，警示規則會在`Pending``Firing`等待期間過後從 轉換為 。

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

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


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

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

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


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

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

# 通知範本
<a name="v10-alerting-rules-notification-templates"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

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

由於大多數的聯絡點欄位都可以建立範本，因此您可以建立可重複使用的自訂範本，並在多個聯絡點中使用它們。若要了解使用 範本的自訂通知，請參閱 [自訂通知](v10-alerting-manage-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="v10-alerting-explore-alertmanager"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

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

**Grafana Alertmanager**

Grafana Alertmanager 是內部 Alertmanager，預設為預先設定且可供選取。

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="v10-alerting-explore-contacts"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

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

您可以為 Grafana Alertmanager 和外部警示管理員設定聯絡點。

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

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

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


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

如需聯絡點的詳細資訊，請參閱 [設定聯絡點](v10-alerting-configure-contactpoints.md)和 [自訂通知](v10-alerting-manage-notifications.md)。

# 通知
<a name="v10-alerting-explore-notifications"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

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

首先，請定義您的[聯絡點](v10-alerting-explore-contacts.md)，以定義傳送提醒通知的位置。聯絡點是一組或多個用於傳送通知的整合。將通知範本新增至聯絡點，以便在通知中重複使用且一致的訊息。

接著，建立通知政策，這是一組規則，用於將提醒路由到聯絡點的位置、時間和方式。在通知政策中，您可以選擇您建立的其中一個聯絡點，以定義傳送提醒通知的位置。

## 警示管理員
<a name="v10-alerting-explore-notifications-alertmanager"></a>

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

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

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

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

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

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

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

如需通知政策的詳細資訊，請參閱 [通知政策](v10-alerting-explore-notifications-policies-details.md)。

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

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

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

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

如需自訂通知的詳細資訊，請參閱 [自訂通知](v10-alerting-manage-notifications.md)。

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

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

如需使用靜音的詳細資訊，請參閱 [靜音提醒通知](v10-alerting-silences.md)。

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

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

通知政策可讓您靈活地將警示路由到各種不同的接收者。使用標籤配對器，您可以修改提醒通知交付，而無需更新每個個別提醒規則。

在本節中，您將進一步了解通知政策的運作方式和結構，以便充分利用您的通知政策。

## 政策樹狀目錄
<a name="v10-alerting-explore-notifications-policy-tree"></a>

通知政策*不是*清單，而是根據樹狀結構來建構。這表示每個政策都可以有子政策，以此類推。通知政策樹狀目錄的根目錄稱為**預設通知政策**。

每個政策都由一組標籤比對器 (0 或更多） 組成，指定它們目前或不想處理的標籤。

如需標籤比對的詳細資訊，請參閱 [標籤比對的運作方式](v10-alerting-overview-labels-matching.md)。

**注意**  
如果您尚未為通知政策設定任何標籤比對程式，您的通知政策將會比對*所有*提醒執行個體。這可能會阻止評估子政策，除非您已在通知政策上啟用**繼續比對同級。**

## 路由
<a name="v10-alerting-explore-notifications-routing"></a>

若要判斷哪個通知政策將處理哪些提醒執行個體，您必須從預設通知政策開始查看現有的通知政策集。

如果未設定預設政策以外的政策，則預設政策會處理提醒執行個體。

如果定義了預設政策以外的政策，它會依顯示的順序評估這些通知政策。

如果通知政策的標籤比對程式符合提醒執行個體的標籤，它會降級至其子政策，如果有的話， 會繼續尋找可能具有標籤比對程式的任何子政策，以進一步縮小標籤集範圍，以此類推，直到找不到任何子政策為止。

如果通知政策中未定義子政策，或子政策沒有任何符合提醒執行個體標籤的標籤相符者，則會使用父系通知政策。

一旦找到相符的政策，系統就不會繼續尋找其他相符的政策。如果您想要繼續尋找可能相符的其他政策，請在該特定政策上啟用**繼續相符的同盟**。

最後，如果未選取任何通知政策，則會使用預設通知政策。

### 路由範例
<a name="v10-alerting-explore-notifications-routing-example"></a>

以下是相對簡單的通知政策樹狀結構和一些提醒執行個體的範例。

![\[此影像顯示樹狀結構中的一組通知政策，以及一組具有不同標籤的提醒執行個體，以符合政策。\]](http://docs.aws.amazon.com/zh_tw/grafana/latest/userguide/images/notification-routing.png)


以下是如何選取這些政策的明細：

**卡在 CrashLoop 中的 Pod** 沒有`severity`標籤，因此其子政策都不相符。它確實有`team=operations`標籤，因此第一個政策是相符的。

由於我們已找到相符`team=security`項目，且未針對該政策設定**繼續相符項目，**因此不會評估政策。

**磁碟用量 – 80%** 同時具有 `team`和 `severity`標籤，且符合營運團隊的子政策。

**未經授權的日誌項目**具有`team`標籤，但不符合第一個政策 (`team=operations`)，因為值不同，因此會繼續搜尋並符合`team=security`政策。它沒有任何子政策，因此會忽略其他`severity=high`標籤。

## 繼承
<a name="v10-alerting-explore-notifications-inheritance"></a>

除了子政策是路由警示執行個體的實用概念之外，它們也會繼承其父政策的屬性。這也適用於預設通知政策的子政策。

子政策會繼承下列屬性：
+ 聯絡點
+ 分組選項
+ 計時選項
+ 靜音計時

如果您想要覆寫繼承的屬性，個別政策可以覆寫這些屬性。

若要繼承父政策的聯絡點，請保留空白。若要覆寫繼承的分組選項，請啟用**覆寫分組**。若要覆寫繼承的計時選項，請啟用**覆寫一般計時**。

### 繼承範例
<a name="v10-alerting-explore-notifications-inheritance-example"></a>

以下範例顯示先前範例中的通知政策樹狀目錄如何允許 的子政策`team=operations`繼承其聯絡點。

透過這種方式，我們可以避免為每個子政策多次指定相同的聯絡點。

![\[此影像顯示樹狀結構中的一組通知政策，並將聯絡點指派給某些政策，但有些子政策繼承其父系的聯絡點，而不是定義自己的聯絡點。\]](http://docs.aws.amazon.com/zh_tw/grafana/latest/userguide/images/notification-inheritance.png)


## 其他組態選項
<a name="v10-alerting-explore-notifications-additional-configuration-options"></a>

### 分組
<a name="v10-alerting-explore-notifications-grouping"></a>

分組是 Grafana 警示的重要功能，因為它可讓您將相關警示批次處理為較少數量的通知。如果通知交付給第一回應者，例如隨叫隨到的工程師，在短時間內接收大量通知可能會令人不堪重負，在某些情況下，可能會對第一回應者回應事件的能力產生負面影響。例如，假設您的許多系統發生大型中斷。在這種情況下，分組可以是接聽 1 通電話和 100 通電話之間的差異。

您可以選擇如何使用通知政策中的依群組選項將警示分組在一起。根據預設，Grafana 群組中的通知政策會透過使用 `alertname`和 `grafana_folder`標籤的提醒規則一起提醒 （因為提醒名稱在多個資料夾之間不是唯一的）。如果您想要以提醒規則以外的方式將提醒分組，請將分組變更為標籤的任何其他組合。

#### 停用分組
<a name="v10-alerting-explore-notifications-disable-grouping"></a>

如果您想要以個別通知的形式接收每個提醒，您可以依稱為 的特殊標籤進行分組`...`。當您的警示傳送到自動化系統而非第一個回應者時，這很有用。

#### 所有提醒的單一群組
<a name="v10-alerting-explore-notifications-a-single-group-for-all-alerts"></a>

如果您想要在單一通知中同時接收所有提醒，您可以透過將群組保留空白來執行此操作。

### 計時選項
<a name="v10-alerting-explore-notifications-timing-options"></a>

時間選項會決定每個警示群組傳送通知的頻率。您需要知道三個計時器：群組等待、群組間隔和重複間隔。

#### 群組等待
<a name="v10-alerting-explore-notifications-group-wait"></a>

群組等待是 Grafana 在傳送新警示群組的第一個通知之前等待的時間量。群組等待時間越長，其他提醒送達的時間就越長。較短的群組等待時間是傳送第一個通知的時間越早，但會有傳送不完整通知的風險。您應該一律選擇對使用案例最有意義的群組等待。

**預設** 30 秒

#### 群組間隔
<a name="v10-alerting-explore-notifications-group-interval"></a>

為新警示群組傳送第一個通知後，Grafana 會啟動群組間隔計時器。這是 Grafana 在傳送群組變更通知之前等待的時間量。例如，另一個射擊提醒可能剛新增至群組，而現有的提醒可能已解決。如果因為群組等待而無法在第一個通知中包含提醒，則會在群組間隔後包含在後續通知中。群組間隔經過之後，Grafana 會重設群組間隔計時器。這會重複此動作，直到刪除群組的群組中沒有更多提醒為止。

**預設** 5 分鐘

#### 重複間隔
<a name="v10-alerting-explore-notifications-repeat-interval"></a>

如果群組自上次通知以來未變更，重複間隔會決定重複通知的頻率。您可以將這些視為提醒，指出某些提醒仍在觸發中。重複間隔與群組間隔密切相關，這表示重複間隔不僅必須大於或等於群組間隔，而且必須是群組間隔的倍數。如果重複間隔不是群組間隔的倍數，則會強制為一個。例如，如果您的群組間隔為 5 分鐘，而重複間隔為 9 分鐘，則重複間隔會四捨五入至最接近的 5 倍，即 10 分鐘。

**預設** 4 小時

# 提醒高可用性
<a name="v10-alerting-explore-high-availability"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

Amazon Managed Grafana 設定為高可用性，包括為您建立的每個工作區跨多個可用區域執行多個執行個體。

Grafana 警示使用 Prometheus 模型，將警示規則的評估與通知交付分開。在此模型中，提醒規則的評估是在提醒產生器中完成，而通知的交付是在提醒接收者中完成。在 Grafana 警示中，警示產生器是排程器，接收者是警示管理員。

使用高可用性組態時，會在所有執行個體上評估所有警示規則。您可以將警示規則的評估視為重複。這就是 Grafana Alerting 確保只要至少一個 Grafana 執行個體正常運作，警示規則仍會受到評估，且警示通知仍會受到傳送。您會在狀態歷史記錄中看到此重複項目，而且是判斷您是否使用高可用性的好方法。