

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

# 警示基本概念
<a name="alert-fundamentals"></a>

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

本節提供有關 Grafana 提醒的基本概念的資訊。

## 警示概念
<a name="alert-fundamentals-terms"></a>

下表說明 Grafana 警示中的重要概念。


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

## 警示資料來源
<a name="alert-sources"></a>

Grafana 受管提醒會查詢下列已啟用提醒的後端資料來源。
+ 由 Grafana 內建或開發和維護的資料來源：`Alertmanager``Graphite`、、 `Prometheus`（包括 Amazon Managed Service for Prometheus)`Loki`、、、`InfluxDB``Amazon OpenSearch Service`、`Google Cloud Monitoring`、`Amazon CloudWatch`、`Oracle`、`Azure Monitor``MySQL`、`PostgreSQL`、 `MSSQL` `OpenTSDB`和 `Azure Monitor`。

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

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

### 表格式資料
<a name="alert-tabular-data"></a>

查詢表格式資料的後端資料來源支援此功能，包括 SQL 資料來源，例如 MySQL、Postgres、MSSQL 和 Oracle。

具有 Grafana 受管警示或伺服器端表達式的查詢會被視為具有下列資料來源的數值：
+ 如果 `Format AS`選項在資料來源查詢`Table`中設定為 。
+ 如果從查詢傳回給 Grafana 的資料表回應只包含一個數值 （例如 int、Double 或 float) 資料欄，以及選擇性的額外字串資料欄。

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

### 範例
<a name="alert-tabular-example"></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 | 

當此查詢用作警示規則中的**條件**時，則值為非零警示的情況。因此，會產生三個警示執行個體，如下表所示。


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

## 警示管理員
<a name="alert-alertmanager"></a>

Grafana 包含對 Prometheus Alertmanager 的內建支援。Alertmanager 可協助群組和管理警示規則，在警示引擎上新增一層協同運作。根據預設，Grafana 受管警示的通知由屬於核心 Grafana 的內嵌 Alertmanager 處理。您可以從 Alertmanager 下拉式清單中選取 Grafana 選項，從 Grafana 警示 UI 設定 Alertmanager 的聯絡點、通知政策和範本。

Grafana 提醒支援外部 Alertmanager 組態 （如需 Alertmanager 作為外部資料來源的詳細資訊，請參閱 [連線至 Alertmanager 資料來源](data-source-alertmanager.md))。當您新增外部 Alertmanager 時，Alertmanager 下拉式清單會顯示可用的外部 Alertmanager 資料來源清單。選取資料來源以建立和管理獨立 Cortex 或 Loki 資料來源的提醒。

## 提醒規則的狀態和運作狀態
<a name="alerts-state"></a>

警示規則的狀態和運作狀態可協助您了解警示的數個關鍵狀態指標。有三個關鍵元件：提醒狀態、提醒規則狀態和提醒規則運作狀態。雖然相關，但每個元件都會傳遞稍微不同的資訊。

**警示規則狀態**
+ **正常** – 評估引擎傳回的任何時間序列都不會處於 `Pending`或 `Firing` 狀態。
+ **待處理** – 評估引擎傳回的至少一個時間序列為 `Pending`。
+ **發射** – 評估引擎傳回的至少一個時間序列為 `Firing`。

**警示狀態**
+ **正常** – 對於評估引擎傳回的每個時間序列，提醒規則的條件為 **false**。
+ **警示** – 對於評估引擎傳回的至少一個時間序列，警示規則的條件為 **true**。在警示啟動之前，條件必須為 true 的持續時間，如果已設定、符合或已超過。
+ **待定** – 對於評估引擎傳回的至少一個時間序列，警示規則的條件為 **true**。條件在警示啟動之前必須為 true 的持續時間，如果已設定，則尚未滿足。
+ **NoData** – 提醒規則尚未傳回時間序列、時間序列的所有值皆為 null，或時間序列的所有值皆為零。
+ **錯誤** – 嘗試評估提醒規則時發生錯誤。

**警示規則運作狀態**
+ **確定** – 評估警示規則時沒有錯誤。
+ **錯誤** – 評估警示規則時發生錯誤。
+ **NoData** – 在規則評估期間至少傳回一個時間序列中缺少資料。