

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

# 使用 Amazon CloudWatch 警示
<a name="CloudWatch_Alarms"></a>

您可以建立警示來監控指標，並於超過閾值時傳送通知，或自動變更您所監控的資源。例如，您可以監控 CPU 用量和 Amazon EC2 執行個體的磁碟讀取和寫入，然後使用該資料，判斷您是否應該啟動其他的執行個體來處理增加的負載。您也可以使用此資料來停止較不常使用的執行個體，以節省成本。

 您可以在 Amazon CloudWatch 中建立*指標*和*複合*警示。

您可以在 Metrics Insights 查詢上建立警示，這些查詢使用 AWS 資源標籤來篩選和分組指標。若要搭配使用標籤與警示，請在 [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/) 上選擇**設定**。在 **CloudWatch 設定**頁面的**在遙測上啟用資源標籤**下，選擇**啟用**。對於自動適應標記策略的內容感知監控，請使用 AWS 資源標籤在 Metrics Insights 查詢上建立警示。這可讓您監控帶特定應用程式或環境標籤的所有資源。
+ *指標警示*可監看單一 CloudWatch 指標或基於 CloudWatch 指標的數學表達式結果。警示會根據在數個期間與閾值相關的指標值或表達式值來執行一或多個動作。該動作可以向 Amazon SNS 主題傳送通知、執行 Amazon EC2 動作或 Amazon EC2 Auto Scaling 動作、在 CloudWatch 操作調查中啟動調查，或者在 Systems Manager 中建立 OpsItem 或事件。
+ *PromQL 警示*會針對透過 CloudWatch OTLP 端點擷取的指標，使用 Prometheus 查詢語言 (PromQL) 立即查詢來監控指標。警示會以參與者身分追蹤個別違規時間序列，並使用以持續時間為基礎的擱置和復原期間來控制狀態轉換。如需詳細資訊，請參閱[PromQL 警示](alarm-promql.md)。
+ *複合警示*包括一個規則表達式，該表達式會考慮您所建立之其他警示的警示狀態。僅在符合規則的所有條件時，複合警示才會進入 ALARM 狀態。複合警示規則表達式中指定的警示可以包括指標警示和其他複合警示。

  使用複合警示可以減少警示噪音。您可以建立多個指標警示，也可以建立一個複合警示，並僅針對複合警示設定提醒。例如，僅在所有的基礎指標警示都處於 ALARM 狀態時，複合警示才可能進入 ALARM 狀態。

  複合警示可以在變更狀態時傳送 Amazon SNS 通知，並且可以在進入警示狀態時建立調查、Systems Manager OpsItem 或事件，但無法執行 EC2 動作或 Auto Scaling 動作。

**注意**  
 您可以在 AWS 帳戶中建立任意數量的警示。

 您可以在儀表板中新增警示，以便跨多個區域監控和接收 AWS 資源和應用程式的相關提醒。將警示新增至儀表板後，當警示處於 `INSUFFICIENT_DATA` 狀態時會變成灰色，當處於 `ALARM` 狀態時則會變成紅色。處於 `OK` 狀態的所示警示沒有顏色。

 您還可以在 CloudWatch 主控台導覽窗格中，從 *Favorites and recents* (我的最愛和最近的項目) 選項將最近造訪過的警示加入我的最愛。*Favorites and recents* (我的最愛和最近的項目) 選項具備我的最愛警示和最近造訪過的警示資料欄。

只有在警示變更狀態時，警示才會叫用動作。此例外狀況適用於針對 Auto Scaling 動作的警示。對於 Auto Scaling 動作，警示維持在新狀態的每一分鐘，警示會持續叫用動作。

鬧鐘可以監看相同帳戶中的指標。如果您已在 CloudWatch 主控台中啟用跨帳戶功能，您也可以建立警報來監控其他 AWS 帳戶中的指標。不支援建立跨帳戶複合警示。支援建立使用數學表達式的跨帳戶警示，除了這個之外，跨帳戶警示不支援 `ANOMALY_DETECTION_BAND`、`INSIGHT_RULE`，以及 `SERVICE_QUOTA` 函數。

**注意**  
CloudWatch 不會測試或驗證您指定的動作，也不會偵測因為嘗試叫用不存在的動作而產生的任何 Amazon EC2 Auto Scaling 或 Amazon SNS 錯誤。請確定您的警示動作存在。

# 概念
<a name="alarm-concepts"></a>

CloudWatch 警示會在超過閾值時監控指標和觸發動作。了解警示如何評估資料和回應條件對於有效監控至關重要。

**Topics**
+ [警示資料查詢](alarm-data-queries.md)
+ [警示評估](alarm-evaluation.md)
+ [PromQL 警示](alarm-promql.md)
+ [複合警示](alarm-combining.md)
+ [警示動作](alarm-actions.md)
+ [警示靜音規則](alarm-mute-rules.md)
+ [限制](alarm-limits.md)

# 警示資料查詢
<a name="alarm-data-queries"></a>

CloudWatch 警示可以監控各種資料來源。根據您的監控需求選擇適當的查詢類型。

## 指標
<a name="alarm-query-metrics"></a>

監控單一 CloudWatch 指標。這是追蹤資源效能最常見的警示類型。如需指標的詳細資訊，請參閱 [CloudWatch 指標概念](cloudwatch_concepts.md)。

如需詳細資訊，請參閱[建立以靜態閾值為基礎的 CloudWatch 警示](ConsoleAlarms.md)。

## 指標數學
<a name="alarm-query-metric-math"></a>

您可以在根據一個或多個 CloudWatch 指標的數學表達式所產生的結果上建立警示。用於警示的數學表達式最多可包含 10 個指標。每個指標都必須使用相同的期間。

針對以數學表達式為基礎的警示，您可以指定您希望 CloudWatch 處理遺失資料點的方式。在此情況下，如果數學表達式未傳回該資料點的值，會將該資料點視為遺失。

以數學表達式為基礎的警示無法執行 Amazon EC2 動作。

如需指標數學表達式和語法的詳細資訊，請參閱[搭配 CloudWatch 指標使用數學表達式](using-metric-math.md)。

如需詳細資訊，請參閱[根據指標數學運算式建立 CloudWatch 警示](Create-alarm-on-metric-math-expression.md)。

## Metrics Insights
<a name="alarm-query-metrics-insights"></a>

 CloudWatch Metrics Insights 查詢可協助您使用類似 SQL 的語法大規模查詢指標。您可以針對任何 Metrics Insights 查詢建立警示，包括傳回多個時間序列的查詢。此功能可大幅擴展您的監控選項。當您基於 Metrics Insights 查詢建立警示時，警示會在資源新增至受監控的群組或從中移除時自動調整。建立警示後，任何符合查詢定義與篩選條件的資源，其對應指標一旦可用，即會自動納入警示監控範圍。對於多時間序列查詢，傳回的每個時間序列都成為警示的貢獻者，有助於實現更精細的動態監控。

以下是 CloudWatch Metrics Insights 警示的兩個主要使用案例：
+ 異常偵測和彙總監控

  針對傳回單一彙總時間序列的 Metrics Insights 查詢建立警示。此方法對跨基礎結構或應用程式監控彙總指標的動態警示相當有效。例如，您可以監控所有執行個體的 CPU 使用率上限，並在擴展機群時自動調整警示。

  若要建立彙總監控警示，請使用此查詢結構：

  ```
  SELECT FUNCTION(metricName)
                    FROM SCHEMA(...)
                    WHERE condition;
  ```
+ 依資源機群監控

  建立可監控多個時間序列的警示，其中每個時間序列皆為貢獻者，並擁有其自己的狀態。警示會在任意貢獻者進入 ALARM 狀態時啟動，觸發資源特定的動作。例如，監控多個 RDS 執行個體的資料庫連線，以防止連線遭拒。

  若要監控多個時間序列，請使用此查詢結構：

  ```
  SELECT AVG(DatabaseConnections)
                    FROM AWS/RDS
                    WHERE condition
                    GROUP BY DBInstanceIdentifier
                    ORDER BY AVG() DESC;
  ```

  建立多時間序列警示時，必須在查詢中包含兩個關鍵子句：
  + 定義如何建構時間序列並決定查詢將產生多少個時間序列的 `GROUP BY` 子句
  + 建立指標的確定性排序並讓警示能夠先評估最重要訊號的 `ORDER BY` 子句

  這些子句對於適當進行警示評估至關重要。`GROUP BY` 子句會將您的資料分割成不同的時間序列 (例如依執行個體 ID)，`ORDER BY` 子句則可確保在警示評估期間一致且優先地處理這些時間序列。

如需如何建立多時間序列警示的詳細資訊，請參閱 [根據多時間序列指標洞見查詢建立警示](multi-time-series-alarm.md)。

## 日誌群組指標篩選條件
<a name="alarm-query-log-metric-filter"></a>

 您可以根據日誌群組指標篩選條件建立警示。借助指標篩選條件，您可在要傳送至 CloudWatch 的日誌資料中尋找詞彙和模式。如需詳細資訊，請參閱《Amazon CloudWatch Logs 使用者指南**》中的「[使用篩選條件從日誌事件建立指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)」。

如需如何根據日誌群組指標篩選條件建立警示的詳細資訊，請參閱 [針對日誌的警示](Alarm-On-Logs.md)。

## PromQL
<a name="alarm-query-promql"></a>

您可以建立警示，使用 Prometheus 查詢語言 (PromQL) 立即查詢來監控透過 CloudWatch OTLP 端點擷取的指標。

如需 PromQL 警示如何運作的詳細資訊，請參閱 [PromQL 警示](alarm-promql.md)。

如需如何建立 PromQL 警示的詳細資訊，請參閱 [使用 PromQL 查詢建立警示](Create_PromQL_Alarm.md)。

## 外部資料來源
<a name="alarm-query-external"></a>

您可以建立警示，以監視不在 CloudWatch 中的資料來源的指標。如需有關建立其他資料來源連線的詳細資訊，請參閱 [從其他資料來源中查詢指標](MultiDataSourceQuerying.md)。

如需如何根據連線的資料來源建立警示的詳細資訊，請參閱 [根據連線的資料來源建立警示](Create_MultiSource_Alarm.md)。

# 警示評估
<a name="alarm-evaluation"></a>

## 指標警示狀態
<a name="alarm-states"></a>

警示擁有以下可能的狀態：
+ `OK` – 指標或表達式在定義的閾值內。
+ `ALARM` – 指標或表達式在定義的閾值外。
+ `INSUFFICIENT_DATA` – 警示剛開始無法使用指標，或資料不足無法讓指標判斷警示狀態。

## 警示評估狀態
<a name="alarm-evaluation-state"></a>

除了警示狀態之外，每個警示都有一個評估狀態，可提供警示評估程序的相關資訊。可能會發生下列狀態：
+ `PARTIAL_DATA` – 表示由於配額限制，並非所有可用的資料都能夠擷取。如需詳細資訊，請參閱[如何處理部分資料](cloudwatch-metrics-insights-alarms-partial-data.md)。
+ `EVALUATION_ERROR` – 表示警示設定中需要檢閱和更正的組態錯誤。如需詳細資訊，請參閱警示的 StateReason 欄位。
+ `EVALUATION_FAILURE` – 表示暫時 CloudWatch 問題。我們建議手動監控，直到問題解決為止

您可以在 主控台的警示詳細資訊中，或使用 CLI `describe-alarms` 命令或 `DescribeAlarms` API 來檢視評估狀態。

## 警示評估設定
<a name="alarm-evaluation-settings"></a>

當您建立警示時，必須指定三種設定讓 CloudWatch 評估何時變更警示狀態：
+ **期間**是為了建立警示的每個資料點，用來評估指標或表達式的時間長度。它會以秒表示。
+ **Evaluation Periods** (評估期間) 是判斷警示狀態時所評估的最近期間數或資料點數目。
+ **Datapoints to Alarm** (要警示的資料點) 是在評估期間，必須違規以導致警示進入 `ALARM` 狀態的資料點數目。違規的資料點不必連續，但是其必須位於等於 **Evaluation Period** (評估期間) 的資料點最後數字的範圍內。

對於任何一分鐘或更長的期間，系統會每分鐘評估一次警示，且此評估是以**期間**和**評估期間**所定義的時間範圍為依據。舉例來說，如果**期間**為 5 分鐘 (300 秒) 且**評估期間**的數量為 1，則在第 5 分鐘結束時，警示將會根據第 1 到第 5 分鐘的資料進行評估。接著，在第 6 分鐘結束時，系統會根據第 2 到第 6 分鐘的資料評估警示。

如果警示期間為 10 秒、20 秒或 30 秒，則系統會每 10 秒評估警示一次。如需詳細資訊，請參閱[高解析度警示](#high-resolution-alarms)。

如果警示的評估期間數目乘以每個評估期間的長度超過一天，系統會每小時評估一次。如需如何評估這些多日警示的詳細資訊，請參閱 [評估多日警示的範例](#evaluate-multiday-alarm)。

下圖中，指標警示的警示閾值已設為三個單位。**Evaluation Period** (評估期間) 和 **Datapoints to Alarm** (要警示的資料點) 均為 3。也就是說，當最新三個連續期間中的所有現有資料點都超過閾值時，警示便會移至 `ALARM` 狀態。在此圖中，這會在第三到五個時段發生。在期間六，值 dips 低於閾值，因此評估其中一個期間不違反，且警示狀態變更為 `OK`。在第九個時段，再次達到閾值，但只針對一個期間。因此，該警示狀態會維持 `OK`。

![\[警示閾值觸發警示\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/alarm_graph.png)


當您將 **Evaluation Periods** (評估期間) 和 **Datapoints to Alarm** (要警示的資料點) 設為不同值時，您會設定「N 個項目中有 M 個」警示。**警示的資料點**為 ("M")，**而評估期間為 **("N")。評估間隔是評估期間的數量乘以期間長度。例如，若您設定 1 分鐘內 5 個資料點中有 4 個，則評估間隔為 5 分鐘。若您設定 10 分鐘內 3 個資料點中有 3 個，則評估間隔為 30 分鐘。

**注意**  
如果在建立警示後資料點很快便遺失，並在建立警示之前向 CloudWatch 報告指標，則 CloudWatch 在評估警示時會擷取建立警示前的最新資料點。

## 高解析度警示
<a name="high-resolution-alarms"></a>

如果您在高解析度指標上設定警示，您可以指定期間為 10 秒、20 秒或 30 秒的高解析度警示。高解析度警示費用更高。如需高解析度指標的詳細資訊，請參閱 [發布自訂指標](publishingMetrics.md)。

## 評估多日警示的範例
<a name="evaluate-multiday-alarm"></a>

如果評估期間數目乘以每個評估期間的長度超過一天，警示即為多日警示。系統每小時評估多日警示一次。評估多日警示時，CloudWatch 僅會考量目前小時 :00 分鐘之前的指標。

舉例來說，假設有個警示用來監控每三天於 10:00 執行的任務。

1. 10:02，任務失敗

1. 10:03，警示評估並保持 `OK` 狀態，因為評估僅考慮截至 10:00 的資料。

1. 11:03，警示考慮截至 11:00 的資料並進入 `ALARM` 狀態。

1. 11:43，您更正錯誤，任務成功執行。

1. 12:03，警示再次評估、確認任務成功執行，並回復至 `OK` 狀態。

# 設定 CloudWatch 警示如何處理遺失資料
<a name="alarms-and-missing-data"></a>

有時候，並非每個指標的預期資料點都會報告給 CloudWatch。例如，發生遺失連線情況、伺服器停機或根據設計指標只會間歇性報告資料時。

CloudWatch 可讓您指定評估警示時如何處理遺失的資料點。這可協助您設定警示，從而在適合受監控的資料類型時進入 `ALARM` 狀態。當遺失資料未指出問題時，您可以避免誤報。

與每個警示總會是三種狀態中的其中一種相似，每個向 CloudWatch 報告的特定資料點都會是三種類別中的其中一種類別：
+ 未違反 (在閾值中)
+ 違反 (超出閾值)
+ 缺少

針對每種警示，您可以指定 CloudWatch 將遺失的資料點視為以下任何一種項目：
+ `notBreaching` – 將遺失的資料點視為「良好」且在閾值內
+ `breaching` – 將遺失的資料點視為「不良」且超出閾值
+ `ignore` – 維持目前的警示狀態
+ `missing` – 如果所有資料點在警示評估範圍內遺失，警示會轉換為 INPOLATENT\$1DATA。

最佳選擇取決於指標類型和警示的用途。例如，若您正在建立一個使用持續回報資料的指標來觸發應用程式回滾警示，可以將資料點遺漏視為違規，因為這可能意味著系統出現異常。但是，如果指標只在發生錯誤時才會產生資料點 (例如 Amazon DynamoDB 中的 `ThrottledRequests`)，則建議將遺失資料視為 `notBreaching`。預設行為是 `missing`。

**重要**  
如果有指標資料點缺失，針對 Amazon EC2 指標設定的警示可能暫時進入 INSUFFICIENT\$1DATA 狀態。這種情況雖屬罕見，但當指標報告中斷時仍可能發生，即使 Amazon EC2 執行個體處於正常運作狀態亦然。對於設定為採取停止、終止、重新啟動或復原動作的 Amazon EC2 指標警示，建議您將這些警示設定為視資料缺失為 `missing`，並僅在處於 ALARM 狀態時觸發這些警示。

為警示選擇最佳選項，可避免不必要且誤導的警示條件變更，也可以更準確指出系統的運作狀態。

**重要**  
在`AWS/DynamoDB`命名空間中評估指標的警示預設會忽略遺失的資料。如果您為警示應如何處理遺失的資料選擇不同的選項，則可以覆寫此選項。如果 `AWS/DynamoDB` 指標有遺漏資料，則評估該指標的警示將保持其目前狀態。

## 資料遺失時評估警示狀態的方式
<a name="alarms-evaluating-missing-data"></a>

當警示評估是否變更狀態時，CloudWatch 嘗試擷取更高於指定數量的資料點 **Evaluation Periods** (評估期間)。它會嘗試擷取的資料點數量取決於警示期間的長度，以及使用的是標準解析度指標還是高解析度指標。其嘗試擷取的資料點時間範圍便是*評估範圍*。

一旦 CloudWatch 擷取這些資料點，便會發生下列情況：
+ 如果沒有資料點在評估範圍遺失，CloudWatch 會根據所收集的最新資料點來評估警示。評估的資料點數目等於警示的 **Evaluation Periods** (評估期間) 的值。不需要評估範圍內較久遠的額外資料點，且會予以忽略。
+ 如果一些資料點在評估範圍遺失，但從評估範圍成功擷取的現有資料點總數等於或超過該警示的 **Evaluation Periods** (評估期間)，CloudWatch 會根據最新成功擷取的實際資料點來評估警示狀態，包括來自評估範圍內較久遠的必要額外資料點。在這種情況下，您不需要設定如何處理資料遺失的數值並可忽略。
+ 如果一些資料點在評估範圍遺失，並且實際資料點所擷取的數量低於警示的 **Evaluation Periods** (評估期間) 的數量，CloudWatch 會以您指定如何處理資料遺失的結果填入遺失的資料點，然後評估警示。不過，所有在評估範圍中實際資料點都包含在評估內。CloudWatch 盡可能減少使用遺失的資料點。

**注意**  
此行為的特定案例是，CloudWatch 警示可能會在指標已停止流動後的一段時間內，重複重新評估上一組資料點。此重新評估可能會導致警示變更狀態和重新執行動作 (如果在指標串流停止前便已立即變更狀態的話)。為了減少這種行為，請使用較短的期間。

下表說明範例警示評估行為。在第一個表格，**Datapoints to Alarm** (資料點到警示) 和 **Evaluation Periods** (評估期間) 均為 3。當評估警示時，CloudWatch 會擷取 5 個最新的資料點，這是為了避免遺失最近 3 個資料點當中的一部分。5 是警示的評估範圍。

第 1 欄顯示了 5 個最新的資料點，因為評估範圍為 5。這些資料點會與右側的資料點一起顯示。0 是未違反的資料點、X 是違反的資料點，以及 - 是遺失的資料點。

欄 2 顯示遺失多少必要的 3 個資料點。即使最近 5 個資料點已完成評估，只需要 3 (**Evaluation Periods (評估期間)** 的設定) 個便可以評估警示狀態。欄 2 中資料點的數量，是必須使用如何處理遺失資料設定「填入」的資料點數量。

在 3-6 欄中，欄標題是如何處理遺失資料的可能值。這些欄位中的列會顯示針對處理遺失資料的每種可能方式設定的警示狀態。


| 資料點 | 必須填充的資料點數 | 缺少 | IGNORE | BREACHING | NOT BREACHING | 
| --- | --- | --- | --- | --- | --- | 
|  0 - X - X  |  0  |  `OK`  |  `OK`  |  `OK`  |  `OK`  | 
|  - - - - 0  |  2  |  `OK`  |  `OK`  |  `OK`  |  `OK`  | 
|  - - - - -  |  3  |  `INSUFFICIENT_DATA`  |  保留目前狀態  |  `ALARM`  |  `OK`  | 
|  0 X X - X  |  0  |  `ALARM`  |  `ALARM`  |  `ALARM`  |  `ALARM`  | 
|  - - X - -   |  2  |  `ALARM`  |  保留目前狀態  |  `ALARM`  |  `OK`  | 

在前一個表格的第二列中，該警示會保持在 `OK`，即使將遺失資料都視為違規也一樣，因為一個現有的資料點沒有違規，並且它是隨著兩個視為違規的遺失資料點評估的。下一次評估此警示時，若仍然遺失資料，它便會進入 `ALARM`，因為未違反的資料點將不再於評估範圍內。

第三列 (最近五個資料點全部遺失) 說明了如何處理遺失資料的各種設定會如何影響警示狀態。如果遺失的資料點被視為違規，則警示會進入 ALARM 狀態，而如果它們被視為未違規，則警報會進入 OK 狀態。如果忽略遺失的資料點，警示會保留遺失資料點之前的目前狀態。如果遺失的資料點被視為遺失，則警示沒有足夠的最新實際資料來進行評估，並且會進入 INSUFFICIENT\$1DATA。

在第四列，警示進入 `ALARM` 狀態，因為當警示的最近三個資料點違規時，警示的 **Evaluation Periods** (評估期間) 和 **Datapoints to Alarm** (資料點到警示) 均設為 3。於此狀況下，遺失資料點會予以忽略，且無須如何評估遺失資料的設定，因為有 3 個實際資料點要評估。

第 5 列代表警示評估的特殊情況，稱為*過早警示狀態*。如需詳細資訊，請參閱[避免過早轉換到警示狀態](#CloudWatch-alarms-avoiding-premature-transition)。

在下一個表格中，**Period (期間)** 會再次設為 5 分鐘，**Datapoints to Alarm (要警示的資料點)** 為 2，而 **Evaluation Periods (評估期間)** 則為 3。這是一個 2 來自 3、M 來自 N 警示。

評估範圍為 5。這是已擷取且可以在遺失某些資料點時使用的最近資料點數量上限。


| 資料點 | \$1 遺失資料點 | MISSING | IGNORE | BREACHING | NOT BREACHING | 
| --- | --- | --- | --- | --- | --- | 
|  0 - X - X  |  0  |  `ALARM`  |  `ALARM`  |  `ALARM`  |  `ALARM`  | 
|  0 0 X 0 X  |  0  |  `ALARM`  |  `ALARM`  |  `ALARM`  |  `ALARM`  | 
|  0 - X - -  |  1  |  `OK`  |  `OK`  |  `ALARM`  |  `OK`  | 
|  - - - - 0  |  2  |  `OK`  |  `OK`  |  `ALARM`  |  `OK`  | 
|  - - - - X  |  2  |  `ALARM`  |  保留目前狀態  |  `ALARM`  |  `OK`  | 

在第 1 列和第 2 列中，警示始終處於 ARMARM 狀態，因為 3 個最新的資料點中有 2 個違規。在第 2 列中，不需要評估範圍中的兩個最舊的資料點，因為 3 個最新的資料點都不會遺失，因此會忽略這兩個較舊的資料點。

在第 3 列和第 4 列中，只有當遺失資料被視為違規時，警示才會進入 ALARM 狀態，在這種情況下，兩個最近的遺失資料點都會被視為違規。在第 4 列，這兩個被視為違規的遺失資料點提供兩個必要違規的資料點以觸發 ALARM 狀態。

第 5 列代表警示評估的特殊情況，稱為*過早警示狀態*。如需詳細資訊，請參閱下一節。

### 避免過早轉換到警示狀態
<a name="CloudWatch-alarms-avoiding-premature-transition"></a>

CloudWatch 警示評估包括嘗試避免錯誤警示的邏輯，當資料間歇時，警示會提前進入 ALARM 狀態。前一節表格中第 5 列顯示的範例說明了此邏輯。在這些資料列中，以及在下列範例中，**Evaluation Periods** (評估期間) 是 3，而評估範圍是 5 個資料點。**Datapoints to Alarm** (要警示的資料點) 是 3，除了 N 個例子中的 M 之外，其中 **Datapoints to Alarm** (要警示的資料點) 是 2。

假設警示的最新資料是 `- - - - X`，其中有四個遺失的資料點，然後有一個作為最新資料點的違規資料點。由於下一個資料點可能是未違反，因此當資料為 `- - - - X` 或 `- - - X -` 且 **Datapoints to Alarm** (要警示的資料點) 為 3 時，警示不會立即進入 ARMARM 狀態。透過這種方式，當下一個資料點沒有違反時，可避免誤判，並導致資料成為 `- - - X O` 或 `- - X - O`。

但是，如果最新幾個資料點是 `- - X - -`，即使遺失的資料點被視為遺失，警示也會進入 ARMARM 狀態。這是因為警示旨在於 **Evaluation Periods** (評估期間) 最舊的可用違反資料點數目至少與 **Datapoints to Alarm** (要警示的資料點) 的值一樣陳舊並且所有其他最新的資料點違規或遺失時，始終能進入 ALARM 狀態。在這種情況下，即使可用的資料點總數小於 M (**Datapoints to Alarm** (要警示的資料點))，則警示會進入 ALARM 狀態。

此警示邏輯也適用於 N 個中的 M 個警報。如果評估範圍期間最舊的違規資料點至少與 **Datapoints to Alarm** (要警示的資料點) 同樣陳舊，並且所有最新的資料點均已違規或遺失，則無論 M (**Datapoints to Alarm** (要警示的資料點)) 的值為何，警示會進入 ALARM 狀態。

## CloudWatch Metrics Insights 警示中的遺失資料
<a name="mi-missing-data-treatment"></a>

 ** 根據彙總至單一時間序列的 Metrics Insights 查詢的警示 ** 

 遺失資料案例及其對警示評估的影響，與設定遺失資料處理的標準指標警示相同。請參閱 [設定 CloudWatch 警示如何處理遺失資料](#alarms-and-missing-data)。

 ** 根據產生多個時間序列的 Metrics Insights 查詢的警示 ** 

在下列情況下，會發生 Metrics Insights 警示的遺失資料案例：
+  時間序列內的個別資料點不存在。
+  一或多個時間序列在評估多個時間序列時消失。
+  查詢不會擷取任何時間序列。

 遺失的資料案例會以下列方式影響警示評估：
+  為了評估時間序列，處理遺失的資料處理會套用至時間序列內的個別資料點。例如，如果針對時間序列查詢了 3 個資料點，但只收到 1 個資料點，則 2 個資料點會遵循設定的遺失資料組態。
+  如果查詢不再擷取時間序列，無論處理遺漏的資料處理方式`OK`為何，都會轉換為 。在貢獻者層級執行與`OK`轉換相關聯的警示動作，並`StateReason`指定找不到上述貢獻者並顯示訊息「未為此貢獻者傳回資料」。警示的狀態取決於查詢所擷取的其他參與者的狀態。
+  在警示層級，如果查詢傳回空白結果 （完全沒有時間序列），`INSUFFICIENT_DATA`則無論設定的資料處理是否遺失，警示都會轉換為 。

# 如何處理部分資料
<a name="cloudwatch-metrics-insights-alarms-partial-data"></a>

## 如何評估 Metrics Insights 查詢中的部分資料
<a name="cloudwatch-metrics-insights-query-evaluation"></a>

如果用於警示的 Metrics Insights 查詢與 10,000 個以上指標相符，則會根據查詢找到的前 10,000 個指標來評估警示。這表示系統正在依據部分資料評估警示。

您可以使用下列方法了解 Metrics Insights 警示目前是否正在根據部分資料評估其警示狀態：
+ 在主控台中，若您選擇某個警示以查看 **Details** (詳細資料) 頁面，則該頁面上會顯示 **Evaluation warning: Not evaluating all data** (評估警告：未評估所有資料) 訊息。
+ 當您使用 [ describe-alarms](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/describe-alarms.html?highlight=describe%20alarms) AWS CLI 命令或 [ DescribeAlarms](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html) API `EvaluationState`時，您會在 `PARTIAL_DATA` 欄位中看到 值。

當警示進入部分資料狀態時，警示也會將事件發布至 Amazon EventBridge，如此一來，您便可建立 EventBridge 規則來監看這些事件。在這些事件中，`evaluationState` 欄位的值為 `PARTIAL_DATA`。下列是 範例。

```
{
    "version": "0",
    "id": "12345678-3bf9-6a09-dc46-12345EXAMPLE",
    "detail-type": "CloudWatch Alarm State Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2022-11-08T11:26:05Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:my-alarm-name"
    ],
    "detail": {
        "alarmName": "my-alarm-name",
        "state": {
            "value": "ALARM",
            "reason": "Threshold Crossed: 3 out of the last 3 datapoints [20000.0 (08/11/22 11:25:00), 20000.0 (08/11/22 11:24:00), 20000.0 (08/11/22 11:23:00)] were greater than the threshold (0.0) (minimum 1 datapoint for OK -> ALARM transition).",
            "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2022-11-08T11:26:05.399+0000\",\"startDate\":\"2022-11-08T11:23:00.000+0000\",\"period\":60,\"recentDatapoints\":[20000.0,20000.0,20000.0],\"threshold\":0.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2022-11-08T11:25:00.000+0000\",\"value\":20000.0}]}",
            "timestamp": "2022-11-08T11:26:05.401+0000",
            "evaluationState": "PARTIAL_DATA"
        },
        "previousState": {
            "value": "INSUFFICIENT_DATA",
            "reason": "Unchecked: Initial alarm creation",
            "timestamp": "2022-11-08T11:25:51.227+0000"
        },
        "configuration": {
            "metrics": [
                {
                    "id": "m2",
                    "expression": "SELECT SUM(PartialDataTestMetric) FROM partial_data_test",
                    "returnData": true,
                    "period": 60
                }
            ]
        }
    }
}
```

若警示的查詢包含 GROUP BY 陳述式，且該陳述式初始傳回超過 500 個時間序列，則系統會根據查詢找到的前 500 個時間序列來評估警示。不過，若您使用 ORDER BY 子句，則系統會排序查詢找到的所有時間序列，且會根據您的 ORDER BY 子句，使用有最高或最低值的 500 個時間序列來評估警示。

## 如何評估來自多資料來源警示的部分資料
<a name="multi-data-source-partial-data"></a>

如果 Lambda 函式傳回部分資料：
+ 系統將根據傳回的資料點持續評估警示。
+ 可以使用下列方法，了解 Lambda 函式警示目前是否正在根據部分資料評估其警示狀態：
  + 在主控台中，選擇警示，然後選擇**詳細資訊**頁面。如果您看到訊息**評估警告：未評估該頁面上顯示的所有資料**，表示正在評估部分資料。
  + 如果您在使用 `describe-alarms` AWS CLI 命令或 DescribeAlarms API 時，在 `EvaluationState` `PARTIAL_DATA`欄位中看到 值，則會評估部分資料。
+ 當警示進入部分資料狀態時，也會將事件發布至 Amazon EventBridge。

# 以百分位數為基礎的警示和低資料範例
<a name="percentiles-with-low-samples"></a>

當您設定一個百分位數作為警示的統計資料，您可以指定當沒有足夠的資料可進行良好的統計評估時該進行的動作。您可以選擇無論如何讓警示評估統計資料，並盡可能變更警示狀態。或者，您可以在範例大小為低時讓警示忽略指標，並等待直到有足夠的資料時再進行評估。

對於 0.5 (含) 和 1.00 (含) 之間的百分位數，會在評估期間有少於 10/(1 個百分位數) 資料點時使用此設定。例如，如果對於在 p99 百分位數的警示有少於 1000 個範例，就會使用此設定。對於 0 和 0.5 (不含) 之間的百分位數，會在評估期間有少於 10/(1 個百分位數) 資料點時使用此設定。

# PromQL 警示
<a name="alarm-promql"></a>

PromQL 警示會使用 Prometheus 查詢語言 (PromQL) 立即查詢來監控指標。查詢會選取透過 CloudWatch OTLP 端點擷取的指標，且查詢傳回的所有相符時間序列都會視為違規。警示會定期評估查詢，並以*參與者*身分獨立追蹤每個違規時間序列。

如需使用 OpenTelemetry 擷取指標的資訊，請參閱 [OpenTelemetry](CloudWatch-OpenTelemetry-Sections.md)。

## PromQL 警示的運作方式
<a name="promql-alarm-how-it-works"></a>

PromQL 警示會根據 定義的週期性排程評估 PromQL 立即查詢`EvaluationInterval`。查詢只會傳回滿足條件的時間序列。每個傳回的時間序列都是*貢獻者*，以其唯一的屬性集來識別。

警示使用以持續時間為基礎的狀態轉換：
+ 當查詢傳回貢獻者時，會被視為*違規*。如果參與者在 指定的持續時間內持續違規`PendingPeriod`，則參與者會轉換為 `ALARM` 狀態。
+ 當查詢停止傳回貢獻者時，會將其視為*復原*。如果貢獻者在 指定的持續時間內仍然不存在`RecoveryPeriod`，則貢獻者會轉換回 `OK` 狀態。

當至少有一個參與者違反超過擱置期間時，警示處於 `ALARM` 狀態。當所有參與者都復原時，警示會傳回 `OK` 狀態。

## PromQL 警示組態
<a name="promql-alarm-configuration"></a>

PromQL 警示是以下列參數設定：
+ **PendingPeriod** 是參與者在轉換為`ALARM`狀態之前，必須持續違反的持續時間，以秒為單位。這相當於 Prometheus 提醒規則的`for`持續時間。
+ **RecoveryPeriod** 是參與者在轉換回 `OK` 狀態之前，必須停止違規的持續時間，以秒為單位。這相當於 Prometheus 提醒規則的`keep_firing_for`持續時間。
+ **EvaluationInterval** 是警示評估 PromQL 查詢的頻率，以秒為單位。

若要建立 PromQL 警示，請參閱 [使用 PromQL 查詢建立警示](Create_PromQL_Alarm.md)。

# 複合警示
<a name="alarm-combining"></a>

使用 CloudWatch 時，您可將多個警示合併為一個*複合警示*，以針對整個應用程式或資源群組建立摘要性的彙總運作狀態指標。複合警示可監控其他警示的狀態來判斷其狀態。您可使用布林邏輯來定義規則，以合併這些受監控警示的狀態。

您可使用複合警示來減少警示雜訊，但只能在彙總層級執行動作。例如，您可建立一個複合警示，以在與 Web 伺服器相關的任何警示觸發時，向 Web 伺服器團隊傳送通知。若其中任何警示進入 ALARM 狀態，複合警示會自行進入 ALARM 狀態，並向您的團隊傳送通知。如果與您的 Web 伺服器相關的其他警示也進入 ALARM 狀態，您的團隊不會因新的通知而超載，因為複合警示已通知其現有情況。

您還可使用複合警示來建立複雜的警示條件，並且只有在滿足許多不同條件時才會執行動作。例如，您可建立合併 CPU 警示和記憶體警示的複合警示，並且只有在 CPU 警示和記憶體警示都觸發時才會通知您的團隊。

**使用複合警示**

您在使用複合警示時有兩個選項：
+ 設定您只想在複合警示層級執行的動作，並建立不含處理動作的基礎監控警示
+ 在複合警示層級設定不同的動作集。例如，在出現普遍問題的情況下，複合警示動作可能會讓不同的團隊參與。

複合警示僅可執行下列動作：
+ 通知 Amazon SNS 主題
+ 調用 Lambda 函數
+ 在 Systems Manager Ops Center 中建立 OpsItems
+ 在 Systems Manager Incident Manager 中建立事件

**注意**  
複合警示中的所有基礎警示皆必須與您的複合警示處於相同帳戶和相同區域。但是，如果您在 CloudWatch 跨帳戶觀察功能的監控帳戶中設定複合警示，則基礎警示可監看不同來源帳戶和監控帳戶本身中的指標。如需詳細資訊，請參閱[CloudWatch 跨帳戶觀察功能](CloudWatch-Unified-Cross-Account.md)。  
 每個複合警示可以監控 100 個基礎警示，150 個複合警示可以監控單一個基礎警示。

**規則表達式**

所有複合警示都包含規則表達式。規則表達式會告訴複合警示要監控哪些其他警示，並從何判斷其狀態。規則表達式可以參照指標警示和複合警示。當您參照規則表達式中的警示時，您可以為警示指定一個函數，以決定警示將處於下列三種狀態中的哪一種：
+ ALARM (警示)

  如果警示處於 ALARM 狀態，則 ALARM (“alarm-name 或 alarm-ARN”) 為 TRUE。
+ OK

  如果警示處於 OK 狀態，則 OK (“alarm-name 或 alarm-ARN”) 為 TRUE。
+ INSUFFICIENT\$1DATA

  如果給定的警示處於 INSUFFICIENT\$1DATA 狀態，則 INSUFFICIENT\$1DATA (“alarm-name 或 alarm-ARN”) 為 TRUE。

**注意**  
TRUE 永遠評估為 TRUE，FALSE 永遠評估為 FALSE。

**警示參考**

參考警示時，使用警示名稱或 ARN，規則語法可以支援在警示名稱或 ARN 周圍使用或不使用引號 (") 參考警示。
+ 如果指定沒有引號，警示名稱或 ARNs 不得包含空格、圓括號或逗號。
+ 如果在引號內指定，警示名稱或*包含*雙引號 (") ARNs 必須使用反斜線逸出 (\$1) 字元括住 "，以正確解譯參考。

**語法**

您用來將多個警示結合成一個複合警示的表達式語法使用布林值邏輯和函數。下表說明規則表達式中可用的運算子和函數：


| 運算子/函數 | Description | 
| --- | --- | 
| AND | 邏輯 AND 運算子。當所有指定的條件都是 TRUE 時傳回 TRUE。 | 
| OR | 邏輯 OR 運算子。當至少一個指定的條件為 TRUE 時，傳回 TRUE。 | 
| NOT | 邏輯 NOT 運算子。當指定的條件為 FALSE 時傳回 TRUE。 | 
| AT\$1LEAST | 當指定警示的最小數量或百分比處於必要狀態時，傳回 TRUE 的函數。格式：AT\$1LEAST(M, STATE\$1CONDITION, (alarm1, alarm2, ...alarmN))其中 M 可以是絕對數字或百分比 （例如 50%)，STATE\$1CONDITION 可以是 ALARM、OK、INSUFFICIENT\$1DATA、NOT ALARM、NOT OK 或 NOT INSUFFICIENT\$1DATA。 | 

您可以使用括號來分組條件，並控制複雜表達式中的評估順序。

**範例表達式**

請求參數`AlarmRule`支援使用邏輯運算子 `AND`、 `OR`和 `NOT`以及 `AT_LEAST`函數，因此您可以將多個函數合併為單一表達式。下列範例運算式顯示如何在複合警示中設定基礎警示：
+ `ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh)`

  此表達式指定複合警示僅在 `CPUUtilizationTooHigh` 和 `DiskReadOpsTooHigh` 處於 `ALARM` 時進入 `ALARM`。
+ `AT_LEAST(2, ALARM, (WebServer1CPU, WebServer2CPU, WebServer3CPU, WebServer4CPU))`

  表達式指定當 4 個 Web 伺服器 CPU 警示中至少有 2 個處於 `ALARM` 狀態`ALARM`時，複合警示會進入 。這可讓您根據受影響的資源閾值觸發警示，而不是要求全部或僅一個處於警示狀態。
+ `AT_LEAST(50%, OK, (DatabaseConnection1, DatabaseConnection2, DatabaseConnection3, DatabaseConnection4))`

  表達式指定當至少 50% 的資料庫連線警示處於 `OK` 狀態`ALARM`時，複合警示會進入 。使用百分比可讓規則在您新增或移除監控的警示時動態調整。
+ `ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress)`

  此表達式指定複合警示在 `CPUUtilizationTooHigh` 處於 `ALARM` 且 `DeploymentInProgress` 不處於 `ALARM` 時進入 `ALARM`。這是一個複合警示的範例，用來減少部署期間的警示干擾。
+ `AT_LEAST(2, ALARM, (AZ1Health, AZ2Health, AZ3Health)) AND NOT ALARM(MaintenanceWindow)`

  表達式指定`ALARM`當 3 個可用區域運作狀態警示中有至少 2 個處於 `ALARM` 狀態，且維護時段警示不在 時，複合警示會進入 `ALARM`。這結合了 AT\$1LEAST 函數和其他邏輯運算子，用於更複雜的監控案例。

# 警示隱藏
<a name="alarm-suppression"></a>

複合警示動作抑制可讓您暫時停用警示動作，而無需刪除或修改警示組態。這在計劃的維護、部署或調查已知問題時非常有用。

藉由「複合警示動作抑制」功能，您可以將警示定義為抑制器警示。抑制器警示可阻止複合警示採取動作。例如，您可以指定代表支援資源狀態的抑制器警示。如果支援資源關閉，抑制器警示會阻止複合警示傳送通知。

## 何時使用警示抑制
<a name="alarm-suppression-use-cases"></a>

警示抑制有用的常見情況：
+ 應用程式的維護時段
+ 應用程式部署
+ 持續的事件調查
+ 測試和開發活動

## 抑制器警示的運作方式
<a name="alarm-suppression-how-it-works"></a>

您可以在設定複合警示時指定抑制器警示。任何警示都可以用作抑制器警示。當抑制器警示狀態從 `OK` 變更至 `ALARM`，其複合警示會停止採取動作。當抑制器警示狀態從 `ALARM` 變更至 `OK`，其複合警示會恢復採取動作。

由於複合警示可讓您跨多個警示取得運作狀態的彙總檢視，因此，在常見情況下，預期會觸發這些警示。例如，在應用程式維護時段期間，或您在調查進行中事件時。在這類情況下，您可能想要抑制複合警示的動作，以防止不必要的通知或建立新的事件工單

 藉由「複合警示動作抑制」功能，您可以將警示定義為抑制器警示。抑制器警示可阻止複合警示採取動作。例如，您可以指定代表支援資源狀態的抑制器警示。如果支援資源關閉，抑制器警示會阻止複合警示傳送通知。複合警示動作抑制有助於減少警示干擾，為您節省管理警示的時間，將更多時間專注於操作上。

 您可以在設定複合警示時指定抑制器警示。任何警示都可以用作抑制器警示。當抑制器警示狀態從 `OK` 變更至 `ALARM`，其複合警示會停止採取動作。當抑制器警示狀態從 `ALARM` 變更至 `OK`，其複合警示會恢復採取動作。

### `WaitPeriod` 和 `ExtensionPeriod`
<a name="Create_Composite_Alarm_Suppression_Wait_Extension"></a>

 當您指定抑制器警示時，您可以設定參數 `WaitPeriod` 和 `ExtensionPeriod`。這些參數可防止複合警示在抑制器警示狀態變更時意外採取動作。利用 `WaitPeriod` 來補償抑制器警示從 `OK` 變更至 `ALARM` 時可能發生的任何延遲。例如，若抑制器警示在 60 秒內從 `OK` 變更至 `ALARM`，請將 `WaitPeriod` 設為 60 秒。

![\[WaitPeriod 內的動作抑制\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/example1border.png)


 在圖片中，複合警示會在 t2 從 `OK` 變更為 `ALARM`。一個 `WaitPeriod` 從 t2 開始，在 t8 結束。這使得抑制器警示有時間可以在 t4 將狀態從 `OK` 變更為 `ALARM`，然後當 `WaitPeriod` 在 t8 到期時抑制複合警示的動作。

 當複合警示變為 `OK` 後抑制器警示變為 `OK` 時，利用 `ExtensionPeriod` 來補償可能發生的任何延遲。例如，若複合警示在抑制器警報變為 `OK` 的 60 秒內變更為 `OK`，請將 `ExtensionPeriod` 設為 60 秒。

![\[ExtensionPeriod 內的動作抑制\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/example2border.png)


 在圖片中，抑制器警示會在 t2 從 `ALARM` 變更至 `OK`。一個 `ExtensionPeriod` 從 t2 開始，在 t8 結束。這使得複合警示有時間可以在 `ExtensionPeriod` 於 t8 到期之前，從 `ALARM` 變更為 `OK`。

 當 `WaitPeriod` 和 `ExtensionPeriod` 成為作用中時，複合警示不會採取動作。當 `ExtensionPeriod` 和 `WaitPeriod` 成為非作用中時，複合警示會根據其當下狀態採取動作。我們建議您將每個參數的值設定為 60 秒，因為 每分鐘評估指標警示。您可以將參數設置為任何整數 (單位為秒)。

 下面的例子更詳細地描述了 `WaitPeriod` 和 `ExtensionPeriod` 如何防止複合警報意外採取動作。

**注意**  
 在下列範例中，`WaitPeriod` 配置為 2 個時間單位，而 `ExtensionPeriod` 配置為 3 個時間單位。

#### 範例
<a name="example_scenarios"></a>

 **範例 1：動作於 `WaitPeriod` 之後不會被抑制** 

![\[動作抑制的第一個範例\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/example3border.png)


 在圖片中，複合警示的狀態會在 t2 從 `OK` 變更至 `ALARM`。一個 `WaitPeriod` 從 t2 開始，在 t4 結束，使它可以防止複合警示採取動作。在 `WaitPeriod` 於 t4 到期後，複合警示採取其動作，因為抑制器警示仍處於 `OK`。

 **範例 2：動作於 `WaitPeriod` 到期前被警示抑制** 

![\[動作抑制的第二個範例\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/example4border.png)


 在圖片中，複合警示的狀態會在 t2 從 `OK` 變更至 `ALARM`。一個 `WaitPeriod` 從 t2 開始，在 t4 結束。這使得抑制器警示有時間可以在 t3 將狀態從 `OK` 變更為 `ALARM`。由於抑制器警示在 t3 將狀態從 `OK` 變更為 `ALARM`，導致從 t2 開始的 `WaitPeriod` 被捨棄，而抑制器警示現在會阻止複合警示採取動作。

 **範例 3：動作被 `WaitPeriod` 抑制時的狀態轉換** 

![\[動作抑制的第三個範例\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/example5border.png)


 在圖片中，複合警示的狀態會在 t2 從 `OK` 變更至 `ALARM`。一個 `WaitPeriod` 從 t2 開始，在 t4 結束。這使得抑制器警示有時間可以更改狀態。複合警示在 t3 變回 `OK`，因此從 t2 開始的 `WaitPeriod` 被捨棄。一個新的 `WaitPeriod` 從 t3 開始，在 t5 結束。等到新的 `WaitPeriod` 在 t5 到期後，複合警示便採取其動作。

 **範例 4：動作被警示抑制時的狀態轉換** 

![\[動作抑制的第四個範例\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/cwasexamplefourborder.png)


 在圖片中，複合警示的狀態會在 t2 從 `OK` 變更至 `ALARM`。抑制器警示已經處於 `ALARM`。抑制器警示會阻止複合警示採取動作。

 **範例 5：動作於 `ExtensionPeriod` 之後不會被抑制** 

![\[動作抑制的第五個範例\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/example7border.png)


 在圖片中，複合警示的狀態會在 t2 從 `OK` 變更至 `ALARM`。一個 `WaitPeriod` 從 t2 開始，在 t4 結束。這使得抑制器警示有時間可以在 t3 將狀態從 `OK` 變更為 `ALARM`，然後才抑制複合警示的動作直到 t6。由於抑制器警示在 t3 將狀態從 `OK` 變更為 `ALARM`，導致從 t2 開始的 `WaitPeriod` 被捨棄。在 t6 時，抑制器警示轉為 `OK`。一個 `ExtensionPeriod` 從 t6 開始，在 t9 結束。`ExtensionPeriod` 到期後，複合警示便會採取動作。

 **範例 6：動作被 `ExtensionPeriod` 抑制時的狀態轉換** 

![\[動作抑制的第六個範例\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/cwasexamplesixrborder.png)


 在圖片中，複合警示的狀態會在 t2 從 `OK` 變更至 `ALARM`。一個 `WaitPeriod` 從 t2 開始，在 t4 結束。這使得抑制器警示有時間可以在 t3 將狀態從 `OK` 變更為 `ALARM`，然後才抑制複合警示的動作直到 t6。由於抑制器警示在 t3 將狀態從 `OK` 變更為 `ALARM`，導致從 t2 開始的 `WaitPeriod` 被捨棄。在 t6，抑制器警示變回 `OK`。一個 `ExtensionPeriod` 從 t6 開始，在 t9 結束。當複合警示在 t7 變回 `OK`，此時 `ExtensionPeriod` 被捨棄，且一個新的 `WaitPeriod` 從 t7 開始，在 t9 結束。

**提示**  
 若您替換了動作抑制器警示，則任何作用中的 `WaitPeriod` 或 `ExtensionPeriod` 都會被捨棄。

## 動作隱藏和靜音規則
<a name="action-suppression-and-mute-rules"></a>

 當複合警示的動作禁止和警示靜音規則都處於作用中狀態時，靜音規則會優先並禁止所有警示動作。靜音視窗結束後，複合警示的動作抑制組態會根據抑制器警示狀態和設定的等待或延長期間來決定要執行的動作。如需警示靜音規則的詳細資訊，請參閱 [警示靜音規則](alarm-mute-rules.md)。

# 警示動作
<a name="alarm-actions"></a>

您可以在警示於 OK、ALARM 和 INSUFFICIENT\$1DATA 狀態之間變更時，指定其要採取的動作。

您可以針對上述三種狀態的轉換設定大多數動作。「自動擴展」動作除外，這些動作只有在狀態轉換時才會發生，而且如果條件持續數小時或數天，也不會再次執行。

以下支援為警示動作：
+ 透過使用 Amazon Simple Notification Service 主題，通知一個或多個訂閱用戶。訂閱用戶可以是應用程式以及個人。
+ 調用 Lambda 函數。這是您在警示狀態變更時自動執行自訂動作的最簡單方法。
+ 以 EC2 指標為基礎的警示也可以執行 EC2 動作，例如停止、終止、重新啟動或復原 EC2 執行個體。
+ 警示也可以執行動作來擴展 Auto Scaling 群組。
+ 警示可以在 Systems Manager OpsItems或在 AWS Systems Manager Incident Manager 中建立事件。這些動作只有在警示進入 ALARM 狀態時才會執行。
+ 警示可以在進入 ALARM 狀態時啟動調查。

警示也會在事件變更狀態 Amazon EventBridge 時向 發出事件，而且您可以設定 Amazon EventBridge 來觸發這些狀態變更的其他動作。

## 警示動作和通知
<a name="alarm-actions-notifications"></a>

下表顯示針對警示執行的動作，以及其針對多個時間序列 （或參與者） 警示的行為：


| 動作類型 | Metrics Insights 多時間序列警示支援 | PromQL 警示支援 | 詳細資訊 | 
| --- | --- | --- | --- | 
| SNS 通知 | 貢獻者層級 | 貢獻者層級 | [Amazon SNS 事件目的地](https://docs.aws.amazon.com/sns/latest/dg/sns-event-destinations.html) | 
| EC2 動作 (停止、終止、重新啟動、復原) | 不支援 | 不支援 | [停止、終止、重新啟動或復原 EC2 執行個體](UsingAlarmActions.md) | 
| Auto Scaling 動作 | 不支援 | 不支援 | [Amazon EC2 Auto Scaling 的步進和簡易擴展政策](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) | 
| Systems Manager OpsItem 建立 | 警示層級 | 不支援 | [設定 CloudWatch 警示以建立 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) | 
| Systems Manager Incident Manager 事件 | 警示層級 | 不支援 | [使用 CloudWatch 警示自動建立事件](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html#incident-tracking-auto-alarms) | 
| Lambda 函式調用 | 貢獻者層級 | 貢獻者層級 | [從警示調用 Lambda 函式](alarms-and-actions-Lambda.md) | 
| CloudWatch 調查功能調查 | 警示層級 | 不支援 | [從警示啟動 CloudWatch 調查](Start-Investigation-Alarm.md) | 

警示通知的內容會根據警示類型而有所不同：
+ 單一指標警示同時包含狀態原因和詳細的狀態原因資料，顯示導致狀態變更的特定資料點。
+ 多時間序列 Metrics Insights 警示為每個參與者提供簡化的狀態原因，而不需要詳細的狀態原因資料區塊。
+ PromQL 警示不會在其通知中包含狀態原因或狀態原因資料。

**Example 通知內容範例**  
單一指標警示通知中包含詳細資料：  

```
{
  "stateReason": "Threshold Crossed: 3 out of the last 3 datapoints [32.6 (03/07/25 08:29:00), 33.8 (03/07/25 08:24:00), 41.0 (03/07/25 08:19:00)] were greater than the threshold (31.0)...",
  "stateReasonData": {
    "version": "1.0",
    "queryDate": "2025-07-03T08:34:06.300+0000",
    "startDate": "2025-07-03T08:19:00.000+0000",
    "statistic": "Average",
    "period": 300,
    "recentDatapoints": [41, 33.8, 32.6],
    "threshold": 31,
    "evaluatedDatapoints": [
      {
        "timestamp": "2025-07-03T08:29:00.000+0000",
        "sampleCount": 5,
        "value": 32.6
      }
      // Additional datapoints...
    ]
  }
}
```
貢獻者的多時間序列 Metrics Insights 警示 SNS 通知範例：  

```
{
  "AlarmName": "DynamoDBInsightsAlarm",
  "NewStateValue": "ALARM",
  "NewStateReason": "Threshold Crossed: 1 datapoint was less than the threshold (1.0). The most recent datapoint which crossed the threshold: [0.0 (01/12/25 13:34:00)].",
  "StateChangeTime": "2025-12-01T13:42:04.919+0000",
  "OldStateValue": "OK",
  "AlarmContributorId": "6d442278dba546f6",
  "AlarmContributorAttributes": {
    "TableName": "example-dynamodb-table-name"
  }
  // Additional information...
}
```
Contributor 的 PromQL 警示 SNS 通知範例：  

```
{
  "AlarmName": "HighCPUUsageAlarm",
  "NewStateValue": "ALARM",
  "StateChangeTime": "2025-12-01T13:42:04.919+0000",
  "OldStateValue": "OK",
  "AlarmContributorId": "1d502278dcd546a1",
  "AlarmContributorAttributes": {
    "team": "example-team-name"
  }
  // Additional information...
}
```

## 靜音警示動作
<a name="mute-alarm-actions"></a>

 警示靜音規則可讓您在預先定義的時段內自動將警示動作靜音，例如維護期間或操作事件。CloudWatch 會繼續監控警示狀態，同時防止不必要的通知。如需詳細資訊，請參閱[警示靜音規則](alarm-mute-rules.md)。

**靜音規則與停用警示動作**  
 警示靜音規則會在排程時段期間暫時將動作靜音，並在時段結束時自動解除靜音。相反地，`DisableAlarmActions`API 會永久停用警示動作，直到您手動呼叫 為止`EnableAlarmActions`。`EnableAlarmActions` API 不會取消靜音由作用中靜音規則靜音的警示。

**注意**  
 將警示靜音不會停止 CloudWatch 傳送警示事件，以建立、更新、刪除和狀態變更至 Amazon EventBridge。

# 警示靜音規則
<a name="alarm-mute-rules"></a>

 警示靜音規則是一項 CloudWatch 功能，可讓您在預先定義的時段內自動將警示動作靜音。當您建立靜音規則時，您可以定義其動作將靜音的特定時段和目標警示。CloudWatch 將繼續監控和評估警示狀態，同時在預期的操作事件期間防止不必要的通知或自動警示動作。

 警示靜音規則可協助您管理警示動作為不必要的或破壞性的關鍵操作案例。例如，在計劃的維護時段期間，當系統刻意離線或遇到預期問題時，您可以防止自動警示動作，讓您可以在不中斷的情況下執行維護。對於週末或假日等非上班時間的操作，您可以在不需要立即回應時將非關鍵警示動作靜音，從而減少警示雜訊，並減少不必要的通知給營運團隊。在測試環境中，靜音規則可讓您在負載測試等情況下暫時將警示動作靜音，其中預期資源使用率或錯誤率很高，而且不需要立即關注。當您的團隊主動疑難排解問題時，靜音規則可讓您防止觸發重複的警示動作，協助您專注於解決方案，而不會因為備援警示通知而分心。

## 定義警示靜音規則
<a name="defining-alarm-mute-rules"></a>

 警示靜音規則可以使用 定義：**規則**和**目標**。
+  **規則** - 定義警示動作應該靜音的時段。規則由三個屬性組成：
  +  **表達式** – 定義靜音期間開始的時間及其重複方式。您可以使用兩種類型的表達式：
    +  **Cron 表達**式 – 使用標準 Cron 語法來建立重複靜音視窗。此方法非常適合定期維護排程，例如每週系統更新或每日備份操作。Cron 表達式可讓您指定複雜的週期性模式，包括特定的星期幾、月份或時間。

       *cron 表達式的語法* 

      ```
      ┌───────────── minute (0 - 59)
      │ ┌───────────── hour (0 - 23)
      │ │ ┌───────────── day of the month (1 - 31)
      │ │ │ ┌───────────── month (1 - 12) (or JAN-DEC)
      │ │ │ │ ┌───────────── day of the week (0 - 6) (0 or 7 is Sunday, or MON-SUN)
      │ │ │ │ │
      │ │ │ │ │
      * * * * *
      ```
      +  所有欄位`-`都支援字元 `*``,`、 。
      +  英文名稱可用於 `month`(JAN-DEC) 和 `day of week`(SUN-SAT) 欄位 
    +  **在表達**式中 – 在一次性靜音時段的表達式中使用 。此方法適用於在已知時間發生一次的計劃操作事件。

      ```
      Syntax: `at(yyyy-MM-ddThh:mm)`
      ```
  +  **持續時間** – 指定啟用後靜音規則的持續時間。持續時間必須以 ISO-8601 格式指定，最短 1 分鐘 (PT1M)，最長 15 天 (P15D)。
  +  **時區** – 使用標準時區識別符，例如 "America/Los\$1Angeles" 或 "Europe/London"，指定根據表達式套用靜音時段的時區。
+  **目標** - 指定警示名稱清單，其動作將在定義的時段內靜音。您可以在目標清單中同時包含指標警示和複合警示。

 您可以選擇包含開始和結束時間戳記，為靜音時段提供額外的界限。啟動時間戳記可確保靜音規則不會在特定日期和時間之前啟用，而結束時間戳記則可防止套用超過指定日期和時間的規則。

 如需以程式設計方式建立警示靜音規則的詳細資訊，請參閱 [PutAlarmMuteRule](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutAlarmMuteRule.html)。

**注意**  
 目標警示必須存在於建立靜音規則 AWS 區域 的相同 AWS 帳戶 和相同 中。
 單一警示靜音規則最多可依警示名稱將 100 個警示設為目標。

 CloudWatch 主控台包含專用的「警示靜音規則」索引標籤，可讓您集中管理 內的所有靜音規則 AWS 帳戶。您可以使用規則名稱等靜音規則屬性來搜尋特定靜音規則。

## 靜音規則狀態
<a name="mute-rule-status"></a>

 建立後，警示靜音規則可以處於下列三種狀態之一：
+  **SCHEDULED** – 根據設定的時段表達式，靜音規則將在未來某個時間變成作用中。
+  **ACTIVE** – 根據設定的時段表達式，靜音規則目前處於作用中狀態，並主動將目標警示動作靜音。
+  **已到期** – 未來將不再排程/啟用靜音規則。在靜音時段結束後的一次性靜音規則，或設定結束時間戳記且該時間已過時的重複靜音規則，都會發生這種情況。

## 靜音規則對警示的影響
<a name="effects-of-mute-rules"></a>

 在作用中靜音時段期間，當目標警示變更狀態且已設定動作時，CloudWatch 會將這些動作靜音，使其無法執行。靜音只會套用至警示動作，這表示警示會持續受到評估，且狀態變更會顯示在 CloudWatch 主控台中，但設定的動作如 Amazon Simple Notification Service 通知、Amazon Elastic Compute Cloud Auto Scaling 動作或 Amazon EC2 動作會無法執行。CloudWatch 會在靜音期間繼續正常評估警示狀態，而且您可以透過警示歷史記錄檢視此資訊。

 當靜音視窗結束時，如果目標警示保持警示狀態 (OK/ALARM/INSUFFICIENT\$1DATA)，CloudWatch 會自動重新觸發視窗期間靜音的警示動作。這可確保在計劃的靜音期間結束後，針對持續的問題執行警示動作，以維護監控系統的完整性。

**注意**  
 當您將警示靜音時：  
 與目標警示相關聯的所有動作都會靜音 
 與所有警示狀態 (OK、ALARM 和 INSUFFICIENT\$1DATA) 相關聯的動作會靜音 

## 檢視和管理靜音警示
<a name="viewing-managing-muted-alarms-link"></a>

如需有關檢視和管理靜音警示的資訊，請參閱 [檢視和管理靜音警示](viewing-managing-muted-alarms.md)。

# 警示靜音規則的運作方式
<a name="alarm-mute-rules-behaviour"></a>

下列案例說明警示靜音規則如何影響目標警示，以及警示動作如何靜音或執行。

**注意**  
 將警示靜音會將與所有警示狀態相關聯的動作靜音，包括 OK、ALARM 和 INSUFFICIENT\$1DATA。以下顯示的行為適用於與所有警示狀態相關聯的動作。
 當您將 Metrics Insights 警示靜音時，該警示的所有參與者指標序列也會自動靜音。

## 案例：當靜音規則作用中時，警示動作會靜音
<a name="scenario-actions-muted-during-active-rule"></a>

請考慮這一點，
+ 警示已針對其 ALARM 狀態設定動作
+ 警示靜音規則排定在 t1 到 t5 之間處於作用中狀態，以警示為目標

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/alarm_mute_rules_scenario-1.png)

+ 在 **t0** - 警示處於 OK 狀態，靜音規則狀態為 SCHEDULED
+ 在 **t1** - 靜音規則狀態變為 ACTIVE
+ 在 **t2** - 警示轉換為 ALARM 狀態時，動作會靜音，因為警示會由靜音規則有效地靜音。
+ 在 **t4** - 警示在靜音規則仍在作用中時傳回 OK 狀態
+ 在 **t5** - 靜音規則變成非作用中，但不會執行 ALARM 動作，因為警示現在處於 OK 狀態

## 案例：靜音規則作用中時警示動作已靜音，並在靜音視窗後重新觸發
<a name="scenario-action-retriggered-after-mute"></a>

請考慮這一點，
+ 警示已針對其 ALARM 狀態設定動作
+ 警示靜音規則排定在 t1 到 t5 之間處於作用中狀態，以警示為目標

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/alarm_mute_rules_scenario-2.png)

+ 在 **t0** - 警示處於 OK 狀態，靜音規則狀態為 SCHEDULED
+ 在 **t1** - 靜音規則狀態變為 ACTIVE
+ 在 **t2** - 警示轉換為 ALARM 狀態時，動作會靜音，因為警示會由靜音規則有效地靜音。
+ 在 **t4** - 靜音視窗變成非作用中時，警示仍處於 ALARM 狀態
+ 在 **t5** - 已執行警示動作，因為靜音視窗已結束，且警示維持在原本已靜音的相同狀態 (ALARM)

## 案例：多個重疊的警示靜音規則
<a name="scenario-multiple-overlapping-rules"></a>

請考慮這一點，
+ 警示已針對其 ALARM 狀態設定動作

假設有兩個靜音規則，
+ 警示靜音規則 1 - 將警示從 t1 靜音至 t5
+ 警示靜音規則 2 - 將警示從 t3 靜音至 t9

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/alarm_mute_rules_scenario-3.png)

+ 在 **t0** - 警示處於 OK 狀態時，會排程兩個靜音規則
+ 在 **t1** - 第一個靜音規則變為作用中
+ 在 **t2** - 警示轉換為 ALARM 狀態時，動作會靜音
+ 在 **t3** - 第二個靜音規則變為作用中
+ 在 **t5** - 第一個靜音規則變成非作用中，但警示動作會保持靜音，因為第二個靜音規則仍然作用中
+ 在 **t8** 時 - 執行警示動作，因為第二個靜音時段已結束，且警示維持在原本已靜音的相同狀態 (ALARM)

## 案例：靜音規則更新結束靜音視窗時，會執行靜音警示動作
<a name="scenario-rule-update-ends-mute"></a>

請考慮這一點，
+ 警示已針對其 ALARM 狀態設定動作
+ 警示靜音規則排定在 t1 到 t8 之間處於作用中狀態，以警示為目標

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/alarm_mute_rules_scenario-4.png)

+ 在 **t0** - 警示處於 OK 狀態，已排程靜音規則
+ 在 **t1** - 靜音規則變為 ACTIVE
+ 在 **t2** - 警示轉換為 ALARM 狀態時，動作會靜音
+ 在 **t6** - 靜音規則組態會更新，使得時段結束於 t6。警示動作會在 t6 時立即執行，因為靜音規則不再作用中。

**注意**  
相同的行為也適用，  
如果在 t6 刪除靜音規則。刪除靜音規則會立即將警示解除靜音。
如果警示從靜音規則目標 (t6) 中移除，則警示會立即解除靜音。

## 案例：如果警示動作在靜音時段期間更新，則會執行新動作
<a name="scenario-actions-updated-during-mute"></a>

請考慮這一點，
+ 警示已針對其 ALARM 狀態設定動作
+ 警示靜音規則排定在 t1 到 t8 之間處於作用中狀態，以警示為目標

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/alarm_mute_rules_scenario-5.png)

+ 在 **t0** - 警示處於 OK 狀態時，會排程靜音規則。SNS 動作是以警示狀態 ALARM 設定。
+ 在 **t1** - 靜音規則變為 ACTIVE
+ 在 **t2** - 警示轉換為 ALARM 狀態時，設定的 SNS 動作會靜音
+ 在 **t6** - 警示組態已更新，以移除 SNS 動作並新增 Lambda 動作
+ 在 **t8** - 執行設定為警示的 lambda 動作，因為靜音視窗已結束，且警示保持在最初靜音的相同狀態 (ALARM)

**注意**  
如果在靜音時段 （上述範例中的 t6) 移除所有警示動作，則在靜音時段結束時 （上述的 t8) 不會執行任何動作

## 常見使用案例的範例排程
<a name="common-use-cases"></a>

 下列範例示範如何設定常見使用案例的時段表達式。

 **案例 1：排程維護時段期間的警示動作靜音** – 依可預測排程發生的定期維護活動，例如當服務刻意無法使用或在降級模式下操作時的系統或資料庫更新。
+  `0 2 * * SUN` 具有持續時間的 Cron 表達式 `PT4H` - 每週日凌晨 2：00 至上午 6：00 將警示靜音，以進行每週系統維護。
+  `0 1 1 * *` 具有持續時間的 Cron 表達式 `PT6H` - 在每月第一天的上午 1：00 到上午 7：00 將警示靜音，以進行每月資料庫維護。

 **案例 2：在非上班時間將非關鍵警示靜音** – 在不需要立即注意的情況下，減少週末或假日期間的警示疲勞。
+  具有持續時間`0 18 * * FRI`的 Cron 表達式 `P2DT12H` - 從星期五下午 6：00 到星期一上午 6：00 將警示靜音。

 **案例 3：在每日備份操作期間將效能警示靜音** – 每日自動化備份程序可暫時增加資源使用率，並可能在可預測的時段觸發效能相關警示。
+  具有持續時間`0 23 * * *`的 Cron 表達式 `PT2H` - 在夜間備份操作期間，每天從下午 11：00 到凌晨 1：00 將警示靜音，以暫時增加磁碟 I/O 和 CPU 使用率。

 **案例 4：在作用中的故障診斷工作階段期間將重複的警示靜音** – 在團隊主動調查和解決問題時暫時將警示動作靜音，防止通知噪音並允許聚焦的問題解決。
+  在具有持續時間`at(2024-05-10T14:00)`的表達式 `PT4H` - 在作用中事件回應工作階段期間，將 2024 年 5 月 10 日下午 2：00 到下午 6：00 的警示靜音。

 **案例 5：在計劃的公司關機期間靜音警示動作** – 一次性延長維護期間或全公司關機，其中所有系統都刻意長時間離線。
+  在`at(2024-12-23T00:00)`具有持續時間的表達式 `P7D` - 在年度公司關閉期間，將 2024 年 12 月 23 日至 29 日整週的警示靜音。

# 限制
<a name="alarm-limits"></a>

## 一般 CloudWatch 配額
<a name="general-cloudwatch-quotas"></a>

如需適用於警示的一般 CloudWatch 服務配額資訊，請參閱 [CloudWatch 服務配額](cloudwatch_limits.md)。

## 根據 Metrics Insights 查詢套用至警示的限制
<a name="metrics-insights-alarm-limits"></a>

使用 CloudWatch Metrics Insights 警示時，請注意以下功能限制：
+ 每個區域每個帳戶使用 Metrics Insights 查詢的預設 200 個警示
+ 僅能使用最近 3 小時的資料評估警示條件。不過，您可以在警示的詳細資訊頁面圖表上視覺化呈現最多兩週的資料
+ 評估多個時間序列的警示會將 ALARM 中的參與者數量限制為 100
  + 假設查詢會擷取 150 個時間序列：
    +  如果 ALARM 中的貢獻者少於 100 個 （例如 95)，則 `StateReason`將是「150 個時間序列中的 95 個評估為 ALARM」 
    +  如果 ALARM 中有超過 100 個參與者 （例如 105)，則 `StateReason`將是「評估為 ALARM 的時間序列超過 100 個」 
  + 此外，如果屬性量太大，ALARM 中的參與者數量可以限制為小於 100。
+ Metrics Insights 對分析或傳回的時間序列數目設有上限
+ 在警示評估期間， `EvaluationState`將`PARTIAL_DATA`針對下列限制設為 ：
  +  如果 Metrics Insights 查詢傳回超過 500 個時間序列。
  +  如果 Metrics Insights 查詢符合超過 10，000 個指標。

如需 CloudWatch 服務配額和限制的詳細資訊，請參閱 [CloudWatch Metrics Insights 服務配額](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-metrics-insights-limits.html)。

## 根據 PromQL 查詢套用至警示的限制
<a name="promql-limits"></a>

使用 CloudWatch PromQL 警示時，請注意下列功能限制：
+ 評估多個時間序列的警示會將 ALARM 中的參與者數量限制為 100
  +  如果 ALARM 中的貢獻者少於 100 個 （例如 95)，則 `StateReason`將是「評估為 ALARM 的 95 個時間序列」 
  +  如果 ALARM 中有超過 100 個參與者 （例如 105)，則 `StateReason`將是「評估為 ALARM 的時間序列超過 100 個」 
  + 此外，如果屬性量太大，ALARM 中的參與者數量可以限制為小於 100。
+ PromQL 查詢會限制分析或傳回的時間序列數目上限
+ 在警示評估期間，`PARTIAL_DATA`如果 PromQL 查詢傳回超過 500 個時間序列，`EvaluationState`則會將 設定為 。

## 根據連線資料來源套用至警示的限制
<a name="MultiSource_Alarm_Details"></a>
+ CloudWatch 評估警示時，即使警示的時間長度超過一分鐘，它也會每分鐘執行一次。若要讓警示運作，Lambda 函數必須能夠傳回從任何一分鐘開始的時間戳記清單，而不僅是週期長度的倍數。這些時間戳記必須相隔一個週期長度。

  因此，如果 Lambda 查詢的資料來源只能傳回週期長度倍數的時間戳記，則函數應「重新取樣」擷取的資料，以符合 `GetMetricData` 請求所預期的時間戳記。

  例如，使用每次偏移一分鐘的五分鐘時段，每分鐘評估一次週期為五分鐘的警示。在此案例中：
  + 對於 12:15:00 進行的警示評估，CloudWatch 預期資料點的時間戳記為 `12:00:00`、`12:05:00` 和 `12:10:00`。
  + 然後，對於 12:16:00 進行的警示評估，CloudWatch 預期資料點的時間戳記為 `12:01:00`、`12:06:00` 和 `12:11:00`。
+ CloudWatch 評估警示時，Lambda 函數傳回的與預期時間戳記不符的資料點都會被丟棄，並使用剩餘的預期資料點評估警示。例如，在 `12:15:00` 評估警示時，它預期資料具有 `12:00:00`、`12:05:00` 和 `12:10:00` 時間戳記。如果收到時間戳記為 `12:00:00`、`12:05:00`、`12:06:00` 和 `12:10:00` 的資料，則會丟棄來自 `12:06:00` 的資料，CloudWatch 會使用其他時間戳記評估警示。

  然後，對於在 `12:16:00` 進行的下一次評估，它預期資料具有 `12:01:00`、`12:06:00` 和 `12:11:00` 時間戳記。如果它只有時間戳記為 `12:00:00`、`12:05:00` 和 `12:10:00` 的資料，則所有這些資料點都會在 12:16:00 被忽略，並且警示會根據您指定該警示來處理遺失資料的方式轉換為相應狀態。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。
+ 建議您建立這些警示，以便在它們轉換為 `INSUFFICIENT_DATA` 狀態時採取動作，因為多個 Lambda 函數失敗使用案例都會將警示轉換為 `INSUFFICIENT_DATA`，無論您設定警示以何種方式處理遺失的資料。
+ 如果 Lambda 函式傳回錯誤：
  + 如果呼叫 Lambda 函數時發生許可問題，警示會開始遺失資料轉換，其依據為您指定該警示在建立時處理遺失資料的方式。
  + 任何來自 Lambda 函數的其他錯誤都會導致警示轉換為 `INSUFFICIENT_DATA`。
+ 如果 Lambda 函數請求的指標有一些延遲，從而導致最後一個資料點永遠遺失，您應採取因應措施。可以建立「N 中取 M」警示，或增加警示的評估時間。如需「N 中取 M」警示的詳細資訊，請參閱 [警示評估](alarm-evaluation.md)。

# 開始使用
<a name="alarm-getting-started"></a>

**Topics**
+ [建立 警示](Create-Alarms.md)
+ [針對警示變更採取行動](Acting_Alarm_Changes.md)
+ [設定警示靜音規則](alarm-mute-rules-configure.md)

# 建立 警示
<a name="Create-Alarms"></a>

**Topics**
+ [建立以靜態閾值為基礎的 CloudWatch 警示](ConsoleAlarms.md)
+ [根據指標數學運算式建立 CloudWatch 警示](Create-alarm-on-metric-math-expression.md)
+ [根據異常偵測建立 CloudWatch 警示](Create_Anomaly_Detection_Alarm.md)
+ [根據多時間序列指標洞見查詢建立警示](multi-time-series-alarm.md)
+ [根據連線的資料來源建立警示](Create_MultiSource_Alarm.md)
+ [使用 PromQL 查詢建立警示](Create_PromQL_Alarm.md)
+ [針對日誌的警示](Alarm-On-Logs.md)
+ [建立複合警示](Create_Composite_Alarm.md)

# 建立以靜態閾值為基礎的 CloudWatch 警示
<a name="ConsoleAlarms"></a>

您可以選擇要讓警示監看的 CloudWatch 指標，以及該指標的閾值。當指標超過閾值達到指定的評估期間數，警示便會進入 `ALARM` 狀態。

如果您要在 CloudWatch 跨帳戶觀察功能中設定為監控帳戶的帳戶中建立警示，則可以設定警示，以監看與此監視帳戶連結的來源帳戶中的指標。如需詳細資訊，請參閱[CloudWatch 跨帳戶觀察功能](CloudWatch-Unified-Cross-Account.md)。

**根據單一指標建立警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 選擇 **Select Metric** (選取指標)。

1. 執行以下任意一項：
   + 選擇包含您所需指標的服務命名空間。繼續選擇出現的選項以縮減選擇。出現指標清單時，請選取您所需指標旁的核取方塊。
   + 在搜尋方塊中，輸入指標名稱、帳戶 ID、帳戶標籤、維度或資源 ID。然後，選擇其中一個結果，並繼續進行直到指標清單出現為止。選取您所需指標旁的核取方塊。

1. 選擇 **Graphed metrics (圖表化指標)** 標籤。

   1. 在 **Statistic (統計)** 下，選擇其中一個統計資料或預先定義的百分位數，或指定自訂百分位數 (例如 **p95.45**)。

   1. 在**期間**下，選擇警示的評估期間。評估警示時，每個期間都會彙整為一個資料點。

      您也可以在建立警示時選擇 Y 軸圖例要顯示在左側或右側。只有在建立警示時才會使用此喜好設定。

   1. 選擇**選取指標**。

      **Specify metric and conditions (指定指標和條件)** 頁面隨即出現，顯示您所選取指標和統計資料的圖形及其他資訊。

1. 在 **Conditions (條件)** 下，指定以下內容：

   1. 針對 **Whenever *metric* is (指標為...時)**，請指定指標是否必須大於、小於，或等於閾值。在 **than... (於...)** 下，指定閾值。

   1. 選擇 **Additional configuration (其他組態)**。針對 **Datapoints to alarm (要警示的資料點)**，請指定 (資料點) 必須處於 `ALARM` 狀態多少評估期間，才會觸發警示。如果此處的兩個值相符，您便可以建立警示，在許多連續期間違規時移至 `ALARM` 狀態。

      若要建立 N 個中有 M 個警示，請針對第一個值，指定低於您為第二個值所指定值的值。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。

   1. 針對 **Missing data treatment (遺失資料處理)**，選擇警示在遺失某些資料點時的行為。如需詳細資訊，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

   1. 若警示使用百分位數作為監控統計資料，則會出現一個 **Percentiles with low samples (低樣本的百分位數)** 方塊。請使用它來選擇是要評估還是忽略具有低抽樣率的案例。若您選擇 **ignore (maintain alarm state) (忽略 (維持警示狀態))**，則會在抽樣大小過低時一律維持目前的警示狀態。如需詳細資訊，請參閱[以百分位數為基礎的警示和低資料範例](percentiles-with-low-samples.md)。

1. 選擇**下一步**。

1. 在 **Notification (通知)** 下，選取 SNS 主題來在警示處於 `ALARM` 狀態、`OK` 狀態或 `INSUFFICIENT_DATA` 狀態時進行通知。

   若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification (新增通知)**。

   在 CloudWatch 跨帳戶可觀測性中，您可以選擇將通知傳送至多個 AWS 帳戶。例如，傳送給監控帳戶和來源帳戶。

   若要讓警示不傳送通知，請選擇 **Remove (移動)**。

1. 若要讓警示執行 Auto Scaling、EC2、Lambda、調查或 Systems Manager 動作，請選擇適當的按鈕，然後選擇警示狀態及要執行的動作。警示只能在進入 ALARM 狀態時執行 Systems Manager 動作和調查動作。如需有關 Systems Manager 動作的詳細資訊，請參閱[設定 CloudWatch 以從警示建立 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 和[事件建立](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html)。

   若要讓警示開始調查，請選擇**新增調查動作**，然後選取調查群組。如需 的詳細資訊，請參閱 [CloudWatch 調查](Investigations.md)。
**注意**  
若要建立執行 SSM Incident Manager 動作的警示，您必須具備特定許可。如需詳細資訊，請參閱 [AWS Systems Manager Incident Manager 的身分型政策範例](https://docs.aws.amazon.com/incident-manager/latest/userguide/security_iam_id-based-policy-examples.html)。

1. 完成時，請選擇**下一步**。

1. 輸入警示的名稱與說明。此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。然後選擇**下一步**。

1. 在 **Preview and create (預覽及建立)** 下，請確認資訊和條件都是您希望的內容，然後選擇 **Create alarm (建立警示)**。

您也可以將警示新增至儀表板。如需詳細資訊，請參閱[將警示小工具新增至 CloudWatch 儀表板](add_alarm_dashboard.md)。

# 根據指標數學運算式建立 CloudWatch 警示
<a name="Create-alarm-on-metric-math-expression"></a>

指標警示旨在評估您從單一指標或指標數學表達式定義的時間序列，該表達式將一個或多個指標合併或轉換為時間序列，以提供更符合您獨特需求的見解。若要根據指標數學表達式建立警示，請選擇一或多個要用於表達式中的 CloudWatch 指標。然後，請指定表達式、閾值和評估期間。

您無法根據 **SEARCH** 表達式建立警示。僅以 Metrics Insights SQL 查詢為基礎的警示，方可作用於多個時間序列。

**根據指標數學表達式建立警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)，然後選擇 **All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 選擇 **Select Metric** (選取指標)，然後執行以下其中一項動作：
   + 從 **AWS namespaces** ( 命名空間) 下拉式清單或 **Custom namespaces** (自訂命名空間) 下拉式清單中選取命名空間。選取命名空間後，您可以持續選擇選項直到出現指標清單，然後勾選正確指標旁邊的核取方塊。
   + 使用搜尋方塊尋找指標、帳戶 ID、維度或資源 ID。輸入指標、維度或資源 ID 後，您可以持續選擇選項直到出現指標清單，然後勾選正確指標旁邊的核取方塊。

1. (選用) 如果要向指標數學表達式新增另一個指標，則可以使用搜尋方塊尋找特定指標。您可以向指標數學表達式新增最多 10 個指標。

1. 選取 **Graphed metrics** (圖形指標) 索引標籤。對於您之前新增的每個指標，執行下列動作：

   1. 在 **Statistic** (統計數字) 資料欄下方，選取下拉式選單。在下拉式選單中，選擇其中一個預先定義的統計數字或百分位數。使用下拉式選單中的搜尋方塊，指定自訂百分位數。

   1. 在 **Period** (期間) 資料欄下方，選取下拉式選單。在下拉式選單中，選擇其中一個預先定義的評估期間。

      您也可以在建立警示時指定 Y 軸圖例是否要顯示在圖形的左側或右側。
**注意**  
當 CloudWatch 評估警示時，期間將彙總到單一資料點中。

1. 選擇 **Add math** (新增數學) 下拉式清單，然後從預先定義的指標數學表達式清單中選取 **Start with an empty expression** (從空的表達式開始)。

   在您選擇 **Start with an empty expression** (從空的表達式開始) 後，將顯示一個數學表達式方塊，您可以在其中套用或編輯數學表達式。

1. 在數學表達式方塊中，輸入數學表達式，然後選擇 **Apply** (套用)。

   選擇 **Apply** (套用) 後，在 **Label** (標籤) 資料欄旁邊將顯示 **ID** 資料欄。

   若要使用指標或另一個指標數學表達式的結果作為目前數學表達式公式的一部分，請使用 **ID** 資料欄下顯示的值。若要變更 **ID** 的值，您可以選取目前值旁邊的筆和紙圖示。新值必須以小寫字母開始，且可以包含數字、字母和底線符號。將 **ID** 的值變更為更有意義的名稱，有助於更容易了解警示圖形。

   如需指標數學可用函數的資訊，請參閱 [指標數學語法和函數](using-metric-math.md#metric-math-syntax)。

1. (選用) 在新數學表達式的公式中，使用其他數學表達式的指標和結果，以新增更多數學表達式。

1. 具有要用於警示的表達式之後，請清除頁面上其他每個表達式和每個指標左側的核取方塊。您應只選取要用於警示表達式旁的核取方塊。您為警示選擇的表達式必須產生單一時間序列，而且在圖形上僅顯示一條線。然後選擇 **Select metric (選取指標)**。

   **Specify metric and conditions (指定指標與條件)** 頁面隨即出現，顯示您已選取數學表達式的圖形和其他資訊。

1. 針對 **Whenever *expression* is (表達式為...時)**，指定表達式是否必須大於、小於或等於閾值。在 **than... (於...)** 下，指定閾值。

1. 選擇 **Additional configuration (其他組態)**。針對 **Datapoints to alarm (要警示的資料點)**，請指定 (資料點) 必須處於 `ALARM` 狀態多少評估期間，才會觸發警示。如果此處的兩個值相符，您便可以建立警示，在許多連續期間違規時移至 `ALARM` 狀態。

   若要建立 N 個中有 M 個警示，請針對第一個值，指定低於您為第二個值所指定值的值。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。

1. 針對 **Missing data treatment (遺失資料處理)**，選擇警示在遺失某些資料點時的行為。如需詳細資訊，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

1. 選擇**下一步**。

1. 在 **Notification (通知)** 下，選取 SNS 主題來在警示處於 `ALARM` 狀態、`OK` 狀態或 `INSUFFICIENT_DATA` 狀態時進行通知。

   若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification (新增通知)**。

   若要讓警示不傳送通知，請選擇 **Remove (移動)**。

1. 若要讓警示執行 Auto Scaling、Amazon EC2、Lambda 或 Systems Manager 動作，請選擇適當的按鈕，然後選擇警示狀態及要執行的動作。如果選擇 Lambda 函數作為警示動作，則可以指定函數名稱或 ARN，並且可以選擇性地選擇函數的特定版本。

   警示只能在進入 ALARM 狀態時執行 Systems Manager 動作。如需有關 Systems Manager 的詳細資訊，請參閱[設定 CloudWatch 以從警示建立 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 和[事件建立](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html)。
**注意**  
若要建立執行 SSM Incident Manager 動作的警示，您必須具備特定許可。如需詳細資訊，請參閱 [AWS Systems Manager Incident Manager 的身分型政策範例](https://docs.aws.amazon.com/incident-manager/latest/userguide/security_iam_id-based-policy-examples.html)。

1. 完成時，請選擇**下一步**。

1. 輸入警示的名稱與說明。然後選擇**下一步**。

   此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。

1. 在 **Preview and create (預覽及建立)** 下，請確認資訊和條件都是您希望的內容，然後選擇 **Create alarm (建立警示)**。

您也可以將警示新增至儀表板。如需詳細資訊，請參閱[將警示小工具新增至 CloudWatch 儀表板](add_alarm_dashboard.md)。

# 根據異常偵測建立 CloudWatch 警示
<a name="Create_Anomaly_Detection_Alarm"></a>

您可以建立以 CloudWatch 異常偵測為基礎的警示，此警示會分析過去的指標資料並建立預期值的模型。預期值會將指標中每小時、每日和每週模式列入考慮。

您可以設定異常偵測臨界值，CloudWatch 會使用此臨界值搭配模型，以決定指標的「正常」範圍。較高的臨界值會產生較厚的「正常」值範圍。

您可以選擇警示觸發時機是在指標值超過預期值範圍、低於範圍，或者兩者擇一。

您也可以使用它根據指標數學表達式的單一指標和指標輸出來建立異常偵測警示。您可以使用這些表達式來建立可視化異常偵測頻段的圖形。

在設定為 CloudWatch 跨帳戶可觀測性監控帳戶的帳戶中，除了監控帳戶中的指標之外，您還可以針對來源帳戶中的指標，建立極端值偵測器。

如需詳細資訊，請參閱[使用 CloudWatch 異常偵測](CloudWatch_Anomaly_Detection.md)。

**注意**  
如果您在指標主控台中，因視覺化目的正在對指標使用異常偵測，並對該相同指標建立異常偵測警示，則您為警示設定的閾值不會改變您已為視覺化設定的閾值。如需詳細資訊，請參閱[建立圖形](graph_a_metric.md#create-metric-graph)。

**建立以異常偵測為基礎的警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1.  在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1.  選擇 **Create alarm** (建立警示)。

1.  選擇 **Select Metric** (選取指標)。

1. 執行以下任意一項：
   +  選擇包含指標的服務命名空間，然後繼續選擇顯示的選項以縮小選項範圍。出現指標清單時，請選取指標旁的核取方塊。
   +  在搜尋方塊中，輸入指標名稱、維度或資源 ID。選取其中一個結果，然後繼續選擇出現的選項，直到出現指標清單為止。選取指標旁的核取方塊。

1.  選擇**圖表化指標**。

   1.  (選用) 在*統計數字*下，選擇下拉式清單，然後選取其中一個預先定義的統計數字或百分位數。您可以使用下拉式清單中的搜尋方塊，指定自訂百分位數，例如 **p95.45**。

   1.  (選用) 在*期間*下，選擇下拉式清單，然後選取其中一個預先定義的評估期間。
**注意**  
 CloudWatch 評估警示時，會將期間彙總為單一資料點。若是異常偵測警示，評估期間必須為一分鐘或更久。

1.  選擇**下一步**。

1.  在 ***Conditions (條件)*** 下，指定以下內容：

   1. 選擇 **Anomaly detection (異常偵測)**。

       如果此指標的模型和統計資料已存在，CloudWatch 會在畫面上方的圖表中顯示異常偵測範圍的預覽。建立警示後，最多需要 15 分鐘，實際異常偵測範圍才會出現在圖表中。在這之前，您看到的範圍只是異常偵測範圍的大約值。
**提示**  
 若要在畫面上方查看較長時間範圍的圖表，請選擇頁面右上角的 **Edit** (編輯)。

       如果此指標的模型和統計資料尚未存在，CloudWatch 會在您完成建立警示後產生異常偵測範圍。如果是新模型，最多可能需要 3 小時，實際異常偵測範圍才會出現在圖表中。訓練新模型可能需要長達兩週的時間，這樣異常偵測範圍才能顯示更準確的預期值。

   1. **無論*指標*是何時的**，請指定何時觸發警示。例如，當指標大於、小於頻帶或位於頻帶範圍的外部 (任一方向)。

   1. 對於 **Anomaly detection threshold (異常偵測臨界值)**，請選擇用於異常偵測臨界值的數字。數字越大，「正常」值範圍越寬，對指標變化的容忍度越大。數字越小，範圍越窄，因此將以較小的指標偏差進入 `ALARM` 狀態。該數字不一定是整數。

   1. 選擇 **Additional configuration (其他組態)**。針對 **Datapoints to alarm (要警示的資料點)**，請指定 (資料點) 必須處於 `ALARM` 狀態多少評估期間，才會觸發警示。如果此處的兩個值相符，您便可以建立警示，在許多連續期間違規時移至 `ALARM` 狀態。

      若要建立 N 個中有 M 個警示，請針對小於第二個值之數字的第一個值指定數字。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。

   1. 對於 **Missing data treatment** (遺失資料處理方式)，選擇警示在遺失某些資料點時的行為。如需詳細資訊，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

   1. 若警示使用百分位數作為監控統計資料，則會出現一個 **Percentiles with low samples (低樣本的百分位數)** 方塊。請使用它來選擇是要評估還是忽略具有低抽樣率的案例。若您選擇 **Ignore (maintain alarm state)** (忽略 (維持警示狀態))，則會在抽樣大小過低時一律維持目前的警示狀態。如需詳細資訊，請參閱[以百分位數為基礎的警示和低資料範例](percentiles-with-low-samples.md)。

1.  選擇**下一步**。

1. 在 **Notification (通知)** 下，選取 SNS 主題來在警示處於 `ALARM` 狀態、`OK` 狀態或 `INSUFFICIENT_DATA` 狀態時進行通知。

   若要針對相同的警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification** (新增通知)。

   如果您不想要警示傳送通知，則請選擇 **Remove** (移除)。

1. 您可以設定警示在變更狀態時執行 EC2 動作或調用 Lambda 函數，或在進入警示狀態時建立 Systems Manager OpsItem 或事件。若要進行此操作，請選擇適當的按鈕，然後選擇警示狀態及要執行的動作。

   如果選擇 Lambda 函數作為警示動作，則可以指定函數名稱或 ARN，並且可以選擇性地選擇函數的特定版本。

   如需有關 Systems Manager 動作的詳細資訊，請參閱[設定 CloudWatch 以從警示建立 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 和[事件建立](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html)。
**注意**  
若要建立執行 AWS Systems Manager Incident Manager 動作的警示，您必須擁有特定許可。如需詳細資訊，請參閱 [AWS Systems Manager Incident Manager 的身分型政策範例](https://docs.aws.amazon.com/incident-manager/latest/userguide/security_iam_id-based-policy-examples.html)。

1.  選擇**下一步**。

1.  在 ***Name and description*** (名稱和描述) 下，輸入警示的名稱和描述，然後選擇 **Next** (下一步)。此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。
**提示**  
 此警示名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。

1.  在 ***Preview and create*** (預覽及建立) 下，請確認警示資訊和條件都是正確的，然後選擇 **Create alarm** (建立警示)。

## 編輯異常偵測模型
<a name="Modify_Anomaly_Detection_Model"></a>

建立警示後，您就可以調整異常偵測模型。您可以在建立模型時排除某些期間。請務必從訓練資料中排除不尋常的事件，例如系統中斷、部署和假日。您也可以指定是否針對日光節約時間變更來調整模型。

**編輯警示的異常偵測模型**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇警示的名稱。如有需要，請使用搜尋方塊尋找警示。

1. 選擇**檢視**、**指標中**。

1. 在**詳細資訊**欄中，選擇 **ANOMALY\$1DETECTION\$1BAND** 關鍵字，然後在快顯視窗中選擇**編輯異常偵測模型**。  
![\[顯示 ANOMALY_DETECTION_BAND 快顯功能表的「圖形化指標」索引標籤。\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/Anomaly_Detection_Edit.PNG)

1. 若要排除用於產生模型的時段，請依**結束日期**選擇行事曆圖示。然後選取或輸入要排除的訓練天數和時間，然後選擇 **Apply** (套用)。

1. 如果指標容易受到日光節約時間變更的影響，在 **Metric timezone (指標時區)** 方塊中選取適當的時區。

1. 選擇**更新**。

## 刪除異常偵測模型
<a name="Delete_Anomaly_Detection_Model"></a>

對警示使用異常偵測會累積 費用。作為最佳實務，如果警示不再需要異常偵測模型，請先刪除警示，然後再刪除模型。評估異常偵測警示時，我們會代表您建立任何缺失的異常偵測器。如果您刪除模型，而未刪除警示，警示會自動重新建立模型。

**刪除警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇警示的名稱。

1. 選擇 **動作**、**刪除**。

1. 在確認對話方塊中，選擇**刪除**。

**刪除已用於警示的異常偵測模型**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1.  在導覽窗格中，選擇 **Metrics** (指標)，然後選擇 **All metrics** (所有指標)。

1.  選擇 **Browse** (瀏覽)，然後選取包含異常偵測模型的指標。您可以在搜尋方塊中搜尋指標，也可透過選擇選項來選取指標。
   +  (選用) 如果您使用原始介面，請選擇 **All metrics** (所有指標)，然後選擇包含異常偵測模型的指標。您可以在搜尋方塊中搜尋指標，也可透過選擇選項來選取指標。

1.  選擇 **Graphed metrics (圖表化指標)**。

1. 在**圖形化指標**索引標籤的詳細資訊****欄中，選擇 **ANOMALY\$1DETECTION\$1BAND** 關鍵字，然後在快顯視窗中選擇**刪除異常偵測模型**。  
![\[顯示 ANOMALY_DETECTION_BAND 快顯功能表的「圖形化指標」索引標籤。\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/Anomaly_Detection_Edit.PNG)
   +  (選用) 如果您使用原始介面，請選擇 **Edit model** (編輯模型)。您將被導向至新的畫面。在新畫面上，選擇 **Delete model** (刪除模型)，然後選擇 **Delete** (刪除)。

# 根據多時間序列指標洞見查詢建立警示
<a name="multi-time-series-alarm"></a>

您可以建立警示，監控整個資源機群的多個時間序列。與針對單一執行個體觸發動作的單一執行個體警示不同，機群監控警示可讓您彙總多個資源的指標，並根據整個機群的條件觸發警示。

## 使用 設定多時間序列警示 AWS 管理主控台
<a name="multi-time-series-alarm-console"></a>

此範例示範如何建立一個警示，用於監控整個執行個體機群的記憶體使用率，並在兩個以上的執行個體超過閾值時提醒您。

**建立多時間序列警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 選擇 **Select metric** (選取指標)。

1. 在**指標**下，輸入 Metrics Insights 查詢：

   ```
   SELECT MAX(mem_used_percent)
   FROM "CWAgent"
   GROUP BY InstanceId
   ORDER BY MAX() DESC
   ```

1. 選擇**下一步**。

1. 在 **Conditions (條件)** 下，指定以下內容：
   + 對於**閾值類型**，選擇**靜態**。
   + 對於**當指標**，選擇**大於**，然後輸入 **80**。
   + 對於**要警示的資料點**，輸入 **2**。

1. 視需要設定通知和動作。

1. 輸入警示的名稱和說明。

1. 選擇 **Create alarm** (建立警示)。

此警示與單一執行個體警示有幾點不同：
+ 透過使用指標查詢同時監控多個時間序列。警示每次評估時，都會重新整理指標查詢，因此您的警示會在資源建立、暫停或刪除時自動調整。
+ 對於每個違反閾值的貢獻者，警示會傳送貢獻者狀態變更事件，其在 EventBridge 中的事件類型與警示狀態變更事件不同。警示本身的狀態也會變更：一旦至少有一個貢獻者處於警示狀態，警示也會進入警示狀態。
+ 然而，某些操作 (例如 SSM 事件) 是在警示層級觸發的。當警示中的貢獻者清單變更時，不會重複此類動作。

此警示與彙總指標查詢警示有幾點不同：
+ 其使用 `GROUP BY` 子句個別監控時間序列，而非彙總監控。
+ 其遵循您根據需求設定的精細程度：例如，可針對每個 Amazon EC2 執行個體 (Amazon EC2 指標的最高粒度層級) 或每個 Amazon RDS 資料表 (彙總資料表上各種操作的統計值) 觸發警示，視您在 `GROUP BY` 子句中設定的欄位而定
+ 其使用 `ORDER BY` 子句排定評估的優先順序。
+ 對於每個違反閾值的貢獻者，警示會傳送貢獻者狀態變更事件，其在 EventBridge 中的事件類型與警示狀態變更事件不同。警示本身的狀態也會變更：一旦至少有一個貢獻者處於警示狀態，警示也會進入警示狀態。
+ 然而，某些操作 (例如 SSM 事件) 是在警示層級觸發的。當警示中的貢獻者清單變更時，不會重複此類動作。

# 根據連線的資料來源建立警示
<a name="Create_MultiSource_Alarm"></a>

您可以建立警示，以監視不在 CloudWatch 中的資料來源的指標。如需有關建立其他資料來源連線的詳細資訊，請參閱 [從其他資料來源中查詢指標](MultiDataSourceQuerying.md)。

**若要從已連線的資料來源建立指標警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Metrics** (指標)、**All metrics** (所有指標)。

1. 選擇**多來源查詢**索引標簽。

1. 對於**資料來源**，選取您想要使用的資料來源。

1. 查詢建置器會提示您輸入查詢所需的資訊，以擷取用於警示的指標。每個資料來源的工作流程都不同，並針對資料來源量身打造。例如，對於 Amazon Managed Service for Prometheus 和 Prometheus 資料來源，則會出現一個包含查詢協助程式的 PromQL 查詢編輯器方塊。

1. 完成查詢的建構後，請選擇**圖形查詢**。

1. 如果範例圖表看起來符合您的預期，請選擇**建立警示**。

1. **指定指標和條件**頁面出現。如果使用的查詢產生多個時間序列，將會在頁面頂部看到警告橫幅。如果您這樣做，請選取一個函數，用於彙總**彙總函數**中的時間序列。

1. (選用) 新增警示**標籤**。

1.  對於**當 *your-metric-name* 為…**，選擇**大於**、**大於/等於**、**小於/等於**或**小於**。對於**相比…**，為閾值指定一個數字。

1. 選擇 **Additional configuration (其他組態)**。針對 **Datapoints to alarm (要警示的資料點)**，請指定 (資料點) 必須處於 `ALARM` 狀態多少評估期間，才會觸發警示。如果此處的兩個值相符，您便可以建立警示，在許多連續期間違規時移至 `ALARM` 狀態。

   若要建立 N 個中有 M 個警示，請針對小於第二個值之數字的第一個值指定數字。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。

1. 對於 **Missing data treatment** (遺失資料處理方式)，選擇警示在遺失某些資料點時的行為。如需詳細資訊，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

1. 選擇**下一步**。

1.  對於**通知**，請指定當警示轉換為 `ALARM`、`OK` 或 `INSUFFICIENT_DATA` 狀態時要通知的 Amazon SNS 主題。

   1.  (選用) 若要針對相同警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification** (新增通知)。
**注意**  
建議您設定警示，以便除了在進入**警示**狀態外，進入**資料不足**狀態時應採取動作。這是因為連線至資料來源的 Lambda 函數有許多問題可能會導致警示轉換為**資料不足**。

   1.  (選用) 若不傳送 Amazon SNS 通知，請選擇**移除**。

1. 若要讓警示執行 Auto Scaling、Lambda 或 Systems Manager 動作，請選擇適當的按鈕，然後選擇警示狀態及要執行的動作。如果選擇 Lambda 函數作為警示動作，則可以指定函數名稱或 ARN，並且可以選擇性地選擇函數的特定版本。

   警示只能在進入 ALARM 狀態時執行 Systems Manager 動作。如需有關 Systems Manager 的詳細資訊，請參閱[設定 CloudWatch 以從警示建立 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 和[事件建立](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html)。
**注意**  
若要建立執行 SSM Incident Manager 動作的警示，您必須具備特定許可。如需詳細資訊，請參閱 [AWS Systems Manager Incident Manager 的身分型政策範例](https://docs.aws.amazon.com/incident-manager/latest/userguide/security_iam_id-based-policy-examples.html)。

1. 選擇**下一步**。

1.  在 **Name and description** (名稱和描述) 下，輸入警示的名稱和描述，然後選擇 **Next** (下一步)。此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。
**提示**  
 警示名稱只能包含 UTF-8 字元。它不能包含 ASCII 控制字元。

1.  在 **Preview and create** (預覽及建立) 下，請確認警示資訊和條件都是正確的，然後選擇 **Create alarm** (建立警示)。

# 使用 PromQL 查詢建立警示
<a name="Create_PromQL_Alarm"></a>

您可以建立 CloudWatch 警示，該警示使用 PromQL 即時查詢來監控透過 CloudWatch OTLP 端點擷取的指標。查詢傳回的所有相符時間序列都視為違規，警示會將每個違規時間序列追蹤為貢獻者。如需 PromQL 警示如何運作的詳細資訊，請參閱 [PromQL 警示](alarm-promql.md)。

## 使用 建立 PromQL 警示 AWS 管理主控台
<a name="promql-alarm-create-console"></a>

此範例說明如何建立警示來監控指標，並在其值低於 20 時提醒您。

**建立 PromQL 警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 為指標類型選擇 **PromQL**。

1. 在**編輯器**模式中，輸入 PromQL 查詢：

   ```
   my_gauge_metric < 20
   ```

1. 在 **Conditions (條件)** 下，指定以下內容：
   + 針對**評估間隔**，選擇 **1 minute**，以定義 PromQL 查詢的評估頻率。
   + 對於**待定期間**，輸入 **120**，在進入 ALARM 狀態之前，參與者必須違反的持續時間，以秒為單位。
   + 對於**復原期間**，輸入 **300**，在進入 OK 狀態之前，參與者不得違反持續時間，以秒為單位。

1. 視需要設定通知和動作。

1. 輸入警示的名稱和說明。

1. 選擇**下一步**。

1. 選擇 **Create alarm** (建立警示)。

## 建立 PromQL 警示 (AWS CLI)
<a name="promql-alarm-create-cli"></a>

使用 [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) API 動作來建立 PromQL 警示。

**Example 建立 PromQL 警示，在指標低於 20 時觸發**  

```
aws cloudwatch put-metric-alarm \
  --alarm-name MyPromQLAlarm \
  --evaluation-criteria '{"PromQLCriteria":{"Query":"my_gauge_metric < 20"}}' \
  --evaluation-interval 60
```

**Example 建立具有擱置期間的 PromQL 警示**  
此警示會等待 300 秒 (5 分鐘） 再轉換為 `ALARM` 狀態，並等待 600 秒 (10 分鐘） 再復原。  

```
aws cloudwatch put-metric-alarm \
  --alarm-name HighLatencyAlarm \
  --evaluation-criteria '{"PromQLCriteria":{"Query":"histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m])) > 0.5","PendingPeriod":300,"RecoveryPeriod":600}}' \
  --evaluation-interval 60
```

**Example 使用 SNS 通知動作建立 PromQL 警示**  

```
aws cloudwatch put-metric-alarm \
  --alarm-name MyPromQLAlarmWithAction \
  --evaluation-criteria '{"PromQLCriteria":{"Query":"my_gauge_metric < 20","PendingPeriod":0,"RecoveryPeriod":0}}' \
  --evaluation-interval 60 \
  --alarm-actions arn:aws:sns:us-east-1:123456789012:MyTopic
```

## 從 Query Studio 建立 PromQL 警示
<a name="promql-alarm-create-query-studio"></a>

此範例示範如何從 Query Studio 建立 PromQL 警示，在服務的平均 HTTP 請求持續時間超過 500 毫秒時提醒您。

與閾值設定為個別步驟的標準 CloudWatch 警示不同，PromQL 警示會將警示條件 （閾值） 定義為查詢本身的一部分。例如，比較運算子 (`>`) 和閾值 (`0.5`) 會直接內嵌在 PromQL 表達式中。

**從 Query Studio 建立 PromQL 警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在**指標**下方的導覽窗格中，選擇**查詢 Studio （預覽）**。

1. 從查詢語言下拉式功能表中選取 **PromQL**。

1. 使用下列其中一種模式建置查詢：
   + 在**建置器**模式中，從指標欄位選取**指標**名稱 （例如，`http.server.request.duration`)。視需要新增標籤篩選條件 （例如 `@resource.service.name` = `my-api`)。若要定義警示閾值，請選取**基本操作** （例如，`>`)，然後輸入**數字** （例如，`0.5`)。
   + 在**程式碼**模式中，直接輸入 PromQL 表達式，例如：

     ```
     histogram_avg({"http.server.request.duration", "@resource.service.name"="my-api"}) > 0.5
     ```

1. 選擇**執行**以執行查詢，並確認它傳回預期的結果。

1. 從動作功能表中選擇**建立警示**。

1. 系統會將您重新導向至預先填入 PromQL 查詢的 CloudWatch 警示建立頁面。

1. 在 **Conditions (條件)** 下，指定以下內容：
   + 針對**評估間隔**，選擇 **1 minute**，以定義 PromQL 查詢的評估頻率。
   + 對於**待定期間**，輸入 **60**，查詢在進入 ALARM 狀態之前必須違反的持續時間，以秒為單位。這表示延遲必須超過閾值至少 60 秒，警示才會觸發。
   + 針對**復原期間**，輸入 **120**，在進入 OK 狀態之前，查詢不得違反的持續時間，以秒為單位。這表示延遲必須低於閾值至少 120 秒，警示才會復原。

1. 視需要設定通知和動作。

1. 輸入警示的名稱和說明。

1. 選擇**下一步**。

1. 選擇 **Create alarm** (建立警示)。

**注意**  
PromQL 查詢必須傳回單一時間序列才能建立警示。如果您的查詢傳回多個時間序列，請在建立警示之前使用彙總函數`topk`，例如 `sum`、 `avg`或 ，將結果減少為單一序列。

# 針對日誌的警示
<a name="Alarm-On-Logs"></a>

以下各節中的步驟說明如何建立針對日誌的 CloudWatch 警示。

## 根據日誌群組指標篩選條件建立 CloudWatch 警示
<a name="Create_alarm_log_group_metric_filter"></a>

 本節中的程序說明如何根據日誌群組指標篩選條件建立警示。借助指標篩選條件，您可在要傳送至 CloudWatch 的日誌資料中尋找詞彙和模式。如需詳細資訊，請參閱《Amazon CloudWatch Logs 使用者指南**》中的「[使用篩選條件從日誌事件建立指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)」。根據日誌群組指標篩選條件建立警示之前，必須先完成下列動作：
+  建立 日誌群組 如需詳細資訊，請參閱《Amazon CloudWatch Logs 使用者指南**》中的[使用日誌群組和日誌串流](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#Create-Log-Group)。
+  建立指標篩選條件。如需詳細資訊，請參閱《Amazon CloudWatch Logs 使用者指南**》中的[建立日誌群組的指標篩選條件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateMetricFilterProcedure.html)。

**根據日誌群組指標篩選條件建立警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1.  在導覽窗格中，選擇 **Logs** (日誌)，然後選擇 **Log groups** (日誌群組)。

1.  選擇包含指標篩選條件的日誌群組。

1.  選擇 **Metric filters** (指標篩選條件)。

1.  在指標篩選條件索引標籤中，選取要作為警示依據之指標篩選條件的方塊。

1.  選擇 **Create alarm** (建立警示)。

1.  (選用) 在 **Metric** (指標) 下，編輯 **Metric name** (指標名稱)、**Statistic** (統計資料) 以及 **Period** (期間)。

1.  在 **Conditions (條件)** 下，指定以下內容：

   1.  對於 **Threshold type** (閾值類型)，選擇 **Static** (靜態) 或 **Anomaly detection** (異常偵測)。

   1.  對於 **Whenever *your-metric-name* is . . .** (每當 your-metric-name 為…時)，選擇 **Greater** (大於)、**Greater/Equal** (大於/等於)、**Lower/Equal** (小於/等於) 或 **Lower** (小於)。

   1.  對於 **than . . .** (相比…)，為閾值指定一個數字。

1.  選擇 **Additional configuration (其他組態)**。

   1.  對於 **Data points to alarm** (要警示的資料點)，指定多少資料點會觸發警示進入 `ALARM` 狀態。如果您指定相符的值，則在許多連續期間違規時，警示會進入 `ALARM` 狀態。若要建立 N 個中有 M 個警示，請為第一個值指定一個數字，該數字應小於您為第二個值指定的數字。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。

   1.  對於 **Missing data treatment** (遺失資料處理方式)，請選取一個選項，以指定評估警示時如何處理遺失資料。

1.  選擇**下一步**。

1.  對於 **Notification** (通知)，請指定當警示處於 `ALARM`、`OK` 或 `INSUFFICIENT_DATA` 狀態時要通知的 Amazon SNS 主題。

   1.  (選用) 若要針對相同警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification** (新增通知)。

   1.  (選用) 若不傳送通知，請選擇 **Remove** (移除)。

1. 若要讓警示執行 Auto Scaling、 EC2、Lambda 或 Systems Manager 動作，請選擇適當的按鈕，然後選擇警示狀態及要執行的動作。如果選擇 Lambda 函數作為警示動作，則可以指定函數名稱或 ARN，並且可以選擇性地選擇函數的特定版本。

   警示只能在進入 ALARM 狀態時執行 Systems Manager 動作。如需有關 Systems Manager 的詳細資訊，請參閱[設定 CloudWatch 以從警示建立 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 和[事件建立](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html)。
**注意**  
若要建立執行 SSM Incident Manager 動作的警示，您必須具備特定許可。如需詳細資訊，請參閱 [AWS Systems Manager Incident Manager 的身分型政策範例](https://docs.aws.amazon.com/incident-manager/latest/userguide/security_iam_id-based-policy-examples.html)。

1.  選擇**下一步**。

1.  在 **Name and description (名稱和描述)** 中，輸入警示的名稱和描述。此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。

1.  對於 **Preview and create** (預覽並建立)，請檢查組態是否正確無誤，然後選擇 **Create alarm** (建立警示)。

# 建立複合警示
<a name="Create_Composite_Alarm"></a>

本節中的步驟說明如何使用 CloudWatch 主控台建立複合警示。您也可以使用 API 或 AWS CLI 來建立複合警示。如需詳細資訊，請參閱 [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) 或 [put-composite-alarm](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/put-composite-alarm.html) 

**建立複合警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)，然後選擇 **All alarms** (所有警示)。

1. 從警示列表選取您要在規則表達式中參照的每個現有警示旁的核取方塊，然後選擇 **Create composite alarm** (建立複合警示)。

1. 在 **Specify composite alarm conditions** (指定複合警示條件) 中，指定新複合警示的規則表達式。
**注意**  
您從警示清單中選取的警示會自動列在 **Conditions** (條件) 方框中。在預設情況下，`ALARM` 函數已指定給您的每個警示，且每個警示都由邏輯運算子 `OR` 串聯。

   您可以使用下列子步驟來調整您的規則表達式：

   1. 您可以從以下位置將每個警示的必要狀態從 `ALARM` 變更至 `OK` 或 `INSUFFICIENT_DATA`。

   1. 您可以將規則表達式中的邏輯運算子從 `OR` 變更至 `AND` 或 `NOT`，也可以加入括號來分組函數。

   1. 您可以在規則表達式中加入其他警示，或從規則表達式中刪除警示。

   **範例：具有條件的規則表達式**

   ```
   (ALARM("CPUUtilizationTooHigh") OR 
   ALARM("DiskReadOpsTooHigh")) AND 
   OK("NetworkOutTooHigh")
   ```

   在此範例規則表達式中，當 ALARM("CPUUtilizationTooHigh") 或 ALARM("DiskReadOpsTooHigh") 處於 `ALARM`，且 OK("NetworkOutTooHigh") 同時處於 `OK` 時，複合警示進入 `ALARM` 狀態。

1. 完成時，請選擇**下一步**。

1. 在 **Configure actions** (設定動作) 中，您可以從下列項目選擇：

   對於 ***Notification*** (通知)
   + **Select an exisiting SNS topic** (選取現有的 SNS 主題)、**Create a new SNS topic** (建立新 SNS 主題)，或是 **Use a topic ARN** (使用主題 ARN) 來定義將接收通知的 SNS 主題。
   + **Add notification** (新增通知) 以針對相同的警示狀態或不同警示狀態傳送多個通知。
   + **Remove** (移除) 以停止警示傳送通知或採取動作。

   (選用) 若要讓警示在變更狀態時調用 Lambda 函數，請選擇**新增 Lambda 動作**。然後指定函數名稱或 ARN，並選擇性地選擇函數的特定版本。

   對於 ***Systems Manager action*** (Systems Manager 動作)
   + **Add Systems Manager action** (新增 Systems Manager 動作)，以讓您的警示在進入 ALARM (警示) 狀態時可以執行 SSM 動作。

   若要進一步了解 Systems Manager 動作，請參閱《AWS Systems Manager 使用者指南》**中的[設定 CloudWatch 以從警示建立 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html)章節；以及《Incident Manager 使用者指南》中的[事件建立](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html)章節。若要建立執行 SSM Incident Manager 動作的警示，您必須具備正確的許可。如需詳細資訊，請參閱[《 Incident Manager 使用者指南》中的 AWS Systems Manager Incident Manager 的身分型政策範例](https://docs.aws.amazon.com/incident-manager/latest/userguide/security_iam_id-based-policy-examples.html)。 **

   若要讓警示開始調查，請選擇**新增調查動作**，然後選取調查群組。如需 的詳細資訊，請參閱 [CloudWatch 調查](Investigations.md)。

1. 完成時，請選擇**下一步**。

1. 在 **Add name and description** (新增名稱和描述) 中，輸入警示名稱，並*選擇是否*為您的新複合警示加入描述。此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。

1. 完成時，請選擇**下一步**。

1. 在 **Preview and create** (預覽並建立) 中確認您的資訊，然後選擇 **Create composite alarm** (建立複合警示)。
**注意**  
您可能會建立複合警示循環，使一個複合警示和另一個複合警示彼此參照。如果您發現自己處於這種情況，您的複合警示會停止接受評估，而且您會無法刪除複合警示，因為兩者彼此參照。要打破複合警示彼此參照的循環，最簡單的方法是將您其中一個複合警示中的函數 `AlarmRule` 變更為 `False`。

# 針對警示變更採取行動
<a name="Acting_Alarm_Changes"></a>

CloudWatch 可以在兩種類型的警示變更時通知使用者：警示變更狀態時，以及更新警示組態時。

當警示評估時，可能會從一種狀態變更為另一種狀態，例如 ALARM 或 OK。對於監控多個時間序列的 Metrics Insights 警示，每個時間序列 (貢獻者) 只能處於 ALARM 或 OK 狀態，絕不可能處於 INSUFFICIENT\$1DATA 狀態。這是因為時間序列只在資料存在時才存在。

此外，每當警示變更狀態或建立、刪除或更新警示時，CloudWatch 就會傳送事件至 Amazon EventBridge。您可以撰寫 EventBridge 規則，以便在 EventBridge 接收這些事件時採取動作或收到通知。

如需警示動作的詳細資訊，請參閱 [警示動作](alarm-actions.md)。

**Topics**
+ [在警示變更時通知使用者](Notify_Users_Alarm_Changes.md)
+ [從警示調用 Lambda 函式](alarms-and-actions-Lambda.md)
+ [從警示啟動 CloudWatch 調查](Start-Investigation-Alarm.md)
+ [停止、終止、重新啟動或復原 EC2 執行個體](UsingAlarmActions.md)
+ [警示事件和 EventBridge](cloudwatch-and-eventbridge.md)

# 在警示變更時通知使用者
<a name="Notify_Users_Alarm_Changes"></a>

本節說明如何使用 AWS 使用者通知或 Amazon Simple Notification Service，讓使用者收到警示變更的通知。

## 設定 AWS 使用者通知
<a name="Alarm_User_Notifications"></a>

您可以使用 [AWS User Notifications](https://docs.aws.amazon.com/notifications/latest/userguide/what-is-service.html) 來設定交付管道以接收有關 CloudWatch 警示狀態變更及組態變更事件的通知。當事件符合您指定的規則時，便會收到通知。您可以透過多個管道接收事件通知，包括電子郵件、[AWS Chatbot](https://docs.aws.amazon.com/chatbot/latest/adminguide/what-is.html) 聊天通知或 [AWS 主控台行動應用程式推送通知](https://docs.aws.amazon.com/consolemobileapp/latest/userguide/managing-notifications.html)。您也可以在[主控台通知中心](https://console.aws.amazon.com/notifications)查看通知。使用者通知支援彙總，可減少您在特定事件期間收到的通知數目。

您使用 AWS 使用者通知建立的通知組態不會計入您可以為每個目標警示狀態設定的動作數量限制。當 AWS 使用者通知與傳送至 Amazon EventBridge 的事件相符時，會傳送帳戶和所選區域中所有警示的通知，除非您指定允許清單或拒絕清單特定警示或模式的進階篩選條件。

下列進階篩選條件範例會在名為 `ServerCpuTooHigh` 的警示上比對從 OK 到 ALARM 的警示狀態變更。

```
{
"detail": {
    "alarmName": ["ServerCpuTooHigh"],
    "previousState": { "value": ["OK"] },
    "state": { "value": ["ALARM"] }
  }
}
```

您可以使用 EventBridge 事件中警示所發布的任何屬性來建立篩選條件。如需詳細資訊，請參閱[警示事件和 EventBridge](cloudwatch-and-eventbridge.md)。

## 設定 Amazon SNS 通知
<a name="US_SetupSNS"></a>

您可以使用 Amazon Simple Notification Service 來傳送應用程式對應用程式 (A2A) 及應用程式對人 (A2P) 簡訊，包括行動文字簡訊 (SMS) 和電子郵件訊息。如需詳細資訊，請參閱 [Amazon SNS 事件目的地](https://docs.aws.amazon.com/sns/latest/dg/sns-event-destinations.html)。

對於警示可能發生的每個狀態，您可以設定警示以將訊息傳送至 SNS 主題。針對指定警示上的某個狀態設定的每個 Amazon SNS 主題都會計入您可為該警示和狀態設定的動作數目上限。您可以從帳戶中的任何警示傳送訊息至相同的 Amazon SNS 主題，並針對應用程式 (A2A) 和個人 (A2P) 消費者使用相同的 Amazon SNS 主題。由於此組態是在警示層級完成，因此只有您設定的警示會傳送訊息至選取的 Amazon SNS 主題。

首先，請建立主題，然後訂閱它。您可以選擇性將測試訊息發布到主題。如需範例，請參閱 [使用 設定 Amazon SNS 主題 AWS 管理主控台](#set-up-sns-topic-console)。或者，如需詳細資訊，請參閱 [Amazon SNS 入門](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)。

或者，如果您計劃使用 AWS 管理主控台 來建立 CloudWatch 警示，您可以略過此程序，因為您可以在建立警示時建立主題。

 建立 CloudWatch 警示時，可以為警示進入的任何目的狀態新增動作。針對您要收到通知的狀態新增 Amazon SNS 通知，然後選取您在上一個步驟中建立的 Amazon SNS 主題，以在警示進入所選狀態時傳送電子郵件通知。

**注意**  
建立 Amazon SNS 主題時，您可以選擇將其設為*標準主題*或 *FIFO 主題*。CloudWatch 保證會針對這兩種主題發佈所有警示通知。但是，即使您使用 FIFO 主題，在極少數情況下，CloudWatch 會不按順序將通知傳送至該主題。如果您使用 FIFO 主題，則警示會將警示通知的訊息群組 ID 設定為警示 ARN 的雜湊。

**Topics**
+ [防止因資料混淆而產生誤判的安全問題](#SNS_Confused_Deputy)
+ [使用 設定 Amazon SNS 主題 AWS 管理主控台](#set-up-sns-topic-console)
+ [使用 設定 SNS 主題 AWS CLI](#set-up-sns-topic-cli)

### 防止因資料混淆而產生誤判的安全問題
<a name="SNS_Confused_Deputy"></a>

混淆代理人問題屬於安全性議題，其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在 中 AWS，跨服務模擬可能會導致混淆代理人問題。在某個服務 (*呼叫服務*) 呼叫另一個服務 (*被呼叫服務*) 時，可能會發生跨服務模擬。可以操縱呼叫服務來使用其許可，以其不應有存取許可的方式對其他客戶的資源採取動作。為了防止這種情況， AWS 提供工具，協助您保護所有 服務的資料，讓 服務主體能夠存取您帳戶中的資源。

我們建議在資源政策中使用 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)、[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)、[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgid) 和 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgpaths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgpaths) 全域條件內容索引鍵，來限制 Amazon SNS 提供給另一項服務的資源許可。使用 `aws:SourceArn`，僅將一個資源與跨服務存取權相關聯。使用 `aws:SourceAccount`，讓該帳戶中的任何資源都與跨服務使用相關聯。使用 `aws:SourceOrgID`，允許組織內任何帳戶的任何資源與跨服務使用相關聯。使用 `aws:SourceOrgPaths`，將 AWS Organizations 路徑中帳戶的任何資源與跨服務使用相關聯。如需有關使用和了解路徑的詳細資訊，請參閱《IAM 使用者指南》中的 [aws:SourceOrgPaths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgpaths)。

防範混淆代理人問題的最有效方法是使用 `aws:SourceArn` 全域條件內容索引鍵，以及資源的完整 ARN。如果不知道資源的完整 ARN，或者如果您指定了多個資源，請使用 `aws:SourceArn` 全域內容條件索引鍵搭配萬用字元 (`*`) 來表示 ARN 的未知部分。例如 `arn:aws:servicename:*:123456789012:*`。

如果 `aws:SourceArn` 值不包含帳戶 ID (例如 Amazon S3 儲存貯體 ARN)，您必須同時使用 `aws:SourceAccount` 和 `aws:SourceArn` 來限制許可。

若要大規模防範混淆代理人問題，請在資源型政策中使用 `aws:SourceOrgID` 或 `aws:SourceOrgPaths` 全域條件內容鍵和資源的組織 ID 或組織路徑。當您新增、移除或移動組織中的帳戶時，包含 `aws:SourceOrgID` 或 `aws:SourceOrgPaths` 鍵的政策將會自動包含正確的帳戶，您無需手動更新政策。

`aws:SourceArn` 的值必須是正在傳送通知之警示的 ARN。

下列範例示範如何使用 CloudWatch 中的 `aws:SourceArn` 和 `aws:SourceAccount` 全域條件內容索引鍵，來防止因資料混淆而產生誤判。

```
{
    "Statement": [{
        "Effect": "Allow",
        "Principal": {
            "Service": "cloudwatch.amazonaws.com"
        },
        "Action": "SNS:Publish",
        "Resource": "arn:aws:sns:us-east-2:444455556666:MyTopic",
        "Condition": {
            "ArnLike": {
                "aws:SourceArn": "arn:aws:cloudwatch:us-east-2:111122223333:alarm:*"
            },
            "StringEquals": {
                "aws:SourceAccount": "111122223333"
            }
        }
    }]
}
```

如果警示 ARN 包含任何非 ASCII 字元，請僅使用 `aws:SourceAccount` 全域條件鍵來限制許可。

### 使用 設定 Amazon SNS 主題 AWS 管理主控台
<a name="set-up-sns-topic-console"></a>

首先，請建立主題，然後訂閱它。您可以選擇性將測試訊息發布到主題。

**建立 SNS 主題**

1. 在 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 開啟 Amazon SNS 主控台。

1. 在 Amazon SNS 儀表板上，在 **Common actions** (常見的動作) 下，選擇 **Create Topic** (建立主題)。

1. 在 **Create new topic (建立新主題)** 對話方塊中，針對 **Topic name (主題名稱)**，輸入主題的名稱 (例如 **my-topic**)。

1. 請選擇**建立主題**。

1. 複製下一個任務的 **Topic ARN** (主題 ARN) (例如，arn:aws:sns:us-east-1:111122223333:my-topic)。

**若要訂閱 SNS 主題**

1. 在 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 開啟 Amazon SNS 主控台。

1. 在導覽面板中依序選擇 **Subscriptions** (訂閱) 與 **Create subscription** (建立訂閱)。

1. 在 **Create subscription (建立訂閱)** 對話方塊中，對於 **Topic ARN (主題 ARN)**，貼上在之前工作所建立的主題 ARN。

1. 對於**通訊協定**，選擇**電子郵件**。

1. 針對 **Endpoint (端點)**，輸入您可以用來接收通知的電子郵件地址，然後選擇 **Create subscription (建立訂閱)**。

1. 從您的電子郵件應用程式開啟來自 AWS 通知的訊息，並確認訂閱。

   您的 Web 瀏覽器顯示自 Amazon SNS 的確認回覆。

**若要將文字訊息發布至 SNS 主題**

1. 在 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 開啟 Amazon SNS 主控台。

1. 在導覽窗格中，選擇**主題**。

1. 在 **Topics (主題)** 頁面上，選取主題然後選擇 **Publish to topic (發布到主題)**。

1. 在 **Publish a message (發布訊息)** 頁面中，針對 **Subject (主旨)**，輸入訊息的主旨行，然後針對 **Message (訊息)**，輸入簡短訊息。

1. 選擇 **Publish Message (發布訊息)**。

1. 檢查電子郵件以確認您已收到訊息。

### 使用 設定 SNS 主題 AWS CLI
<a name="set-up-sns-topic-cli"></a>

首先，您可以建立一個 SNS 主題，然後直接將訊息發布到主題來測試您已正確設定。

**設定 SNS 主題**

1. 使用 [create-topic](https://docs.aws.amazon.com/cli/latest/reference/sns/create-topic.html) 命令建立主題，如下所示。

   ```
   1. aws sns create-topic --name my-topic
   ```

   Amazon SNS 會以下列格式傳回主題 ARN：

   ```
   1. {
   2.     "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic"
   3. }
   ```

1. 使用 [subscribe](https://docs.aws.amazon.com/cli/latest/reference/sns/subscribe.html) 命令來訂閱您的電子郵件地址至該主題。如果訂閱請求成功，您會收到一封確認電子郵件訊息。

   ```
   1. aws sns subscribe --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic --protocol email --notification-endpoint my-email-address
   ```

   Amazon SNS 傳回下列回應：

   ```
   1. {
   2.     "SubscriptionArn": "pending confirmation"
   3. }
   ```

1. 從您的電子郵件應用程式開啟來自 AWS 通知的訊息，並確認訂閱。

   您的 Web 瀏覽器顯示自 Amazon Simple Notification Service 的確認回覆。

1. 使用 [list-subscriptions-by-topic](https://docs.aws.amazon.com/cli/latest/reference/sns/list-subscriptions-by-topic.html) 命令檢查訂閱。

   ```
   1. aws sns list-subscriptions-by-topic --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic
   ```

   Amazon SNS 傳回下列回應：

   ```
    1. {
    2.   "Subscriptions": [
    3.     {
    4.         "Owner": "111122223333",
    5.         "Endpoint": "me@mycompany.com",
    6.         "Protocol": "email",
    7.         "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic",
    8.         "SubscriptionArn": "arn:aws:sns:us-east-1:111122223333:my-topic:64886986-bf10-48fb-a2f1-dab033aa67a3"
    9.     }
   10.   ]
   11. }
   ```

1. (選用) 使用 [publish](https://docs.aws.amazon.com/cli/latest/reference/sns/publish.html) 命令將測試訊息發布到該主題。

   ```
   1. aws sns publish --message "Verification" --topic arn:aws:sns:us-east-1:111122223333:my-topic
   ```

   Amazon SNS 傳回下列回應：

   ```
   1. {
   2.     "MessageId": "42f189a0-3094-5cf6-8fd7-c2dde61a4d7d"
   3. }
   ```

1. 檢查電子郵件以確認您已收到訊息。

## 警示變更狀態時的 Amazon SNS 通知結構描述
<a name="alarm-sns-schema"></a>

本節列出警示變更其狀態時，傳送至 Amazon SNS 主題的通知結構描述。

**指標警示變更狀態時的結構描述**

```
{
  "AlarmName": "string",
  "AlarmDescription": "string",
  "AWSAccountId": "string",
  "AlarmConfigurationUpdatedTimestamp": "string",
  "NewStateValue": "string",
  "NewStateReason": "string",
  "StateChangeTime": "string",
  "Region": "string",
  "AlarmArn": "string",
  "OldStateValue": "string",
  "OKActions": ["string"],
  "AlarmActions": ["string"],
  "InsufficientDataActions": ["string"],
  "Trigger": {
    "MetricName": "string",
    "Namespace": "string",
    "StatisticType": "string",
    "Statistic": "string",
    "Unit": "string or null",
    "Dimensions": [
      {
        "value": "string",
        "name": "string"
      }
    ],
    "Period": "integer",
    "EvaluationPeriods": "integer",
    "DatapointsToAlarm": "integer",
    "ComparisonOperator": "string",
    "Threshold": "number",
    "TreatMissingData": "string",
    "EvaluateLowSampleCountPercentile": "string or null"
  }
}
```

**複合警示變更狀態時的結構描述**

```
{
  "AlarmName": "string",
  "AlarmDescription": "string",
  "AWSAccountId": "string",
  "NewStateValue": "string",
  "NewStateReason": "string",
  "StateChangeTime": "string",
  "Region": "string",
  "AlarmArn": "string",
  "OKActions": [String],
  "AlarmActions": [String],
  "InsufficientDataActions": [String],
  "OldStateValue": "string",
  "AlarmRule": "string",
  "TriggeringChildren": [String]
}
```

# 從警示調用 Lambda 函式
<a name="alarms-and-actions-Lambda"></a>

CloudWatch 警示保證 Lambda 函式針對特定狀態變更進行非同步調用，但下列情況除外：
+ 當函式不存在時。
+ CloudWatch 未獲授權，無法調用 Lambda 函式。

若 CloudWatch 無法連線至 Lambda 服務，或訊息因其他原因遭拒，CloudWatch 將持續重試直至調用成功。Lambda 會將訊息排入佇列，並處理執行重試。如需此執行模型的詳細資訊，包括有關 Lambda 如何處理錯誤的資訊，請參閱《 AWS Lambda 開發人員指南》中的[非同步調用](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)。

您可以在相同帳戶或其他帳戶中叫用 Lambda 函數 AWS 。

當您指定警示來調用 Lambda 函數作為警示動作時，您可以選擇指定函數名稱、函數別名或函數的特定版本。

在將 Lambda 函數指定為警示動作時，必須為函數建立資源政策，以允許 CloudWatch 服務主體調用函數。

其中一種方法是使用 AWS CLI，如下列範例所示：

```
aws lambda add-permission \
--function-name my-function-name \
--statement-id AlarmAction \
--action 'lambda:InvokeFunction' \
--principal lambda.alarms.cloudwatch.amazonaws.com \
--source-account 111122223333 \
--source-arn arn:aws:cloudwatch:us-east-1:111122223333:alarm:alarm-name
```

或者，您可以建立類似下列其中一個範例的政策，然後將其指派給函數。

下列範例會指定警示所在的帳戶，因此只有該帳戶 (111122223333) 中的警示才能調用函數。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "default",
    "Statement": [{
        "Sid": "AlarmAction",
        "Effect": "Allow",
        "Principal": {
            "Service": "lambda.alarms.cloudwatch.amazonaws.com"
        },
        "Action": "lambda:InvokeFunction",
        "Resource": "arn:aws:lambda:us-east-1:444455556666:function:function-name",
        "Condition": {
            "StringEquals": {
                "AWS:SourceAccount": "111122223333"
            }
        }
    }]
}
```

------

下列範例的範圍較窄，只允許指定帳戶中的指定警示調用函數。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "default",
  "Statement": [
    {
      "Sid": "AlarmAction",
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.alarms.cloudwatch.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:us-east-1:444455556666:function:function-name",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "111122223333",
          "AWS:SourceArn": "arn:aws:cloudwatch:us-east-1:111122223333:alarm:alarm-name"
        }
      }
    }]
}
```

------

不建議建立不指定來源帳戶的政策，因為這類政策容易出現混淆的代理問題。

## 將 Lambda 指標新增至 CloudWatch 調查
<a name="Lambda-metrics-investigation"></a>

可以將 Lambda 指標新增至作用中的 CloudWatch 調查。調查問題時，Lambda 指標可以提供有關函式效能和行為的寶貴洞見。例如，如果您正在調查應用程式效能問題，持續時間、錯誤率或限流等 Lambda 指標可能有助於識別根本原因。

若要將 Lambda 指標新增至 CloudWatch 調查：

1. 在 https：//[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/) 開啟 AWS Lambda 主控台。

1. 在**監視器**區段中，尋找指標。

1. 開啟指標的內容選單，選擇**調查**、**新增至調查**。然後，在**調查**窗格中，選取調查的名稱。

## 從 CloudWatch 傳送至 Lambda 的事件物件
<a name="Lambda-action-payload"></a>

當您將 Lambda 函數設定為警示動作時，CloudWatch 會在調用 Lambda 函數時將 JSON 承載傳遞至該函數。此 JSON 承載用作函數的事件物件。您可以從此 JSON 物件中提取資料並在函數中使用它。以下是來自指標警示的事件物件範例。

```
{
  'source': 'aws.cloudwatch',
  'alarmArn': 'arn:aws:cloudwatch:us-east-1:444455556666:alarm:lambda-demo-metric-alarm',
  'accountId': '444455556666',
  'time': '2023-08-04T12:36:15.490+0000',
  'region': 'us-east-1',
  'alarmData': {
    'alarmName': 'lambda-demo-metric-alarm',
    'state': {
      'value': 'ALARM',
      'reason': 'test',
      'timestamp': '2023-08-04T12:36:15.490+0000'
    },
    'previousState': {
      'value': 'INSUFFICIENT_DATA',
      'reason': 'Insufficient Data: 5 datapoints were unknown.',
      'reasonData': '{"version":"1.0","queryDate":"2023-08-04T12:31:29.591+0000","statistic":"Average","period":60,"recentDatapoints":[],"threshold":5.0,"evaluatedDatapoints":[{"timestamp":"2023-08-04T12:30:00.000+0000"},{"timestamp":"2023-08-04T12:29:00.000+0000"},{"timestamp":"2023-08-04T12:28:00.000+0000"},{"timestamp":"2023-08-04T12:27:00.000+0000"},{"timestamp":"2023-08-04T12:26:00.000+0000"}]}',
      'timestamp': '2023-08-04T12:31:29.595+0000'
    },
    'configuration': {
      'description': 'Metric Alarm to test Lambda actions',
      'metrics': [
        {
          'id': '1234e046-06f0-a3da-9534-EXAMPLEe4c',
          'metricStat': {
            'metric': {
              'namespace': 'AWS/Logs',
              'name': 'CallCount',
              'dimensions': {
                'InstanceId': 'i-12345678'
              }
            },
            'period': 60,
            'stat': 'Average',
            'unit': 'Percent'
          },
          'returnData': True
        }
      ]
    }
  }
}
```

以下是來自複合警示的事件物件範例。

```
{
  'source': 'aws.cloudwatch',
  'alarmArn': 'arn:aws:cloudwatch:us-east-1:111122223333:alarm:SuppressionDemo.Main',
  'accountId': '111122223333',
  'time': '2023-08-04T12:56:46.138+0000',
  'region': 'us-east-1',
  'alarmData': {
    'alarmName': 'CompositeDemo.Main',
    'state': {
      'value': 'ALARM',
      'reason': 'arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild transitioned to ALARM at Friday 04 August, 2023 12:54:46 UTC',
      'reasonData': '{"triggeringAlarms":[{"arn":"arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild","state":{"value":"ALARM","timestamp":"2023-08-04T12:54:46.138+0000"}}]}',
      'timestamp': '2023-08-04T12:56:46.138+0000'
    },
    'previousState': {
      'value': 'ALARM',
      'reason': 'arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild transitioned to ALARM at Friday 04 August, 2023 12:54:46 UTC',
      'reasonData': '{"triggeringAlarms":[{"arn":"arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild","state":{"value":"ALARM","timestamp":"2023-08-04T12:54:46.138+0000"}}]}',
      'timestamp': '2023-08-04T12:54:46.138+0000',
      'actionsSuppressedBy': 'WaitPeriod',
      'actionsSuppressedReason': 'Actions suppressed by WaitPeriod'
    },
    'configuration': {
      'alarmRule': 'ALARM(CompositeDemo.FirstChild) OR ALARM(CompositeDemo.SecondChild)',
      'actionsSuppressor': 'CompositeDemo.ActionsSuppressor',
      'actionsSuppressorWaitPeriod': 120,
      'actionsSuppressorExtensionPeriod': 180
    }
  }
}
```

# 從警示啟動 CloudWatch 調查
<a name="Start-Investigation-Alarm"></a>

從警示或 CloudWatch 警示歷史記錄過去兩週的任意時間點啟動 CloudWatch 調查。

如需 CloudWatch 調查的詳細資訊，請參閱[CloudWatch 調查](Investigations.md)。

## 先決條件
<a name="w2aac19c25b7c17b7"></a>

您必須先為 函數建立資源政策，以允許 CloudWatch 服務主體開始調查，才能從 CloudWatch 警示開始 CloudWatch 調查。若要使用 執行此操作 AWS CLI，請使用類似下列範例的命令：

```
aws aiops put-investigation-group-policy \
    --identifier arn:aws:aiops:us-east-1:111122223333:investigation-group/investigation_group_id \
    --policy "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"aiops.alarms.cloudwatch.amazonaws.com\"},\"Action\":[\"aiops:CreateInvestigation\",\"aiops:CreateInvestigationEvent\"],\"Resource\":\"*\",\"Condition\":{\"StringEquals\":{\"aws:SourceAccount\":\"111122223333\"},\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:cloudwatch:us-east-1:111122223333:alarm:*\"}}}]}" \
    --region eu-north-1
```

將範例值取代為您自己的 AWS 帳戶 ID、區域和調查群組 ID。

**從 CloudWatch 警示啟動調查**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在左側導覽窗格中，選擇**警示**、**所有警示**。

1. 選擇警示的名稱。

1. 在警示歷史記錄中選擇您要調查的期間。

1. 選擇**調查**、**啟動新調查**。

1. 對於**新調查標題**，輸入調查的名稱。然後選擇**啟動調查**。

   CloudWatch 調查助理會啟動並掃描您的遙測資料，以尋找可能與此情況相關聯的資料。

1. 在 CloudWatch 主控台的導覽窗格中，選擇**調查**，然後選擇您剛啟動的調查名稱。

   **調查結果**區段會顯示警示狀態的自然語言摘要及其觸發原因。

1. （選用） 在警示的圖形中，按一下滑鼠右鍵並選擇深入了解警示或其監看的指標。

1. 在畫面右側，選擇**建議**索引標籤。

   CloudWatch 調查已發現且可能與調查相關的其他遙測清單隨即出現。這些調查結果中可能包含其他指標和 CloudWatch Logs Insights 查詢結果。CloudWatch 調查會根據警示執行這些查詢。
   + 針對每個問題清單，選擇**新增至問題清單**或**捨棄**。

     當您選擇**新增至問題清單**時，遙測會新增至**問題清單**區段，而 CloudWatch 調查會使用此資訊來引導進一步的掃描和建議。
   + 對於 CloudWatch Logs Insights 查詢結果，若要變更或編輯查詢並重新執行，請開啟結果的內容 （按一下滑鼠右鍵） 功能表，然後在 **Logs Insights 中選擇開啟**。如需詳細資訊，請參閱[使用 CloudWatch Logs Insights 分析日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)。

     若要執行不同的查詢，當您前往 Logs Insights 頁面時，請選擇使用查詢協助來使用自然語言形成查詢。如需詳細資訊，請參閱[使用自然語言來產生和更新 CloudWatch Logs Insights 查詢](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-Assist.html)。
   + （選用） 如果您知道可能 AWS 適用於此調查的其他服務中的遙測，請前往該服務的主控台，並將遙測新增至調查。

1. CloudWatch 調查也可能將假設新增至**建議**索引標籤中的清單。這些假設由自然語言的調查產生。

   針對每個假設，選擇**新增至問題清單**或**捨棄**。

1. 當您認為自己已完成調查並找到問題的根本原因時，請選擇**概觀**索引標籤，然後選擇**調查摘要**。接下來，CloudWatch 調查功能會針對調查中的重要發現與假設，產生自然語言摘要。

# 停止、終止、重新啟動或復原 EC2 執行個體
<a name="UsingAlarmActions"></a>

使用 Amazon CloudWatch 警示動作，您可以建立警示以自動停止、終止、重新啟動或復原您的 EC2 執行個體。當執行個體不再需要執行，您可以使用停止或終止動作以協助您節省成本。如果發生系統受損，您可以使用重新啟動和復原動作，自動重新啟動這些執行個體或將它們復原到新的硬體。

在許多情況下，您可能想要自動停止或終止您的執行個體。例如，您可能有專門批次處理薪資作業或科學運算任務的執行個體，它們在執行一段時間後完成工作。不要讓這些執行個體閒置 (及累積費用)，您可以停止或終止它們，以協助您節省成本。使用停止和終止警示動作的主要差別在於，如果您後來需要再次執行已停止的執行個體，則可以輕鬆地重新啟動它。您也可以保留相同的執行個體 ID 和根磁碟區。不過，您不能重新啟動已終止的執行個體。相反地，您必須啟動新的執行個體。

您可將停止、終止、重新啟動或動作，新增至設定於 Amazon EC2 每執行個體指標上的任何警示，包括 Amazon CloudWatch 提供的基本和詳細監控指標 (在 AWS/EC2 命名空間中)，除了包括 "InstanceId=" 維度的任何自訂指標，只要 InstanceId 值代表有效的執行中 Amazon EC2 執行個體。您還可將復原動作新增至設定於任何 Amazon EC2 每執行個體指標上的警示，`StatusCheckFailed_Instance` 除外。

**重要**  
如果有指標資料點缺失，針對 Amazon EC2 指標設定的警示可能暫時進入 INSUFFICIENT\$1DATA 狀態。這種情況雖屬罕見，但當指標報告中斷時仍可能發生，即使 Amazon EC2 執行個體處於正常運作狀態亦然。對於設定為採取停止、終止、重新啟動或復原動作的 Amazon EC2 指標警示，建議您將這些警示設定為視資料缺失為 `missing`，並僅在處於 ALARM 狀態時觸發這些警示。  
如需進一步了解如何設定 CloudWatch，使其對設定了警示的缺失指標採取行動，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

若要設定可重新啟動、停止或終止執行個體的 CloudWatch 警示動作，您必須使用與服務連結的 IAM 角色 *AWSServiceRoleForCloudWatchEvents*。AWSServiceRoleForCloudWatchEvents IAM 角色 AWS 可讓 代表您執行警示動作。

若要使用下列命令建立適用於 CloudWatch Events 的服務連結角色：

```
aws iam create-service-linked-role --aws-service-name events.amazonaws.com
```

**主控台支援**  
您可以使用 CloudWatch 主控台或 Amazon EC2 主控台建立警示。本文件中的程序使用 CloudWatch 主控台。如需使用 Amazon EC2 主控台的程序，請參閱《Amazon EC2 使用者指南》**中的[建立可停止、終止、重新啟動或回復執行個體的警示](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingAlarmActions.html)。

**許可**  
如果您使用 AWS Identity and Access Management (IAM) 帳戶來建立或修改執行 EC2 動作或 Systems Manager OpsItem 動作的警示，您必須擁有 `iam:CreateServiceLinkedRole`許可。

**Topics**
+ [將停止動作新增至 Amazon CloudWatch 警示](#AddingStopActions)
+ [將終止動作新增至 Amazon CloudWatch 警示](#AddingTerminateActions)
+ [將重新開機動作新增至 Amazon CloudWatch 警示](#AddingRebootActions)
+ [將復原動作新增至 Amazon CloudWatch 警示](#AddingRecoverActions)
+ [檢視已觸發警示和動作的歷史記錄](#ViewAlarmHistory)

## 將停止動作新增至 Amazon CloudWatch 警示
<a name="AddingStopActions"></a>

您可以建立警示，在符合特定閾值時停止 Amazon EC2 執行個體。例如，您可以執行開發或測試執行個體，並偶爾忘記關閉它們。您可以建立警示，在平均 CPU 使用率百分比已低於 10% 達 24 小時時觸發，以通知其為閒置且不再使用。您可以調整閾值、持續時間和期間以符合您的需求，而且您可以新增 SNS 通知，當觸發警示時，您將會收到電子郵件。

使用 Amazon Elastic Block Store 磁碟區作為根裝置的 Amazon EC2 執行個體可以停止或終止，而使用執行個體存放區作為根裝置的執行個體只能終止。

**若要使用 Amazon CloudWatch 主控台建立警示以停止閒置的執行個體**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 選擇 **Select Metric** (選取指標)。

1. 在 **AWS 命名空間**中，選擇 **EC2**。

1. 請執行下列操作：

   1. 選擇 **Per-Instance Metrics** (每個執行個體指標)。

   1. 勾選正確執行個體的資料列中的核取方塊以及 **CPUUtilization** 指標。

   1. 選擇 **Graphed metrics (圖表化指標)** 標籤。

   1. 在統計資料中選擇 **Average (平均)**。

   1. 選擇期間 (例如，**1 Hour**)。

   1. 選擇**選取指標**。

1. 在 **Conditions** (條件) 下，執行下列動作：

   1. 選擇 **Static** (靜態)。

   1. 在 **Whenever CPUUtilization is** (每當 CPU 使用率為) 下方，選擇 **Lower** (較低)。

   1. 針對 **than** (比較)，輸入 **10**。

   1. 選擇**下一步**。

   1. 在 **Notification (通知)** 之下的 **Send notification to (傳送通知至)** 中，選擇現有的 SNS 主題或建立新的主題。

      若要建立 SNS 主題，請選擇 **New list (新增清單)**。在 **Send notification to (傳送通知至)** 中，輸入 SNS 主題的名稱 (例如，Stop\$1EC2\$1Instance)。在 **Email list (電子郵件清單)** 中輸入以逗號分隔的電子郵件地址清單，當警示變更為 `ALARM` 狀態時，這些電子郵件地址將會收到通知。每個電子郵件地址都會收到主題訂閱確認電子郵件。您必須確認訂閱，通知才會傳送到您的電子郵件地址。

   1. 選擇 **Add EC2 Action** (新增 EC2 動作)。

   1. 針對 **Alarm state trigger** (警示狀態觸發)，選擇 **In Alarm** (警示中)。針對 **Take the action** (採取動作)，選擇 **Stop this instance** (停止此執行個體)。

   1. 選擇**下一步**。

   1. 輸入警示的名稱與說明。名稱只能包含 ASCII 字元。然後選擇**下一步**。

   1. 在 **Preview and create (預覽及建立)** 下，請確認資訊和條件都是您希望的內容，然後選擇 **Create alarm (建立警示)**。

## 將終止動作新增至 Amazon CloudWatch 警示
<a name="AddingTerminateActions"></a>

您可以建立警示，在符合特定閾值時自動終止 EC2 執行個體 (前提是執行個體未啟用終止保護)。例如，您可能想要在執行個體完成作業時予以終止，而且不再需要該執行個體。如果您之後還要使用該執行個體，您應該停止而非終止執行個體。如需有關啟用與停用執行個體終止保護的資訊，請參閱《Amazon EC2 使用者指南》**中的[啟用執行個體終止保護](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingDisableAPITermination.html)。

**若要使用 Amazon CloudWatch 主控台建立警示以終止閒置的執行個體**

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**Create Alarm** (建立警示)。

1. 在 **Select Metric (選取指標)** 步驟，執行下列動作：

   1. 在 **EC2 Metrics (EC2 指標)** 之下選擇 **Per-Instance Metrics (每個執行個體指標)**。

   1. 選取該執行個體的資料列以及 **CPUUtilization** 指標。

   1. 在統計資料中選擇 **Average (平均)**。

   1. 選擇期間 (例如，**1 Hour**)。

   1. 選擇**下一步**。

1. 在 **Define Alarm (定義警示)** 步驟，執行下列動作：

   1. 在 **Alarm Threshold** (警示閾值) 之下輸入唯一的名稱 (例如，終止 EC2 執行個體)，以及警示的描述 (例如，當 CPU 閒置太久時終止 EC2 執行個體)。警示名稱只能包含 ASCII 字元。

   1. 在 **Whenever (無論何時)** 之下的 **is (是)** 中，選擇 **<** 並輸入 **10**。在 **for (持續)** 中，輸入 **24** 個連續期間。

      以圖像方式呈現的閥值會顯示在 **Alarm Preview (警示預覽)** 下方。

   1. 在 **Notification (通知)** 之下的 **Send notification to (傳送通知至)** 中，選擇現有的 SNS 主題或建立新的主題。

      若要建立 SNS 主題，請選擇 **New list (新增清單)**。在 **Send notification to (傳送通知至)** 中，輸入 SNS 主題的名稱 (例如，Terminate\$1EC2\$1Instance)。在 **Email list (電子郵件清單)** 中輸入以逗號分隔的電子郵件地址清單，當警示變更為 `ALARM` 狀態時，這些電子郵件地址將會收到通知。每個電子郵件地址都會收到主題訂閱確認電子郵件。您必須確認訂閱，通知才會傳送到您的電子郵件地址。

   1. 選擇 **EC2 Action (EC2 動作)**。

   1. 在 **Whenever this alarm** (每當此警示) 中選擇 **State is ALARM** (狀態為警示)。在 **Take this action (採取此動作)** 中選擇 **Terminate this instance (終止此執行個體)**。

   1. 選擇**建立警示** 。

## 將重新開機動作新增至 Amazon CloudWatch 警示
<a name="AddingRebootActions"></a>

您可以建立 Amazon CloudWatch 警示來監控 Amazon EC2 執行個體，並自動重新啟動執行個體。重新啟動警示動作建議用於執行個體運作狀態檢查失敗 (相對的，復原警示動作則適用於系統運作狀態檢查失敗)。重新啟動執行個體等同於重新啟動作業系統。在大多數情況下，將執行個體重新開機只需要幾分鐘的時間。當您重新啟動執行個體時，它會維持在相同的實體主機上，所以您的執行個體會保有其公有 DNS 名稱、私有 IP 地址和執行個體存放區磁碟區上的任何資料。

不同於停用和重新啟動您的執行個體，重新啟動執行個體不會啟動新執行個體計費小時。如需重新啟動執行個體的詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的[啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html)。

**重要**  
為了避免重新啟動和復原動作之間的競爭情況，請避免為重新啟動警示和復原警示設定相同的評估期間。我們建議您將重新開機警示設定為三個各一分鐘的評估期間。

**若要使用 Amazon CloudWatch 主控台建立警示以重新啟動執行個體**

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**Create Alarm** (建立警示)。

1. 在 **Select Metric (選取指標)** 步驟，執行下列動作：

   1. 在 **EC2 Metrics (EC2 指標)** 之下選擇 **Per-Instance Metrics (每個執行個體指標)**。

   1. 選取該執行個體的資料列以及 **StatusCheckFailed\$1Instance** 指標。

   1. 在統計資料中選擇 **Minimum (最小值)**。

   1. 選擇期間 (例如，**1 Minute**)。

   1. 選擇**下一步**。

1. 在 **Define Alarm (定義警示)** 步驟，執行下列動作：

   1. 在 **Alarm Threshold (警示閾值)** 之下輸入唯一的名稱 (例如，重新啟動 EC2 執行個體)，以及警示的描述 (例如，當運作狀態檢查失敗時重新啟動 EC2 執行個體)。警示名稱只能包含 ASCII 字元。

   1. 在 **Whenever (無論何時)** 之下的 **is (是)** 中，選擇 **>** 並輸入 **0**。在 **for (持續)** 中，輸入 **3** 個連續期間。

      以圖像方式呈現的閥值會顯示在 **Alarm Preview (警示預覽)** 下方。

   1. 在 **Notification (通知)** 之下的 **Send notification to (傳送通知至)** 中，選擇現有的 SNS 主題或建立新的主題。

      若要建立 SNS 主題，請選擇 **New list (新增清單)**。在 **Send notification to (傳送通知至)** 中，輸入 SNS 主題的名稱 (例如，Reboot\$1EC2\$1Instance)。在 **Email list (電子郵件清單)** 中輸入以逗號分隔的電子郵件地址清單，當警示變更為 `ALARM` 狀態時，這些電子郵件地址將會收到通知。每個電子郵件地址都會收到主題訂閱確認電子郵件。您必須確認訂閱，通知才會傳送到您的電子郵件地址。

   1. 選擇 **EC2 Action (EC2 動作)**。

   1. 在 **Whenever this alarm** (每當此警示) 中選擇 **State is ALARM** (狀態為警示)。在 **Take this action (採取此動作)** 中選擇 **Reboot this instance (重新啟動此執行個體)**。

   1. 選擇**建立警示** 。

## 將復原動作新增至 Amazon CloudWatch 警示
<a name="AddingRecoverActions"></a>

您可以建立 Amazon CloudWatch 警示來監控 Amazon EC2 執行個體，並在執行個體因基礎硬體故障或需要 AWS 參與修復的問題而受損時自動復原執行個體。已終止的執行個體無法復原。復原後的執行個體與原始執行個體相同，包括執行個體 ID、私有 IP 地址、彈性 IP 地址及所有執行個體中繼資料。

當 `StatusCheckFailed_System` 警示觸發且復原動作啟動時，您將收到 Amazon SNS 主題通知，這是您在建立警示時選擇並與復原動作關聯的通知。在執行個體復原期間，執行個體會在重新啟動期間遷移，記憶體內的任何資料都將遺失。當程序完成時，會將資訊發布到您為此警示設定的 SNS 主題。訂閱此 SNS 主題的所有使用者都將會收到電子郵件通知，其中包含復原嘗試的狀態和進一步的說明。您將會發現執行個體在已復原的執行個體上重新啟動。

復原動作只能用於 `StatusCheckFailed_System`，而非 `StatusCheckFailed_Instance`。

導致系統狀態檢查失敗的問題範例包括：
+ 網路連線中斷
+ 系統電力中斷
+ 實體主機的軟體問題
+ 實體主機上會影響網路連線的硬體問題

僅某些執行個體類型上支援復原動作。如需有關受支援的執行個體類型和其他需求的詳細資訊，請參閱[復原您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html)和[要求](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#requirements-for-recovery)。

**重要**  
為了避免重新啟動和復原動作之間的競爭情況，請避免為重新啟動警示和復原警示設定相同的評估期間。我們建議您將復原警示設定為兩個各一分鐘的評估期間，將重新啟動警示設定為三個各一分鐘的評估期間。

**若要使用 Amazon CloudWatch 主控台建立警示以復原執行個體**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇**建立警示** 。

1. 選擇**選取指標**，然後執行以下動作：

   1. 選擇 **EC2 指標**、**依執行個體指標**。

   1. 選取該執行個體的資料列以及 **StatusCheckFailed\$1System** 指標，然後選擇**選取指標**。

   1. 在統計資料中選擇 **Minimum (最小值)**。

   1. 選擇期間 (例如，**1 Minute**)。
**重要**  
為了避免重新啟動和復原動作之間的競爭情況，請避免為重新啟動警示和復原警示設定相同的評估期間。我們建議您將復原警示設定為兩個各一分鐘的評估期間。

1. 在**條件**下，執行下列動作：

   1. 在**閾值類型**下，選擇**靜態**。

   1. 在**任何時間**下，選擇**大於**，然後為**於...**輸入 **0**。

   1. 選擇**其他組態**，然後為**要警示的資料點**指定 2**/**2。

1. 選擇**下一步**。

1. 在**通知**下，執行以下動作：

   1. 針對 **Alarm state trigger** (警示狀態觸發)，選擇 **In Alarm** (警示中)。

   1. 對於**傳送通知至以下 SNS 主題**，選擇現有 SNS 主題或建立新的主題。

   1. 選擇 **Add EC2 Action** (新增 EC2 動作)。

   1. 針對 **Alarm state trigger** (警示狀態觸發)，選擇 **In Alarm** (警示中)。

   1. 對於**採取動作**，選擇**復原此執行個體**。

   1. 選擇**下一步**。

1. 對於**警示名稱**，輸入警示的唯一名稱 (例如 **Recover EC2 instance**) 和警示說明 (例如 **Recover EC2 instance when health checks fail**)。警示名稱只能包含 ASCII 字元。

1. 選擇**下一步**。

1. 選擇**建立警示** 。

## 檢視已觸發警示和動作的歷史記錄
<a name="ViewAlarmHistory"></a>

可在 Amazon CloudWatch 主控台中檢視警示和動作歷史記錄。Amazon CloudWatch 會保留過去 30 天的警示和動作歷史記錄。

**檢視已觸發警示和動作的歷史記錄**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms (警示)**，並選取警示。

1. 若要查看隨著時間轉換的最新狀態及指標值，請選擇 **Details (詳細資訊)**。

1. 若要查看最新的歷史記錄項目，請選擇 **History (歷史記錄)**。

# 警示事件和 EventBridge
<a name="cloudwatch-and-eventbridge"></a>

每當 CloudWatch 警示建立、更新、刪除或變更警示狀態時，CloudWatch 就會傳送事件至 Amazon EventBridge。您可以使用 Eventbridge 和這些事件來撰寫規則，以便在警示變更狀態時採取動作，例如通知您。如需詳細資訊，請參閱[什麼是 Amazon EventBridge？](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html)

CloudWatch 保證將警示狀態變更事件傳送至 Eventbridge。

## 警示狀態變更事件
<a name="CloudWatch-state-change-events"></a>

本節顯示警示狀態變更時，傳送至 EventBridge 的事件範例。選取一個索引標籤可檢視不同類型的警示狀態變更事件。

------
#### [ Single Metric Alarm ]

當單一指標警示變更狀態時產生的事件。這些事件包括附警示評估結果的 `state` 和 `previousState` 欄位。

```
{
    "version": "0",
    "id": "c4c1c1c9-6542-e61b-6ef0-8c4d36933a92",
    "detail-type": "CloudWatch Alarm State Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2019-10-02T17:04:40Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:ServerCpuTooHigh"
    ],
    "detail": {
        "alarmName": "ServerCpuTooHigh",
        "configuration": {
            "description": "Goes into alarm when server CPU utilization is too high!",
            "metrics": [
                {
                    "id": "30b6c6b2-a864-43a2-4877-c09a1afc3b87",
                    "metricStat": {
                        "metric": {
                            "dimensions": {
                                "InstanceId": "i-12345678901234567"
                            },
                            "name": "CPUUtilization",
                            "namespace": "AWS/EC2"
                        },
                        "period": 300,
                        "stat": "Average"
                    },
                    "returnData": true
                }
            ]
        },
        "previousState": {
            "reason": "Threshold Crossed: 1 out of the last 1 datapoints [0.0666851903306472 (01/10/19 13:46:00)] was not greater than the threshold (50.0) (minimum 1 datapoint for ALARM -> OK transition).",
            "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2019-10-01T13:56:40.985+0000\",\"startDate\":\"2019-10-01T13:46:00.000+0000\",\"statistic\":\"Average\",\"period\":300,\"recentDatapoints\":[0.0666851903306472],\"threshold\":50.0}",
            "timestamp": "2019-10-01T13:56:40.987+0000",
            "value": "OK"
        },
        "state": {
            "reason": "Threshold Crossed: 1 out of the last 1 datapoints [99.50160229693434 (02/10/19 16:59:00)] was greater than the threshold (50.0) (minimum 1 datapoint for OK -> ALARM transition).",
            "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2019-10-02T17:04:40.985+0000\",\"startDate\":\"2019-10-02T16:59:00.000+0000\",\"statistic\":\"Average\",\"period\":300,\"recentDatapoints\":[99.50160229693434],\"threshold\":50.0}",
            "timestamp": "2019-10-02T17:04:40.989+0000",
            "value": "ALARM"
        },
        "muteDetail": {
            "mutedByArn": "arn:aws:cloudwatch:us-east-1:1234567890:alarm-mute-rule:testMute",
            "muteWindowStart": "2026-01-01T10:00:00.000+0000",
            "muteWindowEnd": "2026-01-01T12:00:00.000+0000"
        }
    }
}
```

------
#### [ Metric Math Alarm ]

當指標數學警示變更狀態時產生的事件。這些事件包含 `configuration` 欄位中的數學表達式詳細資訊。

```
{
    "version": "0",
    "id": "2dde0eb1-528b-d2d5-9ca6-6d590caf2329",
    "detail-type": "CloudWatch Alarm State Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2019-10-02T17:20:48Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:TotalNetworkTrafficTooHigh"
    ],
    "detail": {
        "alarmName": "TotalNetworkTrafficTooHigh",
        "configuration": {
            "description": "Goes into alarm if total network traffic exceeds 10Kb",
            "metrics": [
                {
                    "expression": "SUM(METRICS())",
                    "id": "e1",
                    "label": "Total Network Traffic",
                    "returnData": true
                },
                {
                    "id": "m1",
                    "metricStat": {
                        "metric": {
                            "dimensions": {
                                "InstanceId": "i-12345678901234567"
                            },
                            "name": "NetworkIn",
                            "namespace": "AWS/EC2"
                        },
                        "period": 300,
                        "stat": "Maximum"
                    },
                    "returnData": false
                },
                {
                    "id": "m2",
                    "metricStat": {
                        "metric": {
                            "dimensions": {
                                "InstanceId": "i-12345678901234567"
                            },
                            "name": "NetworkOut",
                            "namespace": "AWS/EC2"
                        },
                        "period": 300,
                        "stat": "Maximum"
                    },
                    "returnData": false
                }
            ]
        },
        "previousState": {
            "reason": "Unchecked: Initial alarm creation",
            "timestamp": "2019-10-02T17:20:03.642+0000",
            "value": "INSUFFICIENT_DATA"
        },
        "state": {
            "reason": "Threshold Crossed: 1 out of the last 1 datapoints [45628.0 (02/10/19 17:10:00)] was greater than the threshold (10000.0) (minimum 1 datapoint for OK -> ALARM transition).",
            "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2019-10-02T17:20:48.551+0000\",\"startDate\":\"2019-10-02T17:10:00.000+0000\",\"period\":300,\"recentDatapoints\":[45628.0],\"threshold\":10000.0}",
            "timestamp": "2019-10-02T17:20:48.554+0000",
            "value": "ALARM"
        },
        "muteDetail": {
            "mutedByArn": "arn:aws:cloudwatch:us-east-1:1234567890:alarm-mute-rule:testMute",
            "muteWindowStart": "2026-01-01T10:00:00.000+0000",
            "muteWindowEnd": "2026-01-01T12:00:00.000+0000"
        }
    }
}
```

------
#### [ Anomaly Detection Alarm ]

當異常偵測警示變更狀態時產生的事件。這些事件包括 `reasonData` 欄位中的閾值上限和下限。

```
{
    "version": "0",
    "id": "daafc9f1-bddd-c6c9-83af-74971fcfc4ef",
    "detail-type": "CloudWatch Alarm State Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2019-10-03T16:00:04Z",
    "region": "us-east-1",
    "resources": ["arn:aws:cloudwatch:us-east-1:123456789012:alarm:EC2 CPU Utilization Anomaly"],
    "detail": {
        "alarmName": "EC2 CPU Utilization Anomaly",
        "state": {
            "value": "ALARM",
            "reason": "Thresholds Crossed: 1 out of the last 1 datapoints [0.0 (03/10/19 15:58:00)] was less than the lower thresholds [0.020599444741798756] or greater than the upper thresholds [0.3006915352732461] (minimum 1 datapoint for OK -> ALARM transition).",
            "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2019-10-03T16:00:04.650+0000\",\"startDate\":\"2019-10-03T15:58:00.000+0000\",\"period\":60,\"recentDatapoints\":[0.0],\"recentLowerThresholds\":[0.020599444741798756],\"recentUpperThresholds\":[0.3006915352732461]}",
            "timestamp": "2019-10-03T16:00:04.653+0000"
        },
        "previousState": {
            "value": "OK",
            "reason": "Thresholds Crossed: 1 out of the last 1 datapoints [0.166666666664241 (03/10/19 15:57:00)] was not less than the lower thresholds [0.0206719426210418] or not greater than the upper thresholds [0.30076870222143803] (minimum 1 datapoint for ALARM -> OK transition).",
            "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2019-10-03T15:59:04.670+0000\",\"startDate\":\"2019-10-03T15:57:00.000+0000\",\"period\":60,\"recentDatapoints\":[0.166666666664241],\"recentLowerThresholds\":[0.0206719426210418],\"recentUpperThresholds\":[0.30076870222143803]}",
            "timestamp": "2019-10-03T15:59:04.672+0000"
        },
        "muteDetail": {
            "mutedByArn": "arn:aws:cloudwatch:us-east-1:1234567890:alarm-mute-rule:testMute",
            "muteWindowStart": "2026-01-01T10:00:00.000+0000",
            "muteWindowEnd": "2026-01-01T12:00:00.000+0000"
        },
        "configuration": {
            "description": "Goes into alarm if CPU Utilization is out of band",
            "metrics": [{
                "id": "m1",
                "metricStat": {
                    "metric": {
                        "namespace": "AWS/EC2",
                        "name": "CPUUtilization",
                        "dimensions": {
                            "InstanceId": "i-12345678901234567"
                        }
                    },
                    "period": 60,
                    "stat": "Average"
                },
                "returnData": true
            }, {
                "id": "ad1",
                "expression": "ANOMALY_DETECTION_BAND(m1, 0.8)",
                "label": "CPUUtilization (expected)",
                "returnData": true
            }]
        }
    }
}
```

------
#### [ Composite Alarm ]

複合警示變更狀態時產生的事件。這些事件包括 `actionsSuppressedBy` 和 `actionsSuppressedReason` 欄位中的抑制資訊。

```
{
    "version": "0",
    "id": "d3dfc86d-384d-24c8-0345-9f7986db0b80",
    "detail-type": "CloudWatch Alarm State Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2022-07-22T15:57:45Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:ServiceAggregatedAlarm"
    ],
    "detail": {
        "alarmName": "ServiceAggregatedAlarm",
        "state": {
            "actionsSuppressedBy": "WaitPeriod",
            "actionsSuppressedReason": "Actions suppressed by WaitPeriod",
            "value": "ALARM",
            "reason": "arn:aws:cloudwatch:us-east-1:123456789012:alarm:SuppressionDemo.EventBridge.FirstChild transitioned to ALARM at Friday 22 July, 2022 15:57:45 UTC",
            "reasonData": "{\"triggeringAlarms\":[{\"arn\":\"arn:aws:cloudwatch:us-east-1:123456789012:alarm:ServerCpuTooHigh\",\"state\":{\"value\":\"ALARM\",\"timestamp\":\"2022-07-22T15:57:45.394+0000\"}}]}",
            "timestamp": "2022-07-22T15:57:45.394+0000"
        },
        "previousState": {
            "value": "OK",
            "reason": "arn:aws:cloudwatch:us-east-1:123456789012:alarm:SuppressionDemo.EventBridge.Main was created and its alarm rule evaluates to OK",
            "reasonData": "{\"triggeringAlarms\":[{\"arn\":\"arn:aws:cloudwatch:us-east-1:123456789012:alarm:TotalNetworkTrafficTooHigh\",\"state\":{\"value\":\"OK\",\"timestamp\":\"2022-07-14T16:28:57.770+0000\"}},{\"arn\":\"arn:aws:cloudwatch:us-east-1:123456789012:alarm:ServerCpuTooHigh\",\"state\":{\"value\":\"OK\",\"timestamp\":\"2022-07-14T16:28:54.191+0000\"}}]}",
            "timestamp": "2022-07-22T15:56:14.552+0000"
        },
        "configuration": {
            "alarmRule": "ALARM(ServerCpuTooHigh) OR ALARM(TotalNetworkTrafficTooHigh)",
            "actionsSuppressor": "ServiceMaintenanceAlarm",
            "actionsSuppressorWaitPeriod": 120,
            "actionsSuppressorExtensionPeriod": 180
        },
        "muteDetail": {
            "mutedByArn": "arn:aws:cloudwatch:us-east-1:1234567890:alarm-mute-rule:testMute",
            "muteWindowStart": "2026-01-01T10:00:00.000+0000",
            "muteWindowEnd": "2026-01-01T12:00:00.000+0000"
        }
    }
}
```

------
#### [ Multi Time Series Alarm ]

 警示提供者或警示變更狀態時產生的事件。警示提供者狀態變更事件包含警示提供者的 ID 和屬性，以及超過閾值的最新資料點。警示狀態變更事件具有導致警示在狀態原因中轉換的貢獻者數目摘要。

**警示提供者範例**

```
{
  "version": "0",
  "id": "6d226bbc-07f0-9a31-3359-1736968f8ded",
  "detail-type": "CloudWatch Alarm Contributor State Change",
  "source": "aws.cloudwatch",
  "account": "123456789012",
  "time": "2025-12-01T13:42:04Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:cloudwatch:us-east-1:123456789012:alarm:DynamoDBInsightsAlarm"
  ],
  "detail": {
    "alarmName": "DynamoDBInsightsAlarm",
    "alarmContributor": {
      "id": "6d442278dba546f6",
      "attributes": {
        "TableName": "example-dynamodb-table-name"
      }
    },
    "state": {
      "value": "ALARM",
      "reason": "Threshold Crossed: 1 datapoint was less than the threshold (1.0). The most recent datapoint which crossed the threshold: [0.0 (01/12/25 13:34:00)].",
      "timestamp": "2025-12-01T13:42:04.919+0000"
    },
    "configuration": {
      "metrics": [
        {
          "id": "m1",
          "expression": "SELECT AVG(ConsumedWriteCapacityUnits) FROM \"AWS/DynamoDB\" GROUP BY TableName ORDER BY MAX() DESC",
          "returnData":true,
          "period": 60
        }
      ],
      "description": "Metrics Insights alarm for DynamoDB ConsumedWriteCapacity per TableName"
    },
    "muteDetail": {
        "mutedByArn": "arn:aws:cloudwatch:us-east-1:1234567890:alarm-mute-rule:testMute",
        "muteWindowStart": "2026-01-01T10:00:00.000+0000",
        "muteWindowEnd": "2026-01-01T12:00:00.000+0000"
    }
  }
}
```

**警示範例**

```
{
  "version": "0",
  "id": "80ddd249-dedf-7c4d-0708-0eb78132dd78",
  "detail-type": "CloudWatch Alarm State Change",
  "source": "aws.cloudwatch",
  "account": "123456789012",
  "time": "2025-12-01T13:42:04Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:cloudwatch:us-east-1:123456789012:alarm:DynamoDBInsightsAlarm"
  ],
  "detail": {
    "alarmName": "DynamoDBInsightsAlarm",
    "state": {
      "value": "ALARM",
      "reason": "6 out of 6 time series evaluated to ALARM",
      "timestamp": "2025-12-01T13:42:04.919+0000"
    },
    "previousState": {
      "value": "INSUFFICIENT_DATA",
      "reason": "Unchecked: Initial alarm creation",
      "timestamp": "2025-12-01T13:40:50.600+0000"
    },
    "configuration": {
      "metrics": [
        {
          "id": "m1",
          "expression": "SELECT AVG(ConsumedWriteCapacityUnits) FROM \"AWS/DynamoDB\" GROUP BY TableName ORDER BY MAX() DESC",
          "returnData": true,
          "period": 60
        }
      ],
      "description": "Metrics Insights alarm for DynamoDB ConsumedWriteCapacity per TableName"
    }
  }
}
```

------

## 警示組態變更事件
<a name="CloudWatch-config-change-events"></a>

本節顯示警示組態變更時，傳送至 EventBridge 的事件範例。組態變更包括建立、更新或刪除警示。

------
#### [ Creation Events ]

建立新警示時產生的事件。這些事件包括 `configuration` 欄位中的初始警示組態，並將 `operation` 設定為「建立」。

**複合警示範例**

```
{
    "version": "0",
    "id": "91535fdd-1e9c-849d-624b-9a9f2b1d09d0",
    "detail-type": "CloudWatch Alarm Configuration Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2022-03-03T17:06:22Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:ServiceAggregatedAlarm"
    ],
    "detail": {
        "alarmName": "ServiceAggregatedAlarm",
        "operation": "create",
        "state": {
            "value": "INSUFFICIENT_DATA",
            "timestamp": "2022-03-03T17:06:22.289+0000"
        },
        "configuration": {
            "alarmRule": "ALARM(ServerCpuTooHigh) OR ALARM(TotalNetworkTrafficTooHigh)",
            "alarmName": "ServiceAggregatedAlarm",
            "description": "Aggregated monitor for instance",
            "actionsEnabled": true,
            "timestamp": "2022-03-03T17:06:22.289+0000",
            "okActions": [],
            "alarmActions": [],
            "insufficientDataActions": []
        }
    }
}
```

**搭配抑制器的複合警示範例**

```
{
    "version": "0",
    "id": "454773e1-09f7-945b-aa2c-590af1c3f8e0",
    "detail-type": "CloudWatch Alarm Configuration Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2022-07-14T13:59:46Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:ServiceAggregatedAlarm"
    ],
    "detail": {
        "alarmName": "ServiceAggregatedAlarm",
        "operation": "create",
        "state": {
            "value": "INSUFFICIENT_DATA",
            "timestamp": "2022-07-14T13:59:46.425+0000"
        },
        "configuration": {
            "alarmRule": "ALARM(ServerCpuTooHigh) OR ALARM(TotalNetworkTrafficTooHigh)",
            "actionsSuppressor": "ServiceMaintenanceAlarm",
            "actionsSuppressorWaitPeriod": 120,
            "actionsSuppressorExtensionPeriod": 180,
            "alarmName": "ServiceAggregatedAlarm",
            "actionsEnabled": true,
            "timestamp": "2022-07-14T13:59:46.425+0000",
            "okActions": [],
            "alarmActions": [],
            "insufficientDataActions": []
        }
    }
}
```

------
#### [ Update Events ]

修改現有警示時產生的事件。這些事件同時包含 `configuration` 和 `previousConfiguration` 欄位，用以顯示有哪些變更。

**指標警示範例**

```
{
    "version": "0",
    "id": "bc7d3391-47f8-ae47-f457-1b4d06118d50",
    "detail-type": "CloudWatch Alarm Configuration Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2022-03-03T17:06:34Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:ServerCpuTooHigh"
    ],
    "detail": {
        "alarmName": "ServerCpuTooHigh",
        "operation": "update",
        "state": {
            "value": "INSUFFICIENT_DATA",
            "timestamp": "2022-03-03T17:06:13.757+0000"
        },
        "configuration": {
            "evaluationPeriods": 1,
            "threshold": 80,
            "comparisonOperator": "GreaterThanThreshold",
            "treatMissingData": "ignore",
            "metrics": [
                {
                    "id": "86bfa85f-b14c-ebf7-8916-7da014ce23c0",
                    "metricStat": {
                        "metric": {
                            "namespace": "AWS/EC2",
                            "name": "CPUUtilization",
                            "dimensions": {
                                "InstanceId": "i-12345678901234567"
                            }
                        },
                        "period": 300,
                        "stat": "Average"
                    },
                    "returnData": true
                }
            ],
            "alarmName": "ServerCpuTooHigh",
            "description": "Goes into alarm when server CPU utilization is too high!",
            "actionsEnabled": true,
            "timestamp": "2022-03-03T17:06:34.267+0000",
            "okActions": [],
            "alarmActions": [],
            "insufficientDataActions": []
        },
        "previousConfiguration": {
            "evaluationPeriods": 1,
            "threshold": 70,
            "comparisonOperator": "GreaterThanThreshold",
            "treatMissingData": "ignore",
            "metrics": [
                {
                    "id": "d6bfa85f-893e-b052-a58b-4f9295c9111a",
                    "metricStat": {
                        "metric": {
                            "namespace": "AWS/EC2",
                            "name": "CPUUtilization",
                            "dimensions": {
                                "InstanceId": "i-12345678901234567"
                            }
                        },
                        "period": 300,
                        "stat": "Average"
                    },
                    "returnData": true
                }
            ],
            "alarmName": "ServerCpuTooHigh",
            "description": "Goes into alarm when server CPU utilization is too high!",
            "actionsEnabled": true,
            "timestamp": "2022-03-03T17:06:13.757+0000",
            "okActions": [],
            "alarmActions": [],
            "insufficientDataActions": []
        }
    }
}
```

**搭配抑制器的指標警示範例**

```
    {
    "version": "0",
    "id": "4c6f4177-6bd5-c0ca-9f05-b4151c54568b",
    "detail-type": "CloudWatch Alarm Configuration Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2022-07-14T13:59:56Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:ServiceAggregatedAlarm"
    ],
    "detail": {
        "alarmName": "ServiceAggregatedAlarm",
        "operation": "update",
        "state": {
            "actionsSuppressedBy": "WaitPeriod",
            "value": "ALARM",
            "timestamp": "2022-07-14T13:59:46.425+0000"
        },
        "configuration": {
            "alarmRule": "ALARM(ServerCpuTooHigh) OR ALARM(TotalNetworkTrafficTooHigh)",
            "actionsSuppressor": "ServiceMaintenanceAlarm",
            "actionsSuppressorWaitPeriod": 120,
            "actionsSuppressorExtensionPeriod": 360,
            "alarmName": "ServiceAggregatedAlarm",
            "actionsEnabled": true,
            "timestamp": "2022-07-14T13:59:56.290+0000",
            "okActions": [],
            "alarmActions": [], Remove 
            "insufficientDataActions": []
        },
        "previousConfiguration": {
            "alarmRule": "ALARM(ServerCpuTooHigh) OR ALARM(TotalNetworkTrafficTooHigh)",
            "actionsSuppressor": "ServiceMaintenanceAlarm",
            "actionsSuppressorWaitPeriod": 120,
            "actionsSuppressorExtensionPeriod": 180,
            "alarmName": "ServiceAggregatedAlarm",
            "actionsEnabled": true,
            "timestamp": "2022-07-14T13:59:46.425+0000",
            "okActions": [],
            "alarmActions": [],
            "insufficientDataActions": []
        }
    }
}
```

------
#### [ Deletion Events ]

刪除警示時產生的事件。這些事件包括最終警示組態，並將 `operation` 設定為「刪除」。

**指標數學警示範例**

```
{
    "version": "0",
    "id": "f171d220-9e1c-c252-5042-2677347a83ed",
    "detail-type": "CloudWatch Alarm Configuration Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2022-03-03T17:07:13Z",
    "region": "us-east-*",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:TotalNetworkTrafficTooHigh"
    ],
    "detail": {
        "alarmName": "TotalNetworkTrafficTooHigh",
        "operation": "delete",
        "state": {
            "value": "INSUFFICIENT_DATA",
            "timestamp": "2022-03-03T17:06:17.672+0000"
        },
        "configuration": {
            "evaluationPeriods": 1,
            "threshold": 10000,
            "comparisonOperator": "GreaterThanThreshold",
            "treatMissingData": "ignore",
            "metrics": [{
                    "id": "m1",
                    "metricStat": {
                        "metric": {
                            "namespace": "AWS/EC2",
                            "name": "NetworkIn",
                            "dimensions": {
                                "InstanceId": "i-12345678901234567"
                            }
                        },
                        "period": 300,
                        "stat": "Maximum"
                    },
                    "returnData": false
                },
                {
                    "id": "m2",
                    "metricStat": {
                        "metric": {
                            "namespace": "AWS/EC2",
                            "name": "NetworkOut",
                            "dimensions": {
                                "InstanceId": "i-12345678901234567"
                            }
                        },
                        "period": 300,
                        "stat": "Maximum"
                    },
                    "returnData": false
                },
                {
                    "id": "e1",
                    "expression": "SUM(METRICS())",
                    "label": "Total Network Traffic",
                    "returnData": true
                }
            ],
            "alarmName": "TotalNetworkTrafficTooHigh",
            "description": "Goes into alarm if total network traffic exceeds 10Kb",
            "actionsEnabled": true,
            "timestamp": "2022-03-03T17:06:17.672+0000",
            "okActions": [],
            "alarmActions": [],
            "insufficientDataActions": []
        }
    }
}
```

**搭配抑制器的指標數學警示範例**

```
{
    "version": "0",
    "id": "e34592a1-46c0-b316-f614-1b17a87be9dc",
    "detail-type": "CloudWatch Alarm Configuration Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2022-07-14T14:00:01Z",
    "region": "us-east-*",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:ServiceAggregatedAlarm"
    ],
    "detail": {
        "alarmName": "ServiceAggregatedAlarm",
        "operation": "delete",
        "state": {
            "actionsSuppressedBy": "WaitPeriod",
            "value": "ALARM",
            "timestamp": "2022-07-14T13:59:46.425+0000"
        },
        "configuration": {
            "alarmRule": "ALARM(ServerCpuTooHigh) OR ALARM(TotalNetworkTrafficTooHigh)",
            "actionsSuppressor": "ServiceMaintenanceAlarm",
            "actionsSuppressorWaitPeriod": 120,
            "actionsSuppressorExtensionPeriod": 360,
            "alarmName": "ServiceAggregatedAlarm",
            "actionsEnabled": true,
            "timestamp": "2022-07-14T13:59:56.290+0000",
            "okActions": [],
            "alarmActions": [],
            "insufficientDataActions": []
        }
    }
}
```

------

# 設定警示靜音規則
<a name="alarm-mute-rules-configure"></a>

 本節中的步驟說明如何使用 CloudWatch 主控台建立警示靜音規則。您也可以使用 API 或 AWS CLI 來建立警示靜音規則。如需詳細資訊，請參閱 [PutAlarmMuteRule](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutAlarmMuteRule.html)。

**建立警示靜音規則**

1.  透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1.  在導覽窗格中，選擇**警示**，然後選擇**靜音規則**索引標籤 

1.  按一下**建立警示靜音規則**按鈕，這會開啟精靈 

1.  在**警示靜音規則詳細資訊**區段下，輸入警示靜音規則的名稱和選用描述 

1.  在**排程模式**區段下，選擇一次或重複排程 

   1.  如果您選擇一次性出現，

      1.  選取要套用靜音排程的時區 

      1.  選擇開始日期和時間，以定義何時應該啟用靜音規則 

      1.  選擇結束日期和時間，以定義靜音規則應何時過期 

   1.  如果您選擇週期性排程，您將有兩個選項。使用主控台表單或使用 cron 表達式來設定週期性時間排程。

      1.  在**排程建立類型**下，選擇「指定日期、時間和循環」以使用主控台表單 

         1.  選擇要套用靜音規則的時區 

         1.  選擇**開始日期和時間**，以定義何時應該啟用靜音規則 

         1.  選擇**持續時間**，以定義靜音規則應持續啟用一次的時間 

         1.  選擇**重複**，以定義排程應如何像每天、每月、每個週末或一週內特定日子一樣重複。

         1.  選擇選用**直到**，以定義靜音排程何時過期。預設選項為「無限期」 

      1.  在**排程建立類型**下，選擇「從 Cron 運算式設定」，以使用 Cron 運算式設定排程 

         1.  在 **Cron 表達**式區段下，輸入所需的 Cron 表達式值。

         1.  選擇**持續時間**，以定義靜音規則應持續啟用一次的時間 

         1.  在選用**的時間範圍**區段下，輸入選用的開始和結束日期和時間，以定義何時應該啟用和過期靜音排程。

1.  在**目標警示**區段下，從您要套用此靜音規則的下拉式清單中選擇警示 

1.  在**設定靜音規則的標籤**區段下，將標籤連接至警示靜音規則。標籤是套用至資源的鍵/值對，用於保留該資源的中繼資料。如需詳細資訊，請參閱[什麼是標籤？](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html) 

1.  選取**建立警示靜音規則**按鈕以建立靜音規則 

## 快速靜音
<a name="quick-mutes"></a>

 警示可以在短時間內新增，如下所示：

1.  透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1.  在導覽窗格中，選擇**警示** 

1.  從清單中選擇您要靜音的警示 

1.  在**動作**功能表下選擇**靜音** 

1.  在**快速靜音**區段下，選擇預先定義的時段 15 分鐘、1 小時、3 小時，或選取**靜音直到**設定所需的時段 

1.  按一下**確認**以立即將警示靜音，直到所選時段為止 

## 將警示新增至現有的靜音規則
<a name="add-alarms-to-existing-rules"></a>

 警示可以新增至現有的靜音規則，如下所示：

1.  透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1.  在導覽窗格中，選擇**警示** 

1.  從清單中選擇您要靜音的警示 

1.  在**動作**功能表下選擇**靜音** 

1.  選擇**套用現有的靜音規則**，這會開啟精靈 

1.  從您要新增警示的下拉式清單中選取靜音規則 

1.  按一下**套用** 

**注意**  
 警示詳細資訊頁面也提供快速靜音並將警示新增至現有靜音規則選項。詳細資訊頁面中的**靜音規則**索引標籤會顯示與警示相關聯的所有靜音規則。

# 管理警示
<a name="Manage-CloudWatch-Alarm"></a>

**Topics**
+ [編輯或刪除 CloudWatch 警示](Edit-CloudWatch-Alarm.md)
+ [隱藏 Auto Scaling 警示](hide-autoscaling-alarms.md)
+ [警示和標記](CloudWatch_alarms_and_tagging.md)
+ [檢視和管理靜音警示](viewing-managing-muted-alarms.md)

# 編輯或刪除 CloudWatch 警示
<a name="Edit-CloudWatch-Alarm"></a>

您可以編輯或刪除現有警示。

您無法變更現有警示的名稱。您可以複製警示並給予新的警示不同名稱。若要複製警示，請在警示清單中選取警示名稱旁的核取方塊，然後選擇 **Action (動作)**、**Copy (複製)**。

**編輯警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇警示的名稱。

1. 若要新增或移除標籤，請選擇**標籤**索引標籤，然後選擇**管理標籤**。

1. 若要編輯警示的其他部分，請選擇**動作**、**編輯**。

   **Specify metric and conditions (指定指標和條件)** 頁面隨即出現，顯示您所選取指標和統計資料的圖形及其他資訊。

1. 若要變更指標，請選擇 **Edit (編輯)**、**All metrics (所有指標)** 標籤，然後執行以下其中一項作業：
   + 選擇包含您所需指標的服務命名空間。繼續選擇出現的選項以縮減選擇。出現指標清單時，請選取您所需指標旁的核取方塊。
   + 在搜尋方塊中，輸入指標名稱、維度或資源 ID，然後按 Enter。然後，選擇其中一個結果，並繼續進行直到出現指標清單為止。選取您所需指標旁的核取方塊。

   選擇**選取指標**。

1. 若要變更警示的其他方面，請選擇適當的選項。若要變更必須要有多少資料點違規，才會使警示移至 `ALARM` 狀態，或是變更處理遺失資料的方式，請選擇 **Additional configuration (其他組態)**。

1. 選擇**下一步**。

1. 在 **Notification (通知)**、**Auto Scaling action (Auto Scaling 動作)** 及 **EC2 action (EC2 動作)** 下，選擇性地編輯觸發警示時的動作。然後選擇**下一步**。

1. 您也可以選用地變更警示描述。

   您無法變更現有警示的名稱。您可以複製警示並給予新的警示不同名稱。若要複製警示，請在警示清單中選取警示名稱旁的核取方塊，然後選擇 **Action (動作)**、**Copy (複製)**。

1. 選擇**下一步**。

1. 在 **Preview and create (預覽並建立)** 下，確認資訊和條件是您希望的內容，然後選擇 **Update alarm (更新警示)**。

**若要更新使用 Amazon SNS 主控台建立的電子郵件通知清單**

1. 在 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 開啟 Amazon SNS 主控台。

1. 在導覽窗格中，選擇 **Topics (主題)**，然後選取通知清單 (主題) 的 ARN。

1. 執行以下任意一項：
   + 若要新增電子郵件地址，選擇 **Create subscription (建立訂閱)**。對於**通訊協定**，選擇**電子郵件**。針對 **Endpoint (端點)**，輸入新收件人的電子郵件地址。選擇**建立訂閱**。
   + 若要移除電子郵件地址，選擇 **Subscription ID (訂閱 ID)**。選擇 **Other subscription actions (其他訂閱動作)**、**Delete subscriptions (刪除訂閱)**。

1. 選擇 **Publish to topic (發布至主題)**。

**刪除警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)。

1. 選取警示名稱左側的核取方塊，然後選擇 **Actions (動作)**、**Delete (刪除)**。

1. 選擇**刪除**。

# 隱藏 Auto Scaling 警示
<a name="hide-autoscaling-alarms"></a>

在 中檢視警示時 AWS 管理主控台，您可以隱藏與 Amazon EC2 Auto Scaling 和 Application Auto Scaling 相關的警示。這項功能只在 AWS 管理主控台中可供使用。

**暫時隱藏 Auto Scaling 警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中選擇 **Alarms** (警示)、**All alarms** (所有警示)，然後選取 **Hide all AutoScaling alarms** (隱藏所有 AutoScaling 警示)。

# 警示和標記
<a name="CloudWatch_alarms_and_tagging"></a>

*標籤*是索引鍵/值對，可協助您整理並歸類資源。您也可以使用這些標籤，僅授予使用者存取或變更具備特定標籤值資源的許可，來設定使用者許可的範圍。如需標記資源的一般資訊，請參閱[標記 AWS 資源](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)

下列清單進一步詳細說明標記如何搭配 CloudWatch 警示運作。
+ 若要能夠設定或更新 CloudWatch 資源的標籤，必須登入具有 `cloudwatch:TagResource` 許可的帳戶。例如，若要建立警示並為其設定標籤，除 `cloudwatch:TagResource` 許可之外，還必須擁有 `the cloudwatch:PutMetricAlarm ` 許可。我們建議您確保組織中任何將建立或更新 CloudWatch 資源的人員都擁有 `cloudwatch:TagResource` 許可。
+ 標籤可用於標籤型授權控制。例如，IAM 使用者或角色許可可能包含根據標籤限制 CloudWatch 呼叫特定資源的條件。不過，請謹記以下幾點
  + 名稱開頭為 `aws:` 的標籤無法用於標籤型授權控制。
  + 複合警示不支援標籤型授權控制。

# 檢視和管理靜音警示
<a name="viewing-managing-muted-alarms"></a>

 **檢視靜音警示：**您可以輕鬆識別目前透過 CloudWatch 主控台靜音的警示。在警示清單檢視和個別警示詳細資訊頁面中，警示旁邊的靜音圖示，其動作目前正由作用中的靜音規則靜音。此視覺化指標可協助您快速了解哪些警示動作目前處於靜音狀態，直到靜音視窗過期為止。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/alarm_mute_rules_icon.png)


 **警示時間軸：**CloudWatch 警示主控台提供完整的時間軸檢視，顯示警示動作何時靜音。此時間軸會顯示警示狀態變更的靜音期間，讓您同時擁有警示行為和靜音活動的完整歷史檢視。您可以使用此時間軸來分析靜音規則的有效性，並了解它們如何與您的營運活動相互關聯。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/alarm-mutes-timelineview.png)


 **以程式設計方式檢查警示靜音狀態：**若要以程式設計方式判斷警示目前是否靜音，您可以使用 [ListAlarmMuteRules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListAlarmMuteRules.html) API 搭配警示名稱做為篩選條件。此 API 會傳回所有會影響指定警示的作用中靜音規則，讓您可以將靜音狀態檢查整合至自動化工作流程、監控儀表板或操作工具。

 例如：若要檢查名為 "HighCPUAlarm" 的警示目前是否靜音，請呼叫 [ListAlarmMuteRules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListAlarmMuteRules.html) API，並將篩選條件參數設定為警示名稱。回應將包含以該警示為目標的所有靜音規則，以及其目前狀態 （排程、ACTIVE 或 EXPIRED)。

 **警示歷史記錄：**每當警示動作因為作用中的靜音規則而靜音時，CloudWatch 會將歷史記錄項目寫入警示的歷史記錄日誌。這可提供警示靜音時的完整稽核線索，協助您了解靜音事件的時間軸，並將其與操作活動建立關聯。您可以透過 CloudWatch 主控台檢視此歷史記錄，或使用 [DescribeAlarmHistory](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarmHistory.html) API 以程式設計方式擷取。

**注意**  
 當多個警示靜音規則同時處於作用中狀態時，最近建立的靜音規則名稱會寫入警示歷史記錄，以及其他作用中靜音規則的總數。
 只有在作用中的靜音時段期間發生警示狀態轉換，且動作無法執行時，時間軸才會顯示靜音期間。

**提示**  
 您可以使用 CloudWatch API 以程式設計方式管理警示靜音規則。如需詳細資訊，請參閱 [PutAlarmMuteRule](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutAlarmMuteRule.html)、[GetAlarmMuteRule](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetAlarmMuteRule.html)、[ListAlarmMuteRules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListAlarmMuteRules.html) 和 [DeleteAlarmMuteRule](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DeleteAlarmMuteRule.html)。

## CloudWatch 警示的常見功能
<a name="common-features-of-alarms"></a>

下列功能適用於所有 CloudWatch 警示：
+ 您可建立的警示數量沒有限制。若要建立或更新警示，您可以使用 CloudWatch 主控台、[PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) API 動作或 AWS CLI中的 [put-metric-](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)命令。
+ 警示名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。
+ 您可以列出任何或所有目前設定的警示，並使用 CloudWatch 主控台、[DescribeAlarms](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html) API 動作或 AWS CLI中的 [describe-alarms](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/describe-alarms.html) 命令，列出任何特定狀態中的警示。
+ 您可以透過使用 [DisableAlarmActions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DisableAlarmActions.html) 和 [EnableAlarmActions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_EnableAlarmActions.html) API 動作，或是 AWS CLI中的 [disable-alarm-actions](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/disable-alarm-actions.html) 和 [enable-alarm-actions](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/enable-alarm-actions.html) 命令，停用和啟用警示動作。
+ 您可以透過使用 [SetAlarmState](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_SetAlarmState.html) API 動作或 AWS CLI中的 [set-alarm-state](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/set-alarm-state.html) 命令將警示設定為任何狀態，進而測試警示。此臨時狀態變更只持續直到下一個警示比較發生為止。
+ 您可以在建立自訂指標之前，為自訂指標建立警示。若要讓警示有效，您必須包含自訂指標的所有維度，除了在警示定義中的指標命名空間和指標名稱。若要執行此操作，您可以使用 [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) API 動作，或 AWS CLI中的 [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) 命令。
+ 您可以使用 CloudWatch 主控台、[DescribeAlarmHistory](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarmHistory.html) API 動作，或 AWS CLI中的 [describe-alarm-history](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/describe-alarm-history.html) 命令，查看警示的歷史記錄。CloudWatch 會保留警示歷史記錄 30 天。每個狀態轉換都標示有唯一時間戳記。在極少數情況下，您歷史記錄可能會顯示一個以上的狀態變更通知。時間戳記可讓您確認獨特的狀態變更。
+  您可以在 CloudWatch 主控台導覽窗格中，從 *Favorites and recents* (我的最愛和最近的項目) 選項將警示加入我的最愛，方法是將滑鼠停留在您想要加入我的最愛的警示上，然後選擇旁邊的星號。
+ 警示設有評估期間配額。評估期間的計算方法是，將警示期間乘以所用評估期間的數目。
  + 對於期間至少為一小時 (3600 秒) 的警示，評估期間上限為七天。
  + 對於期間較短的警示，評估期間上限為一天。
  + 對於使用自訂 Lambda 資料來源的警示，評估期間上限為一天。

**注意**  
在某些情況下，某些 AWS 資源不會將指標資料傳送至 CloudWatch。  
例如，Amazon EBS 可能不會傳送並未連接到 Amazon EC2 執行個體可用磁碟區的指標資料，因為針對該磁碟區沒有要監控的指標活動。若您有為這類指標設定警示，您可能會注意到其狀態變更為 `INSUFFICIENT_DATA`。這可能表示您的資源並未處在作用中，而不一定表示發生問題。您可以指定每個警示要如何處理遺失的資料。如需詳細資訊，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

# AWS 服務的最佳實務警示建議
<a name="Best-Practice-Alarms"></a>

CloudWatch 提供立即可用的警示建議。這些是 CloudWatch 警示，我們建議您為其他 AWS 服務發佈的指標建立 。這些建議可協助您識別應設定警示的指標，以遵循監控的最佳實務。這些建議也會建議要設定的警示閾值。遵循這些建議有助於讓您不會錯過對 AWS 基礎設施的重要監控。

若要尋找警示建議，請使用 CloudWatch 主控台的指標區段，然後選取警示建議篩選條件切換。如果您在主控台中導覽至建議的警示，然後建立建議的警示，則 CloudWatch 可預先填入部分警示設定。針對某些建議的警示，也會預先填入警示閾值。您也可以使用主控台下載建議警示的infrastructure-as-code警示定義，然後使用此程式碼在 AWS CloudFormation、 AWS CLI或 Terraform 中建立警示。

也可以在 [建議的警示](Best_Practice_Recommended_Alarms_AWS_Services.md) 中查看建議的警示清單。

您需要為建立的警示付費，費率與您在 CloudWatch 中建立的任何其他警示的費率相同。使用建議不會產生額外費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

## 尋找並建立建議的警示
<a name="Best-Practice-Alarms-create"></a>

請遵循下列步驟，尋找 CloudWatch 建議您設定警示的指標，並選擇性地建立其中一個警示。第一個程序說明如何尋找具有建議警示的指標，以及如何建立其中一個警示。

您也可以大量下載 AWS 命名空間中所有建議警示的infrastructure-as-code警示定義，例如 `AWS/Lambda`或 `AWS/S3`。本主題稍後將會介紹這些指令。

**尋找建議警示的指標，並建立單一建議警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Metrics** (指標)、**All metrics** (所有指標)。

1. 在**指標**資料表上方，選擇**警示建議**。

   系統會篩選指標命名空間清單，以僅包括具有警示建議的指標，以及您帳戶中正在發布的服務。

1. 選擇服務的命名空間。

   系統會篩選此命名空間下的指標清單，以僅包含具有警示建議的指標。

1. 若要查看指標的警示目的和建議的閾值，請選擇**檢視詳細資訊**。

1. 若要為其中一個指標建立警示，請執行下列其中一項操作：
   + 若要使用主控台建立警示，請執行下列操作：

     1. 選取指標的核取方塊，然後選擇**圖形化指標**索引標籤。

     1. 選擇警示圖示。  
![\[從圖表化指標建立警示\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/metric_graph_alarm.png)

        警示建立精靈即會出現，並根據警示建議填入指標名稱、統計資料和期間。如果建議包括特定閾值，則還會預先填入該值。

     1. 選擇**下一步**。

     1. 在**通知**下，選取 SNS 主題，以便在警示轉換為 `ALARM` 狀態、`OK` 狀態或 `INSUFFICIENT_DATA` 狀態時進行通知。

        若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification (新增通知)**。

        若要讓警示不傳送通知，請選擇 **Remove (移動)**。

     1. 若要讓警示執行 Auto Scaling 或 EC2 動作，請選擇適當的按鈕，然後選擇警示狀態及要執行的動作。

     1. 完成時，請選擇**下一步**。

     1. 輸入警示的名稱與說明。名稱只能包含 ASCII 字元。然後選擇**下一步**。

     1. 在 **Preview and create (預覽及建立)** 下，請確認資訊和條件都是您希望的內容，然後選擇 **Create alarm (建立警示)**。
   + 若要下載要在 AWS CloudFormation AWS CLI、 或 Terraform 中使用的infrastructure-as-code警示定義，請選擇**下載警示程式碼**，然後選取您想要的格式。下載的程式碼將具有指標名稱、統計資料和閾值的建議設定。

**下載 AWS 服務所有建議警示的infrastructure-as-code警示定義**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Metrics** (指標)、**All metrics** (所有指標)。

1. 在**指標**資料表上方，選擇**警示建議**。

   系統會篩選指標命名空間清單，以僅包括具有警示建議的指標，以及您帳戶中正在發布的服務。

1. 選擇服務的命名空間。

   系統會篩選此命名空間下的指標清單，以僅包含具有警示建議的指標。

1. **下載警示程式碼**會顯示此命名空間中指標的建議警示數目。若要下載所有建議警示的基礎設施即程式碼警示定義，請選擇**下載警示程式碼**，然後選擇您想要的程式碼格式。

# 建議的警示
<a name="Best_Practice_Recommended_Alarms_AWS_Services"></a>

以下各節列出了我們建議您設定最佳實務警示的指標。針對每項指標，還會顯示維度、警示目的、建議閾值、閾值對正，以及期間長度和資料點數目。

某些指標可能會在清單中出現兩次。若針對指標的不同維度組合建議不同的警示，就會發生這種情況。

**警示資料點**是指將警示傳送至 ALARM 狀態時必須違反的資料點數目。**評估期**是指評估警示時要考慮的期間數。如果這些數字相同，則僅當該連續週期數的值超出閾值時，警示才會進入 ALARM 狀態。如果**警示資料點**數目低於**評估期**數目，則為「M 超出 n」警示，並且如果在資料點設定的任何**評估期**內至少違反**警示資料點**的資料點數目，則警示會進入 ALARM 狀態。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。

**Topics**
+ [Amazon API Gateway](#ApiGateway)
+ [Amazon EC2 Auto Scaling](#AutoScaling)
+ [AWS Certificate Manager (ACM)](#CertificateManager)
+ [Amazon CloudFront](#CloudFront)
+ [Amazon Cognito](#Cognito)
+ [Amazon DynamoDB](#DynamoDB)
+ [Amazon EBS](#Recommended_EBS)
+ [Amazon EC2](#EC2)
+ [Amazon ElastiCache](#ElastiCache)
+ [Amazon ECS](#ECS)
+ [具有 Container Insights 的 Amazon ECS](#ECS-ContainerInsights)
+ [Amazon ECS 搭配具備增強式可觀測性的 Container Insights](#ECS-ContainerInsights_enhanced)
+ [Amazon EFS](#EFS)
+ [具有 Container Insights 的 Amazon EKS](#EKS-ContainerInsights)
+ [Amazon EventBridge 排程器](#Eventbridge-Scheduler)
+ [Amazon Kinesis Data Streams](#Kinesis)
+ [Lambda](#Lambda)
+ [Lambda Insights](#LambdaInsights)
+ [Amazon VPC (`AWS/NATGateway`)](#NATGateway)
+ [AWS 私有連結 (`AWS/PrivateLinkEndpoints`)](#PrivateLinkEndpoints)
+ [AWS 私有連結 (`AWS/PrivateLinkServices`)](#PrivateLinkServices)
+ [`Amazon RDS`](#RDS)
+ [`Amazon Route 53 Public Data Plane`](#Route53)
+ [`Amazon S3`](#S3)
+ [`S3ObjectLambda`](#S3ObjectLambda)
+ [Amazon SNS](#SNS)
+ [Amazon SQS](#SQS)
+ [Site-to-Site VPN](#VPN)

## Amazon API Gateway
<a name="ApiGateway"></a>

**4XXError**  
**維度：**ApiName、階段  
**警示描述：**此警示可偵測用戶端的高速率錯誤。這可能表示授權或用戶端請求參數中存在問題。這也可能意味著資源已移除，或用戶端正在請求不存在的資源。請考慮啟用 CloudWatch Logs，並檢查是否存在可能導致 4XX 錯誤的任何錯誤。此外，請考慮啟用詳細的 CloudWatch 指標，以檢視每個資源和方法的此指標，並縮小錯誤來源範圍。錯誤也可能是由於超過設定的限流限制所引起。如果回應和日誌均報告較高且非預期速率的 429 錯誤，請遵循[本指南](https://repost.aws/knowledge-center/api-gateway-429-limit)以對此問題進行故障診斷。  
**目的：**此警示可偵測 API Gateway 請求中用戶端的高速率錯誤。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議的閾值會在請求總計的 5% 以上出現 4XX 錯誤時偵測到。但是，您可調整閾值以適應請求的流量以及可接受的錯誤率。您還可分析歷史資料，以確定應用程式工作負載可接受的錯誤率，然後相應地調整閾值。經常發生的 4XX 錯誤需要觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**5XXError**  
**維度：**ApiName、階段  
**警示描述：**此警示有助於偵測用戶端的高速率錯誤。這可能表示 API 後端、網路或 API 閘道與後端 API 之間的整合存在問題。本[文件](https://repost.aws/knowledge-center/api-gateway-5xx-error)可協助您對 5xx 錯誤的原因進行故障診斷。  
**目的：**此警示可偵測 API Gateway 請求中伺服器端的高速率錯誤。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議的閾值會在請求總計的 5% 以上出現 5XX 錯誤時偵測到。但是，您可調整閾值以符合請求的流量以及可接受的錯誤率。您還可以分析歷史資料，以確定應用程式工作負載可接受的錯誤率，然後相應地調整閾值。經常發生的 5XX 錯誤需要觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。  
**期間：**60  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**Count (計數)**  
**維度：**ApiName、階段  
**警示描述：**此警示有助於偵測低流量 REST API 階段。這可能是應用程式呼叫 API (例如使用不正確的端點) 發生問題的指示器。還可能是 API 設定或許可問題的指示器，讓用戶端無法連線。  
**目的：**此警示可偵測非預期低流量 REST API 階段。如果您的 API 在正常情況下接收可預測且一致的請求數目，則建議您建立此警示。如果您已啟用詳細的 CloudWatch 指標，並且可預測每個方法和資源的正常流量，則建議您建立替代警示，以更精細地監控每個資源和方法的流量下降。建議不要將此警示用於預期並非具有持續且一致流量的 API。  
**統計資料：**SampleCount  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據歷史資料分析來設定閾值，以確定 API 的預期基準請求計數為何。將閾值設定為極高的值，可能會導致警示在正常和預期低流量期間過於敏感。相反，將其設定為極低的值，可能會導致警示錯過流量中較小的異常下降。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**Count (計數)**  
**維度：**ApiName、階段、資源、方法  
**警示描述：**此警示有助於偵測階段中 REST API 資源和方法的低流量錯誤。這可能表示應用程式呼叫 API (例如使用不正確的端點) 發生問題。還可能是 API 設定或許可問題的指示器，讓用戶端無法連線。  
**目的：**此警示可偵測階段中 REST API 資源和方法的非預期低流量錯誤。如果您的 API 在正常情況下接收可預測且一致的請求數目，則建議您建立此警示。建議不要將此警示用於預期並非具有持續且一致流量的 API。  
**統計資料：**SampleCount  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據歷史資料分析來設定閾值，以確定 API 的預期基準請求計數為何。將閾值設定為極高的值，可能會導致警示在正常和預期低流量期間過於敏感。相反，將其設定為極低的值，可能會導致警示錯過流量中較小的異常下降。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**Count (計數)**  
**維度：**ApiId、階段  
**警示描述：**此警示有助於偵測低流量 HTTP API 階段。這可能表示應用程式呼叫 API (例如使用不正確的端點) 發生問題。還可能是 API 設定或許可問題的指示器，讓用戶端無法連線。  
**目的：**此警示可偵測非預期低流量 HTTP API 階段。如果您的 API 在正常情況下接收可預測且一致的請求數目，則建議您建立此警示。如果您已啟用詳細的 CloudWatch 指標，並且可預測每次路由的正常流量，建議您建立替代警示，以便更精細地監控每個資源和方法的流量下降。建議不要將此警示用於預期並非具有持續且一致流量的 API。  
**統計資料：**SampleCount  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據歷史資料分析來設定閾值，以確定 API 的預期基準請求計數為何。將閾值設定為極高的值，可能會導致警示在正常和預期低流量期間過於敏感。相反，將其設定為極低的值，可能會導致警示錯過流量中較小的異常下降。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**Count (計數)**  
**維度：**ApiId、階段、資源、方法  
**警示描述：**此警示有助於偵測階段中 HTTP API 路由的低流量錯誤。這可能表示應用程式呼叫 API (例如使用不正確的端點) 發生問題。還可能表示 API 設定或許可問題，使用戶端無法連線。  
**目的：**此警示可偵測階段中 HTTP API 路由的非預期低流量錯誤。如果您的 API 在正常情況下接收可預測且一致的請求數目，則建議您建立此警示。建議不要將此警示用於預期並非具有持續且一致流量的 API。  
**統計資料：**SampleCount  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據歷史資料分析來設定閾值，以確定 API 的預期基準請求計數為何。將閾值設定為極高的值，可能會導致警示在正常和預期低流量期間過於敏感。相反，將其設定為極低的值，可能會導致警示錯過流量中較小的異常下降。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**IntegrationLatency**  
**維度：**ApiId、階段  
**警示描述：**此警示有助於偵測階段中 API 請求是否存在較高的整合延遲。您可將 `IntegrationLatency` 指標值與後端的對應延遲指標 (例如 Lambda 整合的 `Duration` 指標) 建立關聯。這可協助您確定 API 後端是否因效能問題而需要更多時間來處理用戶端的請求，或是初始化或冷啟動是否存在某些其他額外負荷。另請考慮為您的 API 啟用 CloudWatch Logs，並檢查日誌中是否存在任何可能導致高延遲問題的錯誤。此外，考慮啟用詳細的 CloudWatch 指標，取得每個路由的此指標檢視，以協助您縮小整合延遲的來源範圍。  
**目的：**此警示可偵測階段中的 API Gateway 請求何時具有較高的整合延遲。建議針對 WebSocket API 使用此警示，而且我們認為其對於 HTTP API 為選用，因為它們針對延遲指標具有不同的警示建議。如果您已啟用詳細的 CloudWatch 指標，且每個路由都具有不同的整合延遲效能需求，建議您建立替代警示，以便針對每個路由的整合延遲進行更精細的監控。  
**統計資料：**p90  
**建議的閾值：**2000.0  
**閾值對正：**建議的閾值不適用於所有 API 工作負載。但是，您可將其用做閾值的起點。然後，您可根據 API 的工作負載和可接受的延遲、效能和 SLA 需求，選擇不同的閾值。如果一般情況下可接受 API 具有較高的延遲，請設定較高的閾值以使警示不太敏感。但是，如果 API 預期會提供近乎即時的回應，請設定較低的閾值。您還可分析歷史資料，以確定應用程式工作負載的預期基準延遲，然後用於相應地調整閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**IntegrationLatency**  
**維度：**ApiId、階段、路由  
**警示描述：**此警示有助於偵測階段中路由的 WebSocket API 請求是否存在較高的整合延遲。您可將 `IntegrationLatency` 指標值與後端的對應延遲指標 (例如 Lambda 整合的 `Duration` 指標) 建立關聯。這可協助您確定 API 後端是否因效能問題而需要更多時間來處理用戶端的請求，或是初始化或冷啟動是否有其他額外負荷。另請考慮為您的 API 啟用 CloudWatch Logs，並檢查日誌中是否存在任何可能導致高延遲問題的錯誤。  
**目的：**此警示可偵測階段中路由的 API Gateway 請求何時具有較高的整合延遲。  
**統計資料：**p90  
**建議的閾值：**2000.0  
**閾值對正：**建議的閾值不適用於所有 API 工作負載。但是，您可將其用做閾值的起點。然後，您可根據 API 的工作負載和可接受的延遲、效能和 SLA 需求，選擇不同的閾值。如果一般情況下可接受 API 具有較高的延遲，您可設定較高的閾值以使警示不太敏感。但是，如果 API 預期會提供近乎即時的回應，請設定較低的閾值。您還可分析歷史資料，以確定應用程式工作負載的預期基準延遲，然後用於相應地調整閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**Latency (延遲)**  
**維度：**ApiName、階段  
**警示描述：**此警示會偵測階段中的高延遲錯誤。尋找 `IntegrationLatency` 指標值以檢查 API 後端延遲。如果兩個指標大多情況下是一致的，則 API 後端是較高延遲的來源，您應在此調查是否存在問題。另請考慮啟用 CloudWatch Logs，並檢查是否存在可能導致高延遲的錯誤。此外，請考慮啟用詳細的 CloudWatch 指標，以檢視每個資源和方法的此指標，並縮小延遲來源範圍。如果適用，請參閱 [Lambda 故障診斷](https://repost.aws/knowledge-center/api-gateway-high-latency-with-lambda)或[邊緣優化的 API 端點故障診斷](https://repost.aws/knowledge-center/source-latency-requests-api-gateway)指南。  
**目的：**此警示可偵測階段中的 API Gateway 請求何時具有較高的延遲。如果您已啟用詳細的 CloudWatch 指標，且每個方法和資源都具有不同的延遲效能需求，則建議您建立替代警示，以針對每個資源和方法的延遲進行更精細的監控。  
**統計資料：**p90  
**建議的閾值：**2500.0  
**閾值對正：**建議的閾值不適用於所有 API 工作負載。但是，您可將其用做閾值的起點。然後，您可根據 API 的工作負載和可接受的延遲、效能和 SLA 需求，選擇不同的閾值。如果一般情況下可接受 API 具有較高的延遲，您可設定較高的閾值以使警示不太敏感。但是，如果 API 預期會提供近乎即時的回應，請設定較低的閾值。您還可分析歷史資料，以確定應用程式工作負載的預期基準延遲，然後相應地調整閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**Latency (延遲)**  
**維度：**ApiName、階段、資源、方法  
**警示說明：**此警示可偵測階段中資源和方法的高延遲錯誤。尋找 `IntegrationLatency` 指標值以檢查 API 後端延遲。如果兩個指標大多情況下是一致的，則 API 後端是較高延遲的來源，您應在此調查是否存在效能問題。另請考慮啟用 CloudWatch Logs，並檢查是否存在可能導致高延遲的任何錯誤。如果適用，您還可參閱 [Lambda 故障診斷](https://repost.aws/knowledge-center/api-gateway-high-latency-with-lambda)或[邊緣優化的 API 端點故障診斷](https://repost.aws/knowledge-center/source-latency-requests-api-gateway)指南。  
**目的：**此警示可偵測階段中資源和方法的 API Gateway 請求何時具有較高的延遲。  
**統計資料：**p90  
**建議的閾值：**2500.0  
**閾值對正：**建議的閾值不適用於所有 API 工作負載。但是，您可將其用做閾值的起點。然後，您可根據 API 的工作負載和可接受的延遲、效能和 SLA 需求，選擇不同的閾值。如果一般情況下可接受 API 具有較高的延遲，您可設定較高的閾值以使警示不太敏感。但是，如果 API 預期會提供近乎即時的回應，請設定較低的閾值。您還可分析歷史資料，以確定應用程式工作負載的預期基準延遲，然後相應地調整閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**Latency (延遲)**  
**維度：**ApiId、階段  
**警示描述：**此警示會偵測階段中的高延遲錯誤。尋找 `IntegrationLatency` 指標值以檢查 API 後端延遲。如果兩個指標大多情況下是一致的，則 API 後端是較高延遲的來源，您應在此調查是否存在效能問題。另請考慮啟用 CloudWatch Logs，並檢查是否存在可能導致高延遲的任何錯誤。此外，請考慮啟用詳細的 CloudWatch 指標，以檢視每個路由的此指標，並縮小延遲來源範圍。如果適用，您還可參閱 [Lambda 整合故障診斷指南](https://repost.aws/knowledge-center/api-gateway-high-latency-with-lambda)。  
**目的：**此警示可偵測階段中的 API Gateway 請求何時具有較高的延遲。如果您已啟用詳細的 CloudWatch 指標，且每個路由都具有不同的延遲效能需求，建議您建立替代警示，以針對每個路由的延遲進行更精細的監控。  
**統計資料：**p90  
**建議的閾值：**2500.0  
**閾值對正：**建議的閾值不適用於所有 API 工作負載。但其可用做閾值的起點。然後，您可根據 API 的工作負載和可接受的延遲、效能和 SLA 需求，選擇不同的閾值。如果一般情況下可接受 API 具有較高的延遲，則您可設定較高的閾值以讓其不太敏感。但如果 API 預期會提供近乎即時的回應，則設定較低的閾值。您還可分析歷史資料，以確定應用程式工作負載的預期基準延遲，然後相應地調整閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**Latency (延遲)**  
**維度：**ApiId、階段、資源、方法  
**警示說明：**此警示可偵測階段中路由的高延遲錯誤。尋找 `IntegrationLatency` 指標值以檢查 API 後端延遲。如果兩個指標大多情況下是一致的，則 API 後端是較高延遲的來源，並且應調查是否存在效能問題。另請考慮啟用 CloudWatch Logs，並檢查是否存在可能導致高延遲的任何錯誤。如果適用，您還可參閱 [Lambda 整合故障診斷指南](https://repost.aws/knowledge-center/api-gateway-high-latency-with-lambda)。  
**目的：**此警示用於偵測階段中路由的 API Gateway 請求何時具有較高的延遲。  
**統計資料：**p90  
**建議的閾值：**2500.0  
**閾值對正：**建議的閾值不適用於所有 API 工作負載。但其可用做閾值的起點。然後，您可根據 API 的工作負載和可接受的延遲、效能和 SLA 需求，選擇不同的閾值。如果一般情況下可接受 API 具有較高的延遲，您可設定較高的閾值以使警示不太敏感。但是，如果 API 預期會提供近乎即時的回應，請設定較低的閾值。您還可分析歷史資料，以確定應用程式工作負載的預期基準延遲，然後相應地調整閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**4xx**  
**維度：**ApiId、階段  
**警示描述：**此警示可偵測用戶端的高速率錯誤。這可能表示授權或用戶端請求參數中存在問題。這也可能意味著路由已移除，或用戶端正在請求 API 中不存在的資源。請考慮啟用 CloudWatch Logs，並檢查是否存在可能導致 4xx 錯誤的任何錯誤。此外，請考慮啟用詳細的 CloudWatch 指標，以協助您檢視每個路由的此指標，並縮小錯誤來源範圍。錯誤也可能是由於超過設定的限流限制所引起。如果回應和日誌均報告較高且非預期速率的 429 錯誤，請遵循[本指南](https://repost.aws/knowledge-center/api-gateway-429-limit)以對此問題進行故障診斷。  
**目的：**此警示可偵測 API Gateway 請求中用戶端的高速率錯誤。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議的閾值會在請求總計的 5% 以上出現 4xx 錯誤時偵測到。但是，您可調整閾值以適應請求的流量以及可接受的錯誤率。您還可分析歷史資料，以確定應用程式工作負載可接受的錯誤率，然後相應地調整閾值。經常發生的 4xx 錯誤需要觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**5xx**  
**維度：**ApiId、階段  
**警示描述：**此警示有助於偵測用戶端的高速率錯誤。這可能表示 API 後端、網路或 API 閘道與後端 API 之間的整合存在問題。本[文件](https://repost.aws/knowledge-center/api-gateway-5xx-error)可協助您對 5xx 錯誤的原因進行故障診斷。  
**目的：**此警示可偵測 API Gateway 請求中伺服器端的高速率錯誤。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議的閾值會在請求總數的 5% 以上出現 5xx 錯誤時偵測到。但是，您可調整閾值以適應請求的流量以及可接受的錯誤率。您還可分析歷史資料，以確定應用程式工作負載可接受的錯誤率，然後您可相應地調整閾值。經常發生的 5xx 錯誤需要觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。  
**期間：**60  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**MessageCount**  
**維度：**ApiId、階段  
**警示描述：**此警示有助於偵測低流量 WebSocket API 階段。這可能表示用戶端呼叫 API 時發生問題，例如使用不正確的端點，或是後端向用戶端傳送訊息時發生問題。還可能表示 API 設定或許可問題，使用戶端無法連線。  
**目的：**此警示可偵測 WebSocket API 階段的非預期低流量錯誤。如果您的 API 在正常情況下接收和傳送可預測且一致的訊息數目，建議您建立此警示。如果您已啟用詳細的 CloudWatch 指標，並且可預測每次路由的正常流量，最好建立替代警示，以便更精細地監控每個資源和方法的流量下降。建議不要將此警示用於預期並非具有持續且一致流量的 API。  
**統計資料：**SampleCount  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據歷史資料分析來設定閾值，以確定 API 的預期基準訊息計數為何。將閾值設定為極高的值，可能會導致警示在正常和預期低流量期間過於敏感。相反，將其設定為極低的值，可能會導致警示錯過流量中較小的異常下降。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**MessageCount**  
**維度：**ApiId、階段、路由  
**警示描述：**此警示有助於偵測階段中 WebSocket API 路由的低流量錯誤。這可能表示用戶端呼叫 API 時發生問題，例如使用不正確的端點，或是後端向用戶端傳送訊息時發生問題。還可能表示 API 設定或許可問題，使用戶端無法連線。  
**目的：**此警示可偵測階段中 WebSocket API 路由的非預期低流量錯誤。如果您的 API 在正常情況下接收和傳送可預測且一致的訊息數目，建議您建立此警示。建議不要將此警示用於預期並非具有持續且一致流量的 API。  
**統計資料：**SampleCount  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據歷史資料分析來設定閾值，以確定 API 的預期基準訊息計數為何。將閾值設定為極高的值，可能會導致警示在正常和預期低流量期間過於敏感。相反，將其設定為極低的值，可能會導致警示錯過流量中較小的異常下降。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**ClientError**  
**維度：**ApiId、階段  
**警示描述：**此警示可偵測用戶端的高速率錯誤。這可能表示授權或訊息參數中存在問題。這也可能意味著路由已移除，或用戶端正在請求 API 中不存在的資源。請考慮啟用 CloudWatch Logs，並檢查是否存在可能導致 4xx 錯誤的任何錯誤。此外，請考慮啟用詳細的 CloudWatch 指標，以協助您檢視每個路由的此指標，並縮小錯誤來源範圍。錯誤也可能是由於超過設定的限流限制所引起。如果回應和日誌均報告較高且非預期速率的 429 錯誤，請遵循[本指南](https://repost.aws/knowledge-center/api-gateway-429-limit)以對此問題進行故障診斷。  
**目的：**此警示可偵測 WebSocket API Gateway 訊息中用戶端的高速率錯誤。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議的閾值會在請求總計的 5% 以上出現 4xx 錯誤時偵測到。您可調整閾值以適應請求的流量，以及調整為可接受的錯誤率。您還可分析歷史資料，以確定應用程式工作負載可接受的錯誤率，然後相應地調整閾值。經常發生的 4xx 錯誤需要觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ExecutionError**  
**維度：**ApiId、階段  
**警示描述：**此警示有助於偵測執行的高速率錯誤。這可能是由於您的整合發生 5xx 錯誤、許可問題或其他阻止成功調用整合的因素導致，例如限流或刪除整合。請考慮為您的 API 啟用 CloudWatch Logs，並檢查日誌中的錯誤類型和原因。此外，請考慮啟用詳細的 CloudWatch 指標，以協助您取得每個路由的此指標檢視，並縮小錯誤來源範圍。本[文件](https://repost.aws/knowledge-center/api-gateway-websocket-error)可協助您對任何連線錯誤的原因進行故障診斷。  
**目的：**此警示可偵測 WebSocket API Gateway 訊息中執行的高速率錯誤。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議的閾值會在請求總計的 5% 以上出現執行錯誤時偵測到。您可調整閾值以適應請求的流量，以及調整為可接受的錯誤率。您可分析歷史資料，以確定應用程式工作負載可接受的錯誤率，然後相應地調整閾值。經常發生的執行錯誤需要觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。  
**期間：**60  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon EC2 Auto Scaling
<a name="AutoScaling"></a>

**GroupInServiceCapacity**  
**維度：**AutoScalingGroupName  
**警示描述：**此警示有助於偵測群組中的容量何時低於工作負載所需的容量。若要進行故障診斷，請檢查擴展活動是否存在啟動失敗，並確認所需的容量組態正確無誤。  
**目的：**此警示可偵測由於啟動失敗或暫停啟動，Auto Scaling 群組中的低可用性問題。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**閾值應為執行工作負載所需的最小容量。在多數情況中，您可將其設定為符合 GroupDesiredCapacity 指標。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

## AWS Certificate Manager (ACM)
<a name="CertificateManager"></a>

**DaysToExpiry**  
**維度：**CertificateArn  
**警示描述：**此警示可協助偵測 ACM 所管理或匯入的憑證是否即將到期。有助於防止憑證意外到期的情況，避免造成服務中斷。當警示轉換為 ALARM 狀態時，應該立即採取行動來續約或重新匯入憑證。如需了解 ACM 受管憑證，請參閱[憑證續約程序](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-renewal.html)中的說明。如需了解匯入的憑證，請參閱[重新匯入程序](https://docs.aws.amazon.com/acm/latest/userguide/import-reimport.html)中的說明。  
**目的：**此警示可主動提醒您憑證即將到期。它提供足夠時間的預警通知，以便採取人工干預措施，讓您能在到期前續約或更換憑證。這可協助您維護啟用 TLS 之服務的安全性和可用性。進入 ALARM 狀態時，請立即調查憑證狀態，並視需要啟動續約程序。  
**統計資料：**最小值  
**建議的閾值：**44.0  
**閾值對正：**44 天的閾值可在早期預警與避免誤報之間取得平衡。自動續約失敗時，可預留充裕時間進行人工干預。請根據您的憑證續約程序和操作回應時間調整此值。  
**期間：**86400  
**警示資料點數目：**1  
**評估期：**1  
**比較運算子：**LESS\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

## Amazon CloudFront
<a name="CloudFront"></a>

**5xxErrorRate**  
**維度：**DistributionId、Region=Global  
**警示描述：**此警示可監控原始伺服器的 5xx 錯誤回應百分比，以協助您偵測 CloudFront 服務是否存在問題。如需可協助您了解伺服器問題的相關資訊，請參閱[對原始伺服器的錯誤回應進行故障診斷](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/troubleshooting-response-errors.html)。此外，[開啟額外指標](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/viewing-cloudfront-metrics.html#monitoring-console.distributions-additional)，以取得詳細的錯誤指標。  
**目的：**此警示用於偵測原始伺服器提供請求的問題，或 CloudFront 與原始伺服器之間的通訊問題。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於 5xx 回應的容錯值。您可分析歷史資料和趨勢，然後相應地設定閾值。由於 5xx 錯誤可能是由於暫時性問題引起，因此建議您將閾值設定為大於 0 的值，以便警示不會過於敏感。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**OriginLatency**  
**維度：**DistributionId、Region=Global  
**警示描述：**警示有助於監控原始伺服器是否花費太長時間來回應。如果伺服器需要太長時間來回應，可能會導致逾時。如果出現持續較高的 `OriginLatency` 值，請參閱[尋找並修正原始伺服器上應用程式的延遲回應](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/http-504-gateway-timeout.html#http-504-gateway-timeout-slow-application)。  
**目的：**此警示用於偵測原始伺服器回應時間太長的問題。  
**統計資料：**p90  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**您應計算約 80% 的來源回應逾時值，並使用結果做為閾值。如果此指標持續接近來源伺服器回應逾時值，則可能會開始出現 504 錯誤。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**FunctionValidationErrors**  
**維度：**DistributionId、FunctionName、Region=Global  
**警示描述：**此警示可協助您監控 CloudFront Functions 的驗證錯誤，以便您可採取措施來解決這些錯誤。分析 CloudFront Functions 日誌，並查看函數程式碼以尋找並解決問題的根本原因。請參閱[邊緣函數的限制](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/edge-functions-restrictions.html)，以了解 CloudFront Functions 的常見錯誤設定。  
**目的：**此警示用於偵測 CloudFront Functions 的驗證錯誤。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**大於 0 的值表示驗證錯誤。建議您將閾值設定為 0，因為驗證錯誤暗示 CloudFront Functions 傳遞回 CloudFront 時會出現問題。例如，CloudFront 需要 HTTP 主機標頭才能處理請求。沒有什麼可阻止使用者刪除其 CloudFront Functions 程式碼中的主機標頭。但是，當 CloudFront 獲得傳回的回應且主機標頭遺失時，CloudFront 會擲回驗證錯誤。  
**期間：**60  
**警示資料點數目：**2  
**評估期：**2  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**FunctionExecutionErrors**  
**維度：**DistributionId、FunctionName、Region=Global  
**警示描述：**此警示可協助您監控 CloudFront Functions 的執行錯誤，以便您可採取措施來解決這些錯誤。分析 CloudFront Functions 日誌，並查看函數程式碼以尋找並解決問題的根本原因。  
**目的：**此警示用於偵測 CloudFront Functions 的執行錯誤。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**建議將閾值設定為 0，因為執行錯誤表示在執行期發生程式碼問題。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**FunctionThrottles**  
**維度：**DistributionId、FunctionName、Region=Global  
**警示描述：**此警示可協助您監控 CloudFront Functions 是否受到限流。如果函數受到限流，這意味著執行時間太長。若要避免函數限流，請考慮優化函數程式碼。  
**目的：**此警示可偵測 CloudFront Functions 何時受到限流，以便您回應並解決問題，以獲得順暢的客戶體驗。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**建議將閾值設定為 0，以便更快地解析函數限流。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon Cognito
<a name="Cognito"></a>

**SignUpThrottles**  
**維度：**UserPool、UserPoolClient  
**警示描述：**此警示可監控限流請求的計數。如果使用者持續受到限流，則您應透過請求增加服務配額來提高限制。請參閱 [Amazon Cognito 中的配額](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html)，了解如何請求增加配額。若要主動執行動作，請考慮追蹤[用量配額](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#track-quota-usage)。  
**目的：**此警示有助於監控限流註冊請求的發生。這可協助您知道何時執行動作，以緩解註冊體驗出現任何降級。請求持續限流是一種負面的使用者註冊體驗。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**佈建良好的使用者集區不應遇到跨越多個資料點的任何限流。因此，預期工作負載的典型閾值應為零。對於經常爆量的不規則工作負載，您可分析歷史資料以確定應用程式工作負載可接受的限流，然後您可相應地調整閾值。應重試限流的請求，以將對應用程式的影響降至最低。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**SignInThrottles**  
**維度：**UserPool、UserPoolClient  
**警示描述：**此警示可監控限流使用者驗證請求的計數。如果使用者持續受到限流，您可能需要透過請求增加服務配額來提高限制。請參閱 [Amazon Cognito 中的配額](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html)，了解如何請求增加配額。若要主動執行動作，請考慮追蹤[用量配額](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#track-quota-usage)。  
**目的：**此警示有助於監控限流登入請求的發生。這可協助您知道何時執行動作，以緩解登入體驗出現任何降級。請求持續限流是一種糟糕的使用者身分驗證體驗。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**佈建良好的使用者集區不應遇到跨越多個資料點的任何限流。因此，預期工作負載的典型閾值應為零。對於經常爆量的不規則工作負載，您可分析歷史資料以確定應用程式工作負載可接受的限流，然後您可相應地調整閾值。應重試限流的請求，以將對應用程式的影響降至最低。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**TokenRefreshThrottles**  
**維度：**UserPool、UserPoolClient  
**警示描述：**您可設定符合請求流量的閾值，以及符合權杖重新整理請求的可接受限流。限流用於保護您的系統免受太多請求的影響。但是，監控正常流量是否佈建不足也非常重要。您可分析歷史資料，尋找應用程式工作負載可接受的限流，然後再將警示閾值調整為高於可接受的限流層級。應用程式/服務應重試限流請求，因為它們是暫時的。因此，將閾值設定為極低的值可能會導致警示較為敏感。  
**目的：**此警示有助於監控權杖重新整理請求的發生。這可協助您知道何時執行動作來緩解任何潛在問題，以確保順暢的使用者體驗，以及身分驗證系統的良好運作狀態與可靠性。請求持續限流是一種糟糕的使用者身分驗證體驗。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**還可設定/調整閾值以適應請求的流量，以及權杖重新整理請求的可接受限流。限流可保護您的系統免受太多請求的影響，但是，監控正常流量是否佈建不足並查看是否造成影響也非常重要。還可分析歷史資料，以了解應用程式工作負載可接受的限流，並且可將閾值調整為高於通常可接受的限流層級。應用程式/服務應重試限流請求，因為它們是暫時的。因此，將閾值設定為極低的值可能會導致警示較為敏感。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**FederationThrottles**  
**維度：**UserPool、UserPoolClient、IdentityProvider  
**警示描述：**此警示可監控限流聯合身分請求的計數。如果您持續發現受到限流，可能表示您需要透過請求增加服務配額來提高限制。請參閱 [Amazon Cognito 中的配額](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html)，了解如何請求增加配額。  
**目的：**此警示有助於監控限流聯合身分請求的發生。這可協助您主動回應效能瓶頸或設定錯誤，並確保為使用者提供順暢的身分驗證體驗。請求持續限流是一種糟糕的使用者身分驗證體驗。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**您可設定閾值以符合請求的流量，以及符合聯合身分請求的可接受限流。限流用於保護您的系統免受太多請求的影響。但是，監控正常流量是否佈建不足也非常重要。您可分析歷史資料，尋找應用程式工作負載可接受的節流，然後將閾值設定為高於可接受限流層級的值。應用程式/服務應重試限流請求，因為它們是暫時的。因此，將閾值設定為極低的值可能會導致警示較為敏感。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon DynamoDB
<a name="DynamoDB"></a>

**AccountProvisionedReadCapacityUtilization**  
**維度：**無  
**警示描述：**此警示可偵測帳戶的讀取容量是否達到其佈建限制。如果發生此情況，您可提高讀取容量使用率的帳戶配額。您可使用 [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) 來檢視目前讀取容量單位的配額並請求增加。  
**目的：**該警示可偵測帳戶的讀取容量使用率是否接近其佈建的讀取容量使用率。如果使用率達到其最大限制，DynamoDB 會開始對讀取請求限流。  
**統計資料：**最大值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為 80%，以便在達到容量已滿之前可執行動作 (例如提高帳戶限制) 以避免限流。  
**期間：**300  
**警示資料點數目：**2  
**評估期：**2  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**AccountProvisionedWriteCapacityUtilization**  
**維度：**無  
**警示描述：**此警示可偵測帳戶的寫入容量是否達到其佈建限制。如果發生此情況，您可提高寫入容量使用率的帳戶配額。您可使用 [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) 來檢視目前寫入容量單位的配額並請求增加。  
**目的：**此警示可偵測帳戶的寫入容量使用率是否接近其佈建的寫入容量使用率。如果使用率達到其最大限制，DynamoDB 會開始對寫入請求限流。  
**統計資料：**最大值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為 80%，以便在達到容量已滿之前可執行動作 (例如提高帳戶限制) 以避免限流。  
**期間：**300  
**警示資料點數目：**2  
**評估期：**2  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**AgeOfOldestUnreplicatedRecord**  
**維度：**TableName、DelegatedOperation  
**警示描述：**此警示可偵測複寫到 Kinesis 資料串流的延遲。在正常的操作下，`AgeOfOldestUnreplicatedRecord` 應僅以毫秒為單位。若不成功的複寫嘗試是因客戶控制的組態選擇所引起，此數字會隨著不成功複寫嘗試的增加而增加。可能導致複寫嘗試失敗的客戶控制組態示例包括，佈建的 Kinesis 資料串流容量不足導致過度限流，或是手動更新 Kinesis 資料串流的存取原則因而拒絕 DynamoDB 新增資料至資料串流。為儘可能降低此指標，您需要確保妥善佈建 Kinesis 資料串流容量，並確保 DynamoDB 的許可保持不變。  
**目的：**此警示可監控複寫嘗試失敗，以及複寫到 Kinesis 資料串流產生的延遲。  
**統計資料：**最大值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據所需的複寫延遲 (以毫秒為單位) 設定閾值。此值取決於工作負載需求和預期效能。  
**期間：**300  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**FailedToReplicateRecordCount**  
**維度：**TableName、DelegatedOperation  
**警示描述：**此警示可偵測 DynamoDB 無法複寫到您的 Kinesis 資料串流的記錄數目。大於 34KB 的某些項目可能會擴充大小，以變更大於 Kinesis Data Streams 1MB 項目大小限制的資料記錄。當這些大於 34KB 的項目包含大量的布林值或空白屬性值時，就會發生此大小擴充。布林值和空白屬性值會以 1 位元組形式儲存在 DynamoDB 中，但是在使用用於 Kinesis Data Streams 複寫的標準 JSON 將其序列化時，最多可擴充至 5 個位元組。DynamoDB 無法將這類變更記錄複寫到您的 Kinesis 資料串流。DynamoDB 會略過這些變更資料記錄，並自動繼續複寫後續記錄。  
**目的：**此警示可監控 DynamoDB 因 Kinesis Data Streams 的項目大小限制而無法複寫到 Kinesis 資料串流的記錄數目。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**將閾值設定為 0，以偵測 DynamoDB 無法複寫的任何記錄。  
**期間：**60  
**警示資料點數目：**1  
**評估期：**1  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ReadThrottleEvents**  
**維度：**TableName  
**警示描述：**此警示可偵測 DynamoDB 資料表是否存在大量讀取請求限制。若要對該問題進行故障診斷，請參閱[對 Amazon DynamoDB 中的限流問題進行故障診斷](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TroubleshootingThrottling.html)。  
**目的：**此警示可偵測 DynamoDB 資料表讀取請求的持續限流問題。持續限流讀取請求可能會對工作負載讀取操作產生負面影響，並降低系統的整體效率。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據 DynamoDB 資料表的預期讀取流量設定閾值，並以可接受的限流層級為基準。務必要監控是否佈建不足，並且不會導致持續限流。您還可分析歷史資料，尋找應用程式工作負載可接受的限流層級，然後將閾值調整為高於通常的限流層級。應用程式或服務應重試限流請求，因為它們是暫時的。因此，極低的閾值可能會導致警示過於敏感，從而引起不必要的狀態轉換。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ReadThrottleEvents**  
**維度：**TableName、GlobalSecondaryIndexName  
**警示描述：**此警示可偵測 DynamoDB 資料表的全域次要索引是否存在大量讀取請求限制。若要對該問題進行故障診斷，請參閱[對 Amazon DynamoDB 中的限流問題進行故障診斷](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TroubleshootingThrottling.html)。  
**目的：**該警示可偵測 DynamoDB 資料表全域次要索引的讀取請求是否持續限流。持續限流讀取請求可能會對工作負載讀取操作產生負面影響，並降低系統的整體效率。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據 DynamoDB 資料表的預期讀取流量設定閾值，並以可接受的限流層級為基準。務必要監控是否佈建不足，並且不會導致持續限流。您還可分析歷史資料，尋找應用程式工作負載可接受的限流層級，然後將閾值調整為高於通常可接受的限流層級。應用程式或服務應重試限流請求，因為它們是暫時的。因此，極低的閾值可能會導致警示過於敏感，從而引起不必要的狀態轉換。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ReplicationLatency**  
**維度：**TableName、ReceivingRegion  
**警示描述：**警示可偵測全域資料表「區域」中的複本是否落後於「來源區域」。如果 AWS 區域降級，且您在該區域中有複本資料表，延遲可能會增加。在這種情況下，您可以暫時將應用程式的讀取和寫入活動重新導向至不同的 AWS 區域。如果您正在使用 2017.11.29 (舊式) 全域資料表，您應確認每個複本資料表的寫入容量單位 (WCU) 是否相同。您還可確定遵循[管理容量的最佳實務和需求](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables_reqs_bestpractices.html#globaltables_reqs_bestpractices.tables)中的建議。  
**目的：**該警示可偵測區域中的複本資料表是否落後於另一個區域的複寫變更。這可能會導致您的複本與其他複本發生偏離。了解每個 AWS 區域的複寫延遲，並在複寫延遲持續增加時發出提醒會很有用。資料表的複寫僅適用於全域資料表。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於您的使用案例。複寫延遲超過 3 分鐘通常需要進行調查。檢閱複寫延遲的重要性和需求，並分析歷史趨勢，然後相應地選取閾值。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**SuccessfulRequestLatency**  
**維度：**TableName、Operation  
**警示描述：**此警示可偵測 DynamoDB 資料表操作的高延遲問題 (由警示中的維度值 `Operation` 表示)。如需對 Amazon DynamoDB 中的延遲問題進行故障診斷，請參閱[此故障診斷文件](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TroubleshootingLatency.html)。  
**目的：**此警示可偵測 DynamoDB 資料表操作的高延遲問題。較高的操作延遲可能會對系統的整體效率產生負面影響。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**DynamoDB 為 singleton 操作 (例如 GetItem、PutItem 等) 提供平均不到 10 毫秒的延遲。但是，您可針對工作負載涉及的操作類型和資料表，根據其可接受的延遲容錯值來設定閾值。您可分析此指標的歷史資料，以尋找資料表操作的一般延遲問題，然後將閾值設定為代表操作嚴重延遲的數字。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**SystemErrors**  
**維度：**TableName  
**警示描述：**此警示可偵測 DynamoDB 資料表請求的大量持續性系統錯誤。如果您繼續收到 5xx 錯誤，請開啟 [AWS 服務運作狀態儀表板](https://status.aws.amazon.com/)，以檢查服務的操作問題。如果 DynamoDB 發生長時間內部服務問題，您可使用此警示獲得通知，並協助您關聯用戶端應用程式面臨的問題。如需詳細資訊，請參閱 [DynamoDB 的錯誤處理](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.MessagesAndCodes.http5xx)。  
**目的：**此警示可偵測 DynamoDB 資料表請求的持續性系統問題。系統錯誤表示 DynamoDB 發生的內部服務錯誤，並有助於與用戶端發生的問題建立關聯。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據預期流量設定閾值，並以可接受的系統錯誤層級為基準。您還可分析歷史資料，以尋找應用程式工作負載可接受的錯誤計數，然後相應地調整閾值。應用程式/服務應重試系統錯誤，因為它們是暫時的。因此，極低的閾值可能會導致警示過於敏感，從而引起不必要的狀態轉換。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ThrottledPutRecordCount**  
**維度：**TableName、DelegatedOperation  
**警示描述：**此警示可偵測在將變更資料擷取複寫到 Kinesis 期間，Kinesis 資料串流受到限流的記錄。之所以發生此限流，是因為 Kinesis 資料串流容量不足。如果遇到過多且規律的限流，您可能需要按照觀察到的資料表寫入輸送量按比例增加 Kinesis 串流碎片的數量。若要進一步了解如何判斷 Kinesis 資料串流的大小，請參閱[判斷 Kinesis Data Stream 的初始大小](https://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-streams.html#how-do-i-size-a-stream)。  
**目的：**此警示可監控因 Kinesis 資料串流容量不足而受到 Kinesis Data Streams 限流的記錄數目。  
**統計資料：**最大值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**在特殊用量尖峰期間，您可能會遇到限流的情況，但限流記錄應儘可能低以避免較高的複寫延遲 (DynamoDB 會重試將限流記錄傳送至 Kinesis 資料串流)。將閾值設定為可協助您擷取常規過度限流的數字。您還可分析此指標的歷史資料，以尋找應用程式工作負載可接受的限流速率。根據您的使用案例，將閾值調整為應用程式可容忍的值。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**UserErrors**  
**維度：**無  
**警示描述：**此警示可偵測 DynamoDB 資料表請求的大量持續性使用者錯誤。您可在問題時間範圍內，檢查用戶端應用程式日誌，以了解請求無效的原因。您可檢查 [HTTP 狀態碼 400](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.MessagesAndCodes.http400)，以查看收到的錯誤類型，並相應地執行動作。您可能必須修正應用程式邏輯，才能建立有效的請求。  
**目的：**此警示可偵測 DynamoDB 資料表請求的持續性使用者問題。使用者請求操作錯誤意味著用戶端正在產生無效的請求，並且將會失敗。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**將閾值設定為零以偵測任何用戶端錯誤。或者，如果您想要避免因極少的錯誤而觸發警示，可將其設定為更高的值。根據您的使用案例和請求的流量來決定。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**WriteThrottleEvents**  
**維度：**TableName  
**警示描述：**此警示可偵測 DynamoDB 資料表是否存在大量寫入請求限制。若要對該問題進行故障診斷，請參閱[對 Amazon DynamoDB 中的限流問題進行故障診斷](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TroubleshootingThrottling.html)。  
**目的：**此警示可偵測 DynamoDB 資料表讀取寫入的持續限流問題。持續限流寫入請求可能會對工作負載寫入操作產生負面影響，並降低系統的整體效率。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據 DynamoDB 資料表的預期寫入流量設定閾值，並以可接受的限流層級為基準。務必要監控是否佈建不足，並且不會導致持續限流。您還可分析歷史資料，尋找應用程式工作負載可接受的限流層級，然後將閾值調整為高於通常可接受的限流層級。應用程式/服務應重試限流請求，因為它們是暫時的。因此，極低的閾值可能會導致警示過於敏感，從而引起不必要的狀態轉換。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**WriteThrottleEvents**  
**維度：**TableName、GlobalSecondaryIndexName  
**警示描述：**此警示可偵測 DynamoDB 資料表的全域次要索引是否存在大量寫入請求限制。若要對該問題進行故障診斷，請參閱[對 Amazon DynamoDB 中的限流問題進行故障診斷](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TroubleshootingThrottling.html)。  
**目的：**該警示可偵測 DynamoDB 資料表全域次要索引的寫入請求是否持續限流。持續限流寫入請求可能會對工作負載寫入操作產生負面影響，並降低系統的整體效率。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據 DynamoDB 資料表的預期寫入流量設定閾值，並以可接受的限流層級為基準。務必要監控是否佈建不足，並且不會導致持續限流。您還可分析歷史資料，尋找應用程式工作負載可接受的限流層級，然後將閾值調整為高於通常可接受的限流層級。應用程式/服務應重試限流請求，因為它們是暫時的。因此，極低的值可能會導致警示過於敏感，從而引起不必要的狀態轉換。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon EBS
<a name="Recommended_EBS"></a>

**VolumeStalledIOCheck**  
**維度：**VolumeId、InstanceId  
**警示描述：**此警示旨在協助您監控 Amazon EBS 磁碟區的 IO 效能。此檢查可偵測 Amazon EBS 基礎結構的潛在問題，例如：Amazon EBS 磁碟區底層儲存子系統的硬體或軟體問題、影響從 Amazon EC2 執行個體存取 Amazon EBS 磁碟區之實體主機的硬體問題，並能偵測執行個體與 Amazon EBS 磁碟區之間的連線問題。如果停滯的 IO 檢查失敗，您可以等待 AWS 解決問題，也可以採取動作，例如取代受影響的磁碟區，或停止和重新啟動連接磁碟區的執行個體。在大多數情況下，當此指標失敗時，Amazon EBS 會在幾分鐘內自動診斷並復原磁碟區。  
**目的：**此警示可偵測 Amazon EBS 磁碟區的狀態，以判斷這些磁碟區何時受損且無法完成 I/O 操作。  
**統計資料：**最大值  
**建議的閾值：**1.0  
**閾值對正：**當狀態檢查失敗時，此指標的值為 1。設定閾值，以便每當狀態檢查失敗時，警示都會處於 ALARM 狀態。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

## Amazon EC2
<a name="EC2"></a>

**CPUUtilization**  
**維度：**InstanceId  
**警示描述：**此警示有助於監控 EC2 執行個體的 CPU 使用率。視乎應用程式而定，持續的高使用率層級可能是正常的。但是，如果效能降級，且應用程式不受磁碟 I/O、記憶體或網路資源的限制，則 CPU 上限可能表示資源瓶頸或應用程式效能問題。高 CPU 使用率可能表示需要升級至 CPU 更密集的執行個體。如果已啟用詳細監控，您可將期間變更為 60 秒，而不是 300 秒。如需詳細資訊，請參閱[啟用或關閉詳細監控您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html)。  
**目的：**此警示用於偵測高 CPU 使用率。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**通常，您可將 CPU 使用率的閾值設定為 70-80%。但是，您可根據可接受的效能層級和工作負載特性來調整此值。對於某些系統來說，持續的高 CPU 使用率可能是正常的，並非表示存在問題，而對於其他系統來說，則可能是需要關注的問題。分析歷史 CPU 使用率資料以識別用量、尋找系統可接受的 CPU 使用率，並相應地設定閾值。  
**期間：**300  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**StatusCheckFailed (StatusCheckFailed)**  
**維度：**InstanceId  
**警示描述：**此警示有助於同時監控系統狀態檢查和執行個體狀態檢查。如果任一類型的狀態檢查失敗，則此警示應處於 ALARM 狀態。  
**目的：**此警示用於偵測執行個體的基本問題，包括系統狀態檢查失敗和執行個體狀態檢查失敗。  
**統計資料：**最大值  
**建議的閾值：**1.0  
**閾值對正：**當狀態檢查失敗時，此指標的值為 1。設定閾值，以便每當狀態檢查失敗時，警示都會處於 ALARM 狀態。  
**期間：**300  
**警示資料點數目：**2  
**評估期：**2  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**StatusCheckFailed\$1AttachedEBS**  
**維度：**InstanceId  
**警示描述：**此警示可協助您監控連結至執行個體的 Amazon EBS 磁碟區能否連線並完成 I/O 操作。此狀態檢查可偵測運算或 Amazon EBS 基礎結構的底層問題，例如：  
+ Amazon EBS 磁碟區之下儲存子系統上的硬體或軟體問題
+ 實體主機上會影響 Amazon EBS 磁碟區連線的硬體問題
+ 執行個體與 Amazon EBS 磁碟區之間的連線問題
當連結的 EBS 狀態檢查失敗時，可以等待 Amazon 解決問題，也可以採取動作，例如更換受影響的磁碟區，或者停止並重新啟動執行個體。  
**目的：**此警示用於偵測連結至執行個體後無法連線的 Amazon EBS 磁碟區。這些可能導致 I/O 操作失敗。  
**統計資料：**最大值  
**建議的閾值：**1.0  
**閾值對正：**當狀態檢查失敗時，此指標的值為 1。設定閾值，以便每當狀態檢查失敗時，警示都會處於 ALARM 狀態。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

## Amazon ElastiCache
<a name="ElastiCache"></a>

**CPUUtilization**  
**維度：**CacheClusterId、CacheNodeId  
**警示描述：**此警示有助於監控整個 ElastiCache 執行個體的 CPU 使用率，包括資料庫引擎程序和在執行個體上執行的其他程序。 AWS Elasticache 支援兩種引擎類型：Memcached 和 Redis OSS。當您在 Memcached 節點上達到高 CPU 使用率時，您應考慮擴展執行個體類型或新增快取節點。對於 Redis OSS，如果您的主要工作負載來自讀取請求，則應考慮將更多僅供讀取複本新增至快取叢集。如果您的主要工作負載來自寫入請求，則應考慮以下方面：在叢集模式下執行時，新增更多碎片以將工作負載分散到更多主節點；或在非叢集模式下執行 Redis OSS 時，則擴展執行個體類型。  
**目的：**此警示用於偵測 ElastiCache 主機的高 CPU 使用率。能夠全面檢視整個執行個體 (包括非引擎程序) 的 CPU 使用率非常有幫助。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**將閾值設定為反映應用程式臨界 CPU 使用率層級的百分比。若是 Memcached，引擎可使用最多 num\$1threads 個核心。若是 Redis OSS，引擎大部分是單一執行緒，但如果適用，可能會使用額外的核心來加速 I/O。在大多數情況下，您可將閾值設定為可用 CPU 的 90% 左右。因為 Redis OSS 為單一執行緒，實際閾值應以節點總容量的分數計算。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**CurrConnections**  
**維度：**CacheClusterId、CacheNodeId  
**警示描述：**此警示可偵測高連線計數，這可能表示負載過重或效能問題。持續增加 `CurrConnections` 可能會導致 65,000 個可用連線用盡。這可能表示應用程式端連線關閉不正確，並在伺服器端建立連線。您應考慮使用連線集區或閒置連線逾時，來限制與叢集建立連線的數目，或者針對 Redis OSS，考慮調整叢集上的 [tcp-keepalive](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ParameterGroups.Redis.html)，以偵測並終止潛在的失效對等。  
**目的：**該警示可協助您識別可能影響 ElastiCache 叢集效能和穩定性的高連線計數。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於叢集可接受的連線範圍。檢閱 ElastiCache 叢集的容量和預期工作負載，並分析常規用量期間的歷史連線計數以建立基準，然後相應地選取閾值。請記住，每個節點可支援最多 65,000 個並行連線。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**DatabaseMemoryUsagePercentage**  
**維度：**CacheClusterId  
**警示描述：**此警示可協助您監控叢集的記憶體使用率。當您的 `DatabaseMemoryUsagePercentage` 達到 100% 時，會觸發 Redis OSS maxmemory 政策，而且可能會根據選取的政策發生移出。如果快取中沒有物件符合移出政策，寫入操作會失敗。某些工作負載預期或依賴於移出，但如果沒有，您將需要增加叢集的記憶體容量。您可新增更多主節點來擴展叢集，或使用較大的節點類型來擴展叢集。如需詳細資訊，請參閱[擴展 ElastiCache for Redis OSS 叢集](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html)。  
**目的：**此警示用於偵測叢集的高記憶體使用率，以免在寫入叢集時出現失敗。如果您的應用程式預期不會移出，知道何時需要縱向擴展叢集會很有幫助。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**視乎應用程式的記憶體需求和 ElastiCache 叢集的記憶體容量，您應將閾值設定為反映叢集臨界記憶體用量層級的百分比。您可使用歷史記憶體用量資料，做為可接受記憶體用量閾值的參考。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**EngineCPUUtilization**  
**維度：**CacheClusterId  
**警示描述：**此警示有助於監控 ElastiCache 執行個體內 Redis OSS 引擎執行緒的 CPU 使用率。引擎 CPU 較高的常見原因包括長時間執行的命令，這些命令會取用較高的 CPU、具有大量請求、在短時間內增加新的用戶端連線請求，以及在快取沒有足夠的記憶體來保存新資料時的大量移出。您應考慮新增更多節點或擴展執行個體類型，來[擴展 ElastiCache for Redis OSS 叢集](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html)。  
**目的：**此警示用於偵測 Redis OSS 引擎執行緒的高 CPU 使用率。如果您想要監控資料庫引擎本身的 CPU 使用率，這會很有幫助。  
**統計資料：**平均值  
**建議的閾值：**90.0  
**閾值對正：**將閾值設定為反映應用程式臨界引擎 CPU 使用率層級的百分比。您可使用應用程式和預期工作負載來對叢集進行基準測試，以將 EngineCPUUtilization 和效能做為參考來關聯，然後相應地設定閾值。在大多數情況下，您可將閾值設定為可用 CPU 的 90% 左右。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ReplicationLag**  
**維度：**CacheClusterId  
**警示描述：**此警示有助於監控 ElastiCache 叢集的複寫運作狀態。高複寫延遲表示主節點或複本無法跟上複寫的速度。如果您的寫入活動太多，請考慮新增更多主節點來擴展叢集，或使用較大的節點類型來擴展叢集。如需詳細資訊，請參閱[擴展 ElastiCache for Redis OSS 叢集](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html)。如果根據讀取請求數量，僅供讀取複本過載，則考慮新增更多僅供讀取複本。  
**目的：**此警示用於偵測主節點上的資料更新與其同步處理複本節點之間的延遲。它有助於確保僅供讀取複本叢集節點的資料一致性。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據應用程式的需求和複寫延遲的潛在影響來設定閾值。針對可接受的複寫延遲，您應考慮應用程式的預期寫入速率和網路條件。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon ECS
<a name="ECS"></a>

以下是 Amazon ECS 的建議警示。

**CPUReservation**  
**維度：**ClusterName  
**警示描述：**此警示可協助您偵測 ECS 叢集的高 CPU 保留。高 CPU 保留可能表示叢集已用盡為任務註冊的 CPU。若要進行故障診斷，您可新增更多容量、擴展叢集，或是設定自動擴展。  
**目的：**該警示用於偵測叢集上任務預留的 CPU 單元總數是否達到為叢集註冊的 CPU 單元總計。這有助於您了解何時縱向擴展叢集。達到叢集的 CPU 單元總計可能會導致任務的 CPU 用盡。如果您已開啟 EC2 容量供應商受管擴展，或者已將 Fargate 與容量供應商建立關聯，則不建議使用此警示。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將 CPU 預留的閾值設定為 80%。或者，您可根據叢集特性來選擇較低的值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**CPUUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測 ECS 服務的高 CPU 使用率。如果沒有進行中的 ECS 部署，CPU 使用率上限可能表示資源瓶頸或應用程式效能問題。若要進行故障診斷，您可增加 CPU 限制。  
**目的：**此警示用於偵測 Amazon ECS 服務是否出現 CPU 使用率過高的狀況。持續的高 CPU 使用率可能表示資源瓶頸或應用程式效能問題。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**CPU 使用率的服務指標可能超過 100% 的使用率。但是，建議您監控高 CPU 使用率的指標，以避免影響其他服務。將閾值設定為約 80-85%。建議您更新任務定義來反映實際用量，以避免未來其他服務發生問題。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**EBSFilesystemUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警報可協助您偵測連結至 Amazon ECS 任務的 Amazon EBS 磁碟區是否出現儲存空間使用率過高的狀況。如果 Amazon EBS 磁碟區的使用率持續很高，可以檢查用量並增大磁碟區容量，用於處理新任務。  
**目的：**此警報用於偵測連結至 Amazon ECS 任務的 Amazon EBS 磁碟區是否出現儲存空間使用率過高的狀況。如果儲存空間使用率持續偏高，可能表示 Amazon EBS 磁碟區已滿，並可能導致容器故障。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**可將 Amazon EBS 檔案系統使用率的閾值設定為約 80%。可以根據可接受的儲存空間使用率來調整此值。對於唯讀快照磁碟區，高使用率可能表示磁碟區的容量設定恰到好處。對於作用中的資料磁碟區，儲存空間使用率偏高可能表示應用程式正在寫入大量資料，如果容量不足，可能導致容器故障。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**MemoryReservation**  
**維度：**ClusterName  
**警示描述：**此警示可協助您偵測 Amazon ECS 叢集的高記憶體保留。高記憶體保留可能表示叢集的資源瓶頸。若要進行故障診斷，請分析服務任務的效能，以查看是否可優化任務的記憶體使用率。此外，您可註冊更多記憶體或設定自動擴展比例。  
**目的：**該警示用於偵測叢集上任務預留的記憶體單元總計是否達到為叢集註冊的記憶體單元總計。這可協助您了解何時縱向擴展叢集。達到叢集的記憶體單元總計可能會導致叢集無法啟動新的任務。如果您已開啟 EC2 容量供應商受管擴展，或者已將 Fargate 與容量供應商建立關聯，不建議使用此警示。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將記憶體保留的閾值設定為 80%。您可根據叢集特性，將其調整為較低的值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**MemoryUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測 Amazon ECS 服務的高記憶體使用率。如果沒有進行中的 Amazon ECS 部署，記憶體使用率上限可能表示資源瓶頸或應用程式效能問題。若要解決此問題，可增大記憶體限制。  
**目的：**此警示用於偵測 Amazon ECS 服務是否出現記憶體使用率過高的狀況。持續的高記憶體使用率可能表示存在資源瓶頸或應用程式效能問題。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**記憶體使用率的服務指標可能超過 100% 的使用率。但是，建議您監控高記憶體使用率的指標，以避免影響其他服務。將閾值設定為約 80%。建議您更新任務定義來反映實際用量，以避免未來其他服務發生問題。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**HTTPCode\$1Target\$15XX\$1Count**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測 ECS 服務的高伺服器端錯誤計數。這可能表示存在導致服務無法發出請求的錯誤。若要進行故障診斷，請檢查應用程式日誌。  
**目的：**此警示用於偵測 ECS 服務的高伺服器端錯誤計數。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**計算平均流量約 5% 的值，並使用此值作為閾值的起點。您可使用 `RequestCount` 指標尋找平均流量。您還可分析歷史資料，以確定應用程式工作負載可接受的錯誤率，然後相應地調整閾值。經常發生的 5XX 錯誤需要觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**TargetResponseTime**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測 ECS 服務請求的較長目標回應時間。這可能表示存在導致服務無法及時發出請求的問題。若要進行故障診斷，請檢查 CPUUtilization 指標，以查看服務是否用盡 CPU，或檢查服務所依賴的其他下游服務的 CPU 使用率。  
**目的：**此警示用於偵測 ECS 服務請求較常的目標回應時間。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於您的使用案例。請檢閱服務目標回應時間的重要性和要求，並分析此指標的歷史行為，以確定合理的閾值層級。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## 具有 Container Insights 的 Amazon ECS
<a name="ECS-ContainerInsights"></a>

以下是搭配 Container Insights 使用 Amazon ECS 建議警示。

**EphemeralStorageUtilized**  
**維度：**ClusterName、ServiceName  
**警示說明：**此警示可協助您偵測 Fargate 叢集使用的高暫時性儲存。如果暫時性儲存持續很高，您可以檢查暫時性儲存的使用量並增加暫時性儲存空間。  
**意圖：**此警示用於偵測 Fargate 叢集的較高暫時性儲存空間使用量。使用持續的高暫時性儲存可能表示磁碟已滿，並可能導致容器故障。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**將閾值設定為臨時儲存大小的 90％。可以根據 Fargate 叢集的可接受暫時性儲存使用率來調整此值。對於某些系統，持續使用高暫時性儲存可能是正常的，而對於其他系統，則可能會導致容器故障。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**RunningTaskCount**  
**維度：**ClusterName、ServiceName  
**警示說明：**此警示可協助您偵測 Amazon ECS 服務的執行任務計數不足。如果執行中的任務計數太低，可能表示應用程式無法處理服務負載，並可能導致效能問題。如果沒有執行中的任務，則 Amazon ECS 服務可能無法使用，或者可能發生部署問題。  
**意圖：**此警示用於檢測正在執行的任務數量是否過低。持續的低執行任務計數可能表示 Amazon ECS 服務部署或效能問題。  
**統計資料：**平均值  
**建議的閾值：**0.0  
**閾值對正：**您可以根據 Amazon ECS 服務的最小執行中任務計數來調整閾值。如果執行中的任務計數為 0，則 Amazon ECS 服務將無法使用。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**TaskCpuUtilization**  
**維度：**ClusterName  
**警示描述：**此警示可協助您偵測 Amazon ECS 叢集內任務的高 CPU 使用率。如果任務 CPU 使用率持續很高，可能需要最佳化任務或增加其 CPU 預留量。  
**目的：**此警示用於偵測 Amazon ECS 叢集中任務的 CPU 使用率過高的狀況。持續的高 CPU 使用率可能表示任務正承受壓力，需要更多 CPU 資源或進行最佳化以維持效能。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為任務 CPU 預留量的約 80%。可以根據任務可接受的 CPU 使用率來調整此值。對於某些工作負載，持續高 CPU 使用率可能是正常現象；而對於其他工作負載，這可能預示存在效能問題或需要更多資源。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**TaskCpuUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警報可協助您偵測屬於 Amazon ECS 服務之任務的高 CPU 使用率。如果任務 CPU 使用率持續很高，可能需要最佳化任務或增加其 CPU 預留量。  
**目的：**此警示用於偵測屬於 Amazon ECS 服務的任務是否出現 CPU 使用率過高的狀況。持續的高 CPU 使用率可能表示任務正承受壓力，需要更多 CPU 資源或進行最佳化以維持效能。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為任務 CPU 預留量的約 80%。可以根據任務可接受的 CPU 使用率來調整此值。對於某些工作負載，持續高 CPU 使用率可能是正常現象；而對於其他工作負載，這可能預示存在效能問題或需要更多資源。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ContainerCpuUtilization**  
**維度：**ClusterName  
**警示描述：**此警示監控相對於預留的 CPU 容量，Amazon ECS 叢集中的容器所使用的 CPU 單位百分比。它有助於根據 ContainerCpuUtilized/ContainerCpuReserved 比率，偵測容器何時接近其 CPU 限制。  
**目的：**此警示偵測 Amazon ECS 叢集中的容器是否使用其預留 CPU 容量的高百分比，計算方式為 `ContainerCpuUtilized/ContainerCpuReserved`。持續偏高的數值表示容器正在逼近其 CPU 極限，可能需要進行容量調整。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為容器 CPU 使用率的約 80%。系統會在容器接近其 CPU 容量限制時提早發出警告，同時允許 CPU 使用率的正常波動。可以根據工作負載特性和效能需求來調整閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ContainerCpuUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示監控相對於預留的 CPU 容量，屬於 Amazon ECS 服務之容器使用的 CPU 單位百分比。它有助於根據 ContainerCpuUtilized/ContainerCpuReserved 比率，偵測容器何時接近其 CPU 限制。  
**目的：**此警示偵測屬於 Amazon ECS 服務的容器是否使用了高百分比的預留 CPU 容量，計算方式為 ContainerCpuUtilized/ContainerCpuReserved。持續偏高的數值表示容器正在逼近其 CPU 極限，可能需要進行容量調整。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為容器 CPU 使用率的約 80%。系統會在容器接近其 CPU 容量限制時提早發出警告，同時允許 CPU 使用率的正常波動。可以根據工作負載特性和效能需求來調整閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**TaskEphemeralStorageUtilization**  
**維度：**ClusterName  
**警示說明：**此警示可協助您偵測 Amazon ECS 叢集內任務的高臨時儲存空間使用率。如果儲存空間使用率持續偏高，可能需要最佳化儲存空間使用方式或增加儲存空間預留量。  
**目的：**此警示用於偵測 Amazon ECS 叢集中任務的臨時儲存空間使用率過高的狀況。持續的高儲存空間使用率可能表示任務正耗盡磁碟空間，需要更多儲存空間資源或進行最佳化以維持正常運作。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為任務臨時儲存空間預留量的約 80%。可以根據任務可接受的儲存空間使用率來調整此值。對於某些工作負載，持續高儲存空間使用率可能是正常現象；而對於其他工作負載，這可能預示存在潛在磁碟空間問題或需要更多儲存空間。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**TaskEphemeralStorageUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測屬於 Amazon ECS 服務之任務的臨時儲存空間使用率偏高的狀況。如果儲存空間使用率持續偏高，可能需要最佳化儲存空間使用方式或增加儲存空間預留量。  
**目的：**此警示用於偵測屬於 Amazon ECS 服務的任務是否出現臨時儲存空間使用率偏高的狀況。持續的高儲存空間使用率可能表示任務正耗盡磁碟空間，需要更多儲存空間資源或進行最佳化以維持正常運作。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為任務臨時儲存空間預留量的約 80%。可以根據任務可接受的儲存空間使用率來調整此值。對於某些工作負載，持續高儲存空間使用率可能是正常現象；而對於其他工作負載，這可能預示存在潛在磁碟空間問題或需要更多儲存空間。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**TaskMemoryUtilization**  
**維度：**ClusterName  
**警示描述：**此警示可協助您偵測 Amazon ECS 叢集內任務的高記憶體使用率。如果記憶體使用率持續很高，可能需要最佳化任務或增加記憶體預留量。  
**目的：**此警示用於偵測 Amazon ECS 叢集中任務的記憶體使用率過高的狀況。持續的高記憶體使用率可能表示任務正承受壓力，需要更多記憶體資源或進行最佳化以維持穩定性。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為任務記憶體預留量的約 80%。可以根據任務可接受的記憶體使用率來調整此值。對於某些工作負載，持續高記憶體使用率可能是正常現象；而對於其他工作負載，這可能表示記憶體正承受壓力或需要更多資源。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**TaskMemoryUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測屬於 Amazon ECS 服務之任務的高記憶體使用率。如果記憶體使用率持續很高，可能需要最佳化任務或增加記憶體預留量。  
**目的：**此警示用於偵測屬於 Amazon ECS 服務的任務是否出現記憶體使用率過高的狀況。持續的高記憶體使用率可能表示任務正承受壓力，需要更多記憶體資源或進行最佳化以維持穩定性。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為任務記憶體預留量的約 80%。可以根據任務可接受的記憶體使用率來調整此值。對於某些工作負載，持續高記憶體使用率可能是正常現象；而對於其他工作負載，這可能表示記憶體正承受壓力或需要更多資源。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ContainerMemoryUtilization**  
**維度：**ClusterName  
**警示描述：**此警示可協助您偵測 Amazon ECS 叢集內容器的高記憶體使用率。如果記憶體使用率持續很高，可能需要最佳化容器或增加記憶體預留量。  
**目的：**此警示用於偵測 Amazon ECS 叢集中容器的記憶體使用率過高的狀況。持續的高記憶體使用率可能表示容器正承受壓力，需要更多記憶體資源或進行最佳化以維持穩定性。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為容器記憶體預留量的約 80%。可以根據容器可接受的記憶體使用率來調整此值。對於某些工作負載，持續高記憶體使用率可能是正常現象；而對於其他工作負載，這可能表示記憶體正承受壓力或需要更多資源。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ContainerMemoryUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測屬於 Amazon ECS 服務之容器的高記憶體使用率。如果記憶體使用率持續很高，可能需要最佳化容器或增加記憶體預留量。  
**目的：**此警示用於偵測屬於 Amazon ECS 服務的容器是否出現記憶體使用率過高的狀況。持續的高記憶體使用率可能表示容器正承受壓力，需要更多記憶體資源或進行最佳化以維持穩定性。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為容器記憶體預留量的約 80%。可以根據容器可接受的記憶體使用率來調整此值。對於某些工作負載，持續高記憶體使用率可能是正常現象；而對於其他工作負載，這可能表示記憶體正承受壓力或需要更多資源。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**instance\$1filesystem\$1utilization**  
**維度：**InstanceId、ContainerInstanceId、ClusterName  
**警示描述：**此警示可協助您偵測 Amazon ECS 叢集的高檔案系統使用率。如果檔案系統使用率持續很高，請檢查磁碟使用率。  
**意圖：**此警示用於偵測 Amazon ECS 叢集的高檔案系統使用率。持續的高檔案系統使用率可能表示資源瓶頸或應用程式效能問題，而且可能無法執行新任務。  
**統計資料：**平均值  
**建議的閾值：**90.0  
**閾值對正：**可將檔案系統使用率的閾值設定為 90-95%。您可以根據 Amazon ECS 叢集的可接受檔案系統容量級別來調整此值。對於某些系統而言，持續的高檔案系統使用率可能是正常的，並不表示有問題，而對其他系統而言，這可能是令人擔憂的原因，並且可能導致效能問題並阻止執行新任務。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon ECS 搭配具備增強式可觀測性的 Container Insights
<a name="ECS-ContainerInsights_enhanced"></a>

以下是搭配具備增強式可觀測性的 Container Insights 使用 Amazon ECS 的建議警示。

**TaskCpuUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測任務佔用的 CPU 單位總百分比。  
**目的：**此警示用於偵測任務 CPU 使用率過高的情況。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**通常，您可以將 CPU 使用率的閾值設定為 80%。但是，您可根據可接受的效能層級和工作負載特性來調整此值。對於某些任務來說，持續的高 CPU 使用率可能是正常的，並非表示存在問題，而對於其他系統來說，則可能是需要關注的問題。分析歷史 CPU 使用率資料以識別用量、尋找任務可接受的 CPU 使用率，並相應地設定閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**TaskMemoryUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測任務佔用的記憶體總百分比。  
**目的：**此警示用於偵測高記憶體使用率。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**通常，您可將記憶體使用率的閾值設定為 80%。但是，您可根據可接受的效能層級和工作負載特性來調整此值。對於某些任務來說，持續的高記憶體使用率可能是正常的，並非表示存在問題，而對於其他系統來說，則可能是需要關注的問題。分析歷史記憶體使用率資料以識別用量、尋找任務可接受的記憶體使用率，並相應地設定閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**ContainerCPUUtilization**  
**維度：**ContainerName、ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測容器佔用的 CPU 單位總百分比。  
**目的：**此警示用於偵測任務 CPU 使用率過高的情況。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**通常，您可以將 CPU 使用率的閾值設定為 80%。但是，您可根據可接受的效能層級和工作負載特性來調整此值。對於某些容器來說，持續的高 CPU 使用率可能是正常的，並非表示存在問題，而對於其他系統來說，則可能是需要關注的問題。分析歷史 CPU 使用率資料以識別用量、尋找容器可接受的 CPU 使用率，並相應地設定閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ContainerMemoryUtilization**  
**維度：**ContainerName、ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測容器佔用的記憶體單位總百分比。  
**目的：**此警示用於偵測任務的高記憶體使用率。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**通常，您可將記憶體使用率的閾值設定為 80%。但是，您可根據可接受的效能層級和工作負載特性來調整此值。對於某些容器來說，持續的高記憶體使用率可能是正常的，並非表示存在問題，而對於其他系統來說，則可能是需要關注的問題。分析歷史記憶體使用率資料以識別用量、尋找任務可接受的記憶體使用率，並相應地設定閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**TaskEBSfilesystemUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測任務佔用的臨時儲存空間總百分比。  
**目的：**此警示用於偵測任務中 Amazon EBS 檔案系統使用率過高的情況。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為 Amazon EBS 檔案系統大小的約 80%。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**TaskEphemeralStorageUtilization**  
**維度：**ClusterName、ServiceName  
**警示描述：**此警示可協助您偵測任務佔用的臨時儲存空間總百分比。  
**目的：**此警示用於偵測任務中臨時儲存空間使用量過高的狀況。臨時儲存空間使用量持續偏高可能表示磁碟空間已滿，可能導致任務失敗。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**將閾值設定為暫時性儲存大小的大約 80%。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon EFS
<a name="EFS"></a>

**PercentIOLimit**  
**維度：**FileSystemId  
**警示描述：**此警示有助於確保工作負載維持在檔案系統可用的 I/O 限制內。如果指標持續達到 I/O 限制，考慮將應用程式移至使用「I/O 效能上限」模式的檔案系統。如需進行故障診斷，請檢查連線至檔案系統的用戶端，以及對檔案系統限流的用戶端應用程式。  
**目的：**此警示用於偵測檔案系統有多接近一般用途效能模式的 I/O 限制。持續較高的 I/O 百分比可能是檔案系統無法根據 I/O 請求進行足夠擴展的指標，而且檔案系統可能會成為使用檔案系統之應用程式的資源瓶頸。  
**統計資料：**平均值  
**建議的閾值：**100.0  
**閾值對正：**當檔案系統達到其 I/O 限制時，可能會減慢讀取和寫入請求的回應。因此，建議您監控該指標，以免影響使用該檔案系統的應用程式。閾值可設定為 100% 左右。但是，可根據檔案系統特性將此值調整為較低的值。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**BurstCreditBalance**  
**維度：**FileSystemId  
**警示描述：**此警示有助於確保檔案系統用量有可用的爆量額度餘額。若沒有可用的爆量額度，由於輸送量較低，應用程式對檔案系統的存取將會受到限制。如果指標持續降至 0，考慮將輸送量模式變更為[彈性或佈建輸送量模式](https://docs.aws.amazon.com/efs/latest/ug/performance.html#throughput-modes)。  
**目的：**此警示用於偵測檔案系統的低爆量額度餘額。持續較低的爆量額度餘額可能是輸送量減慢和 I/O 延遲增加的指標。  
**統計資料：**平均值  
**建議的閾值：**0.0  
**閾值對正：**當檔案系統用完爆量額度，而且即使基準輸送量率降低，EFS 仍會繼續為所有檔案系統提供 1 Mbps 的計量輸送量。但是，建議監控指標是否為低爆量額度餘額，以避免檔案系統成為應用程式的資源瓶頸。閾值可設定為 0 位元組左右。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**LESS\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

## 具有 Container Insights 的 Amazon EKS
<a name="EKS-ContainerInsights"></a>

**node\$1cpu\$1utilization**  
**維度：**ClusterName  
**警示描述：**此警示有助於偵測 EKS 叢集工作節點中的高 CPU 使用率。如果使用率持續較高，則可能表示需要將工作節點取代為具有更大 CPU 或需要水平擴展系統的執行個體。  
**目的：**此警示有助於監控 EKS 叢集中工作節點的 CPU 使用率，使系統效能不會降級。  
**統計資料：**最大值  
**建議的閾值：**80.0  
**閾值對正：**建議將閾值設定為小於或等於 80%，以便在系統開始看到影響之前有足夠的時間對問題進行偵錯。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**node\$1filesystem\$1utilization**  
**維度：**ClusterName  
**警示描述：**此警示有助於偵測 EKS 叢集中工作節點的高檔案系統使用率。如果使用率持續較高，則您可能需要更新工作節點以擁有更大的磁碟區，或者可能需要水平擴展。  
**目的：**此警示有助於監控 EKS 叢集中工作節點的檔案系統使用率。如果使用率達到 100%，則可能導致應用程式失敗、磁碟 I/O 瓶頸、Pod 移出或節點完全無回應。  
**統計資料：**最大值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**如果磁碟壓力足夠 (表示磁碟將變滿)，則節點會標示為運作狀態不佳，並從節點移出 Pod。如果可用的檔案系統低於 kubelet 上設定的移出閾值，則會移出節點上具有磁碟壓力的 Pod。設定警示閾值，以便在從叢集中移出節點之前有足夠的回應時間。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**node\$1memory\$1utilization**  
**維度：**ClusterName  
**警示描述：**此警示有助於偵測 EKS 叢集工作節點中的高記憶體使用率。如果使用率持續較高，可能表示需要擴展 Pod 複本的數目或優化您的應用程式。  
**目的：**此警示有助於監控 EKS 叢集中工作節點的記憶體使用率，使系統效能不會降級。  
**統計資料：**最大值  
**建議的閾值：**80.0  
**閾值對正：**建議將閾值設定為小於或等於 80%，以便在系統開始看到影響之前有足夠的時間對問題進行偵錯。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**pod\$1cpu\$1utilization\$1over\$1pod\$1limit**  
**維度：**ClusterName、命名空間、服務  
**警示描述：**此警示有助於偵測 EKS 叢集 Pod 中的高 CPU 使用率。如果使用率持續較高，可能表示需要增加受影響 Pod 的 CPU 限制。  
**目的：**此警示有助於監控屬於 EKS 叢集中 Kubernetes 服務的 Pod 的 CPU 使用率，以便您快速識別服務的 Pod 取用的 CPU 是否高於預期。  
**統計資料：**最大值  
**建議的閾值：**80.0  
**閾值對正：**建議將閾值設定為小於或等於 80%，以便在系統開始看到影響之前有足夠的時間對問題進行偵錯。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**pod\$1memory\$1utilization\$1over\$1pod\$1limit**  
**維度：**ClusterName、命名空間、服務  
**警示描述：**此警示有助於偵測 EKS 叢集 Pod 中的高記憶體使用率。如果使用率持續較高，可能表示需要增加受影響 Pod 的記憶體限制。  
**目的：**此警示有助於監控 EKS 叢集中 Pod 的記憶體使用率，使系統效能不會降級。  
**統計資料：**最大值  
**建議的閾值：**80.0  
**閾值對正：**建議將閾值設定為小於或等於 80%，以便在系統開始看到影響之前有足夠的時間對問題進行偵錯。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon EventBridge 排程器
<a name="Eventbridge-Scheduler"></a>

**TargetErrorThrottledCount**  
**維度：**無  
**警示描述：**此警示可協助您識別目標限流。為了避免目標限流錯誤，請考慮[設定彈性時段](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-schedule-flexible-time-windows.html)來分散調用負載，或提高目標服務的限值。  
**目的：**此警示用於偵測目標限流錯誤，可能導致排程延遲。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**如果目標限流錯誤持續大於 0，排程傳輸會延遲。對於某些系統而言，目標限流錯誤在短時間內可能屬正常現象；而對其他系統來說，這則可能引發關注。相應地設定此警示的閾值 `datapointsToAlarm` 和 `evaluationPeriods`。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**InvocationThrottleCount**  
**維度：**無  
**警示描述：**此警示可協助您識別 Amazon EventBridge 排程器引發的調用限流。為避免調用限流錯誤，請考慮[設定彈性時段](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-schedule-flexible-time-windows.html)分散調用負載或[增大調用限流限制](https://docs.aws.amazon.com/scheduler/latest/UserGuide/scheduler-quotas.html)。  
**目的：**此警示用於偵測 Amazon EventBridge 排程器 調用調節錯誤，這可能會導致排程延遲。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**如果調用限流持續大於 0，排程傳輸會延遲。對於某些系統而言，調用限流錯誤在短時間內可能屬正常現象；而對其他系統來說，這則可能引發關注。相應地設定此警示的閾值 `datapointsToAlarm` 和 `evaluationPeriods`。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**InvocationDroppedCount**  
**維度：**無  
**警示描述：**此警示可協助您識別 Amazon EventBridge 排程器捨棄的調用。請考慮透過為排程[設定 DLQ](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) 來進行調查。  
**目的：**此警示用於偵測 捨棄的調用 Amazon EventBridge 排程器。如果您已在所有排程中正確設定 DLQ，捨棄的調用會顯示在 DLQ 中，您可以略過此警示設定。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**將閾值設定為 0 以偵測捨棄的調用。  
**期間：**60  
**警示資料點數目：**1  
**評估期：**1  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**InvocationsFailedToBeSentToDeadLetterCount**  
**維度：**無  
**警示描述：**此警示可協助您識別 Amazon EventBridge 排程器無法傳送至所設定 DLQ 的調用。如果指標持續大於 0，修改您的 DLQ 組態以解決問題。使用 `InvocationsFailedToBeSentToDeadLetterCount`\$1metrics 來判斷問題。  
**目的：**此警示用於偵測呼叫無法由 傳送到設定的 DLQ Amazon EventBridge 排程器。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**將閾值設定為 0，以偵測無法傳送至所設定 DLQ 的任何調用。此指標中也會顯示可重試的錯誤，所以此警示的 `datapointsToAlarm` 已設定為 15。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon Kinesis Data Streams
<a name="Kinesis"></a>

**GetRecords.IteratorAgeMilliseconds**  
**維度：**StreamName  
**警示描述：**此警示可偵測反覆運算器的存留期上限是否太長。針對即時資料處理應用程式，請根據延遲容容錯值設定資料保留。這通常在幾分鐘內即可完成。針對處理歷史資料的應用程式，請使用此指標來監控追趕速度。防止資料遺失的快速解決方案是，在診斷問題時增加保留期。您還可增加取用者應用程式中處理記錄的工作者數目。反覆運算器逐步存留期最常見的原因是實體資源不足，或者記錄處理邏輯沒有隨著串流輸送量的增加而進行擴展。如需詳細資訊，請參閱 [連結](https://repost.aws/knowledge-center/kinesis-data-streams-iteratorage-metric)。  
**目的：**此警示用於偵測串流中的資料是否因預留時間太長或記錄處理太慢而到期。它可協助您避免在達到 100% 串流保留時間之後遺失資料。  
**統計資料：**最大值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於串流保留期間和記錄處理延遲的容錯值。檢閱您的需求並分析歷史趨勢，然後將閾值設定為代表處理嚴重延遲的毫秒數。如果反覆運算器的存留期超過保留期的 50% (預設為 24 小時，最多可設定為 365 天)，會有因記錄過期而遺失資料的風險。您可監控指標，以確保沒有任何碎片達到此限制。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**GetRecords.Success**  
**維度：**StreamName  
**警示描述：**每當您的取用者成功從串流中讀取資料時，此指標會增加。`GetRecords` 在擲出例外狀況時，不會傳回任何資料。最常見的例外狀況是 `ProvisionedThroughputExceededException`，因為串流的請求速率太高，或是因為在指定秒數已經提供可用的輸送量。請減少請求的頻率或大小。如需詳細資訊，請參閱《Amazon Kinesis Data Streams 開發人員指南》中的串流[限制](https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html)，以及 AWS中的[錯誤重試和指數退避](https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html)。  
**目的：**此警示可偵測取用者從串流中擷取記錄是否失敗。藉由在此指標上設定警示，您可主動偵測任何與資料取用相關的問題，例如提高錯誤率或拒絕成功擷取。這讓您能夠及時執行動作，以解決潛在問題並保持順從的資料處理管道。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**視乎從串流擷取記錄的重要性，根據應用程式失敗記錄的容錯值來設定閾值。閾值應與成功操作百分比相對應。您可使用歷史 GetRecords 指標資料，做為可接受失敗率的參考。您還應在設定閾值時考慮重試，因為失敗的記錄可以重試。這有助於防止暫時性尖峰觸發不必要的警示。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**PutRecord.Success**  
**維度：**StreamName  
**警示描述：**此警示可偵測失敗的 `PutRecord` 操作次數何時違反閾值。調查資料生產者日誌，以尋找失敗的根本原因。最常見的原因是，碎片上的輸送量佈建不足，從而導致 `ProvisionedThroughputExceededException`。之所以發生這種情況，是因為串流的請求速率太高，或是嘗試擷取到碎片中的輸送量太高。請減少請求的頻率或大小。如需詳細資訊，請參閱串流[限制](https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html)和[錯誤重試和指數退避 AWS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html)。  
**目的：**此警示可偵測將記錄擷取到串流中是否失敗。它可協助您識別將資料寫入串流的問題。藉由在此指標上設定警示，您可主動偵測生產者在將資料發布到串流時的任何問題，例如提高錯誤率或減少成功發布的記錄。這讓您能夠及時執行動作，以解決潛在問題並確保可靠的資料擷取程序。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據資料擷取和處理服務的重要性，根據應用程式失敗記錄的容錯值來設定閾值。閾值應與成功操作百分比相對應。您可使用歷史 PutRecord 指標資料，做為可接受失敗率的參考。您還應在設定閾值時考慮重試，因為失敗的記錄可以重試。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**PutRecords.FailedRecords**  
**維度：**StreamName  
**警示描述：**此警示可偵測失敗的 `PutRecords` 何時超出閾值。Kinesis Data Streams 會嘗試處理每個 `PutRecords` 請求中的所有記錄，但單一記錄失敗不會停止處理後續記錄。這些失敗的主要原因是，超出串流或個別碎片的輸送量。常見的原因是，流量尖峰和網路延遲會導致記錄到達串流不均勻。您應偵測未成功處理的記錄，並在後續呼叫中重試這些記錄。如需詳細資訊，請參閱[使用 PutRecords 時處理失敗](https://docs.aws.amazon.com/streams/latest/dev/developing-producers-with-sdk.html)。  
**目的：**此警示可偵測在使用批次操作將記錄置於串流中時是否出現持續失敗。藉由在此指標上設定警示，您可主動偵測失敗記錄的增加，從而能夠及時執行動作來解決潛在問題，並確保順暢、可靠的資料擷取程序。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**將閾值設定為反映應用程式失敗記錄容錯值的失敗記錄數目。您可使用歷史資料，做為可接受失敗值的參考。您還應在設定閾值時考慮重試，因為失敗的記錄可在後續的 PutRecords 呼叫中重試。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ReadProvisionedThroughputExceeded**  
**維度：**StreamName  
**警示描述：**警示可追蹤導致讀取輸送容量限流的記錄數目。如果您發現持續受到限流，應考慮在串流中新增更多碎片，以增加佈建讀取輸送量。如果有多個取用者應用程式在串流中執行，並且共用 `GetRecords` 限制，建議您透過強化廣發功能來註冊新的取用者應用程式。如果新增更多碎片並不會降低限流數目，則可能相較於其他碎片，您可能正在讀取一個「熱」碎片。啟用增強型監控，尋找「熱」碎片，然後將其分割。  
**目的：**此警示可偵測取用者在超過佈建讀取輸送量時 (由您擁有的碎片數目決定) 是否受到限流。在此情況下，您將無法從串流中讀取，並且串流可開始備份。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**通常限流請求可重試，因此將閾值設定為零會使警示過於敏感。但是，持續限流可能會影響從串流中讀取，並且應會觸發警示。根據應用程式的限流請求，將閾值設定為百分比，然後重試組態。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**SubscribeToShardEvent.MillisBehindLatest**  
**維度：**StreamName、ConsumerName  
**警示描述：**此警示可偵測應用程式中的記錄處理延遲何時違反閾值。暫時性問題 (例如下游應用程式的 API 操作失敗) 可能會導指標突增。您應調查其是否持續發生。一個常見的原因是，取用者處理記錄的速度不夠快，因為隨著串流輸送量的增加，實體資源不足或是未擴展記錄處理邏輯。封鎖關鍵路徑中的呼叫，通常是記錄處理速度變慢的原因。您可增加碎片數目以提高並行處理程度。您還應確認基礎處理節點在尖峰需求期間擁有足夠的實體資源。  
**目的：**此警示可偵測串流碎片事件訂閱中的延遲。這表示處理延遲，並且可協助識別取用者應用程式效能或整體串流運作狀態的潛在問題。若處理延遲變得顯著，您應調查並解決任何瓶頸或取用者應用程式效率問題，以確保即時處理資料，以及最大限度地減少資料積壓。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於應用程式的延遲容錯值。檢閱應用程式需求並分析歷史趨勢，然後相應地選取閾值。若 SubscribeToShard 呼叫成功，您的取用者會開始透過最長達 5 分鐘的持續連線接收 SubscribeToShardEvent 事件，之後如果您想要繼續接收記錄，則需要再次呼叫 SubscribeToShard 以續約訂閱。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**WriteProvisionedThroughputExceeded**  
**維度：**StreamName  
**警示描述：**此警示可偵測導致寫入輸送容量限流的記錄數目何時達到閾值。若您的生產者超過佈建寫入輸送量 (由您擁有的碎片數目確定) 時，則會對其限流，並且您將無法將記錄放入串流。為了解決持續限流問題，您應考慮將碎片新增至串流。這會提高您的佈建寫入輸送量，並防止未來限流。擷取記錄時，您還應考慮選擇磁碟分割區索引鍵。隨機分割區索引鍵是首選，因為在可能的情況下它會將記錄平均分散到串流碎片中。  
**目的：**此警示可偵測您的生產者是否因串流或碎片限流而被拒絕寫入記錄。如果您的串流處於佈建模式，則設定此警示可協助您在資料串流達到限制時主動執行動作，從而讓您優化佈建容量或執行適當的擴展動作，以避免資料遺失並確保順暢的資料處理。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**通常限流請求可重試，因此將閾值設定為零會使警示過於敏感。但是，持續限流可能會影響串流的寫入，因此您應設定警示閾值來偵測此問題。根據應用程式的限流請求，將閾值設定為百分比，然後重試組態。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Lambda
<a name="Lambda"></a>

**ClaimedAccountConcurrency**  
**維度：**無  
**警示描述：**此警示有助於監控 Lambda 函式的並行是否接近您帳戶的區域層級並行限制。如果函數達到並行限制，則會開始對函數限流。您可執行下列動作以避免限流。  

1. 在此區域中[請求增加並行](https://repost.aws/knowledge-center/lambda-concurrency-limit-increase)。

1. 識別並減少任何未使用的預留並行或佈建並行。

1. 識別函式中的效能問題，以提高處理速度，從而改善輸送量。

1. 增加函式的批次大小，以便每次函式調用處理更多訊息。
**目的：**此警示可主動偵測 Lambda 函式的並行是否接近您帳戶的區域級並行配額，以便您可對其執行動作。如果 `ClaimedAccountConcurrency` 達到帳戶的區域層級並行配額，系統會對該函式限流。如果您使用預留並行 (RC) 或佈建並行 (PC)，相較於 `ConcurrentExecutions` 警示，此警示能提供更清晰的並行利用率資訊。  
**統計資料：**最大值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**應該針對為該區域內帳戶設定的並行配額，計算約 90% 的值，並將結果用作閾值。根據預設，您的帳戶設有一個區域中所有函數共計 1,000 的並行配額。不過，您應該透過 Service Quotas 儀表板檢查帳戶的配額。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**錯誤**  
**維度：**FunctionName  
**警示描述：**此警示可偵測高錯誤計數。錯誤包括程式碼擲回的例外狀況，以及 Lambda 執行期擲回的例外狀況。您可檢查與該函數相關的日誌以診斷問題。  
**目的：**警示有助於偵測函數調用中的高錯誤計數。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**將閾值設定為大於零的數字。準確值可能取決於應用程式中的容錯值。了解函數正在處理的調用重要性。針對某些應用程式，任何錯誤可能都是不可接受的，而其他應用程式可能會允許一定的錯誤餘度。  
**期間：**60  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**限流**  
**維度：**FunctionName  
**警示描述：**此警示可偵測大量限流調用請求。若沒有可用於縱向擴展的並行，就會發生限流。有幾種方法可解決此問題。1) 請求此區域中的 AWS Support 增加並行。2) 識別函數中的效能問題，以提高處理速度，從而改善輸送量。3) 增加函數的批次大小，以便每次函數調用處理更多訊息。  
**目的：**警示有助於偵測 Lambda 函數的大量限流調用請求。務必要了解請求是否因限流而持續遭拒，以及是否需要改善 Lambda 函數效能或增加並行容量來避免持續限流。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**將閾值設定為大於零的數字。閾值的準確值可取決於應用程式容錯值。根據函數的用量和擴展需求來設定閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**Duration (持續時間)**  
**維度：**FunctionName  
**警示描述：**此警示可偵測 Lambda 函數處理事件較常的持續時間。較長的持續時間可能是因為函數程式碼的變更使得函數執行時間延長，或者函數的相依項需要更長的處理時間。  
**目的：**此警示可偵測 Lambda 函數的長時間執行持續時間。較長的執行期持續時間表示函數調用時間延長，而且如果 Lambda 處理的事件數目增多，也會影響調用的並行容量。務必要了解 Lambda 函數是否持續花費比預期更長的執行時間。  
**統計資料：**p90  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**持續時間閾值取決於應用程式和工作負載以及您的效能需求。針對高效能需求，將閾值設定為較短的時間，以查看函數是否符合預期。您還可分析持續時間指標的歷史資料，以查看花費的時間是否符合函數的效能預期，然後將閾值設定為比歷史平均值更長的時間。確定將閾值設定為低於設定的函數逾時值。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ConcurrentExecutions**  
**維度：**FunctionName  
**警示描述：**此警示有助於監控函數的並行性是否接近您帳戶的區域層級並行限制。如果函數達到並行限制，則會開始對函數限流。您可執行下列動作以避免限流。  

1. 在此區域中請求增加並行。

1. 識別函式中的效能問題，以提高處理速度，從而改善輸送量。

1. 增加函式的批次大小，以便每次函式調用處理更多訊息。
若要更清楚了解預留並行和佈建並行使用率，請改為針對新指標 `ClaimedAccountConcurrency` 設定警示。  
**目的：**此警示可主動偵測函數的並行性是否接近您帳戶的區域級並行配額，以便您可對其執行動作。如果函數達到帳戶的區域層級並行配額，則會對該函數限流。  
**統計資料：**最大值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**將閾值設定為在區域帳戶中設定的約 90% 的並行配額。根據預設，您的帳戶設有一個區域中所有函數共計 1,000 的並行配額。不過，您可以檢查帳戶的配額，因為可以聯絡 AWS 支援來增加配額。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Lambda Insights
<a name="LambdaInsights"></a>

建議針對下列 Lambda Insights 指標設定最佳實務警示。

**memory\$1utilization**  
**維度：**function\$1name  
**警示描述：**此警示用於偵測 Lambda 函數的記憶體使用率是否接近設定的限制。如需進行故障診斷，您可嘗試 1) 優化您的程式碼。2) 準確估計記憶體需求，藉此來正確調整記憶體配置大小。您可參考 [Lambda 功能調校](https://docs.aws.amazon.com/lambda/latest/operatorguide/profile-functions.html)的相同內容。3) 使用連線集區。如需了解 RDS 資料庫的連線集區，請參閱[搭配 Lambda 使用 Amazon RDS Proxy](https://aws.amazon.com/blogs/compute/using-amazon-rds-proxy-with-aws-lambda/)。4) 您還可考慮設計函數，以避免在調用之間記憶體中存放大量資料。  
**目的：**此警示用於偵測 Lambda 函數的記憶體使用率是否接近設定的限制。  
**統計資料：**平均值  
**建議閾值：**90.0  
**閾值對正：**將閾值設定為 90%，以便在記憶體使用率超過所配置記憶體的 90% 時收到警示。如果您為工作負載的記憶體使用率感到擔憂，可將其調整為較低的值。您還可檢查此指標的歷史資料，並相應地設定閾值。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**ComparisonOperator：**GREATER\$1THAN\$1THRESHOLD

## Amazon VPC (`AWS/NATGateway`)
<a name="NATGateway"></a>

**ErrorPortAllocation**  
**維度：**NatGatewayId  
**警示描述：**此警示有助於偵測 NAT Gateway 何時無法將連接埠配置給新的連線。若要解決此問題，請參閱[解決 NAT Gateway 上的連接埠配置錯誤。](https://repost.aws/knowledge-center/vpc-resolve-port-allocation-errors)  
**目的：**此警示用於偵測 NAT Gateway 是否無法配置來源連接埠。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**如果 ErrorPortAllocation 的值大於零，這意味著透過 NatGateway 開啟的單一熱門目的地並行連線太多。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**PacketsDropCount**  
**維度：**NatGatewayId  
**警示描述：**此警示有助於偵測 NAT Gateway 何時捨棄封包。這可能是因為 NAT Gateway 發生問題，因此請檢查[AWS 服務運作狀態儀表板](https://health.aws.amazon.com/health/status)，以了解您區域中 AWS NAT Gateway 的狀態。這可協助您關聯與使用 NAT Gateway 的流量相關的網路問題。  
**目的：**此警示用於偵測 NAT Gateway 是否會捨棄封包。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**您應計算 NAT Gateway 上總流量 0.01% 的值，並使用該結果作為閾值。使用 NAT Gateway 上的流量歷史資料來確定閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## AWS 私有連結 (`AWS/PrivateLinkEndpoints`)
<a name="PrivateLinkEndpoints"></a>

**PacketsDropped**  
**維度：**VPC ID、VPC 端點 ID、端點類型、子網路 ID、服務名稱  
**警示描述：**此警示可監控端點捨棄的封包數目，藉此來協助偵測端點或端點服務是否運作狀態不良。請注意，封包大於 8,500 位元組且到達 VPC 端點的封包會被捨棄。如需進行故障診斷，請參閱[介面 VPC 端點與端點服務之間的連線問題](https://repost.aws/knowledge-center/connect-endpoint-service-vpc)。  
**目的：**此警示用於偵測端點或端點服務是否運作狀態不良。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據使用案例設定閾值。如果您想要了解端點或端點服務的運作狀態不良情況，應將閾值設定為低，以便在大量資料遺失之前有機會修復問題。您可使用歷史資料來了解捨棄封包的容錯值，並相應地設定閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## AWS 私有連結 (`AWS/PrivateLinkServices`)
<a name="PrivateLinkServices"></a>

**RstPacketsSent**  
**維度：**服務 ID、Load Balancer Arn、Az  
**警示描述：**此警示可協助您根據傳送至端點的重設封包數目，偵測端點服務運作狀態不良的目標。當您對服務取用者的連線錯誤進行偵錯時，您可驗證服務是否正在使用 RstPacketsSent 指標來重設連線，或者網路路徑上是否出現其他失敗。  
**目的：**此警示用於偵測端點服務運作狀態不良的目標。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**閾值取決於使用案例。如果您的使用案例可容忍運作狀態不良的目標，您可將閾值設定為較高。如果使用案例無法容忍運作狀態不良的目標，您可將閾值設定得極低。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## `Amazon RDS`
<a name="RDS"></a>

**CPUUtilization**  
**維度：**DBInstanceIdentifier  
**警示描述：**此警示有助於監控一致的高 CPU 使用率。CPU 使用率會測量非閒置時間。請考慮使用 [Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Enabling.html) 或 [Performance Insights](https://aws.amazon.com/rds/performance-insights/) 來檢閱 MariaDB、MySQL、Oracle 以及 PostgreSQL 的哪個[等待時間](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring-Available-OS-Metrics.html)正在耗用大部分 CPU 時間 (`guest`、`irq`、`wait`、`nice` 等)。然後評估哪些查詢消耗的 CPU 量最高。如果無法調整工作負載，請考慮移至較大的資料庫執行個體類別。  
**意圖：**此警示用於檢測一致的高 CPU 使用率，以防止非常高的回應時間和逾時。如果要檢查 CPU 使用率的微爆量，可以設定較低的警示評估時間。  
**統計資料：**平均值  
**建議的閾值：**90.0  
**閾值對正：**CPU 消耗的隨機峰值可能不會影響資料庫效能，但持續的高 CPU 使用率可能會阻礙即將到來的資料庫請求。視整體資料庫工作負載而定，RDS/Aurora 執行個體的高 CPU 使用率可能會降低整體效能。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**DatabaseConnections**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示會偵測大量連線。檢閱現有連線，並終止處於「休眠」狀態或未正確關閉的連線。請考慮使用連線集區來限制新連線的數目。或者，增加資料庫執行個體大小，以使用具有更多記憶體的類別，以及較高的 `max\$1connections` 預設值，或在 [RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html)、Aurora [MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Performance.html) 以及 [PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Managing.html) 中增加目前類別的 `max\$1connections` 值 (如果它支援您的工作負載)。  
**意圖：**當達到資料庫連線數量上限時，此警示可協助防止被拒絕的連線。如果您經常變更資料庫執行個體類別，則不建議使用此警示，因為這樣做會變更記憶體和預設連線數目上限。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**允許的連線數目取決於資料庫執行個體類別的大小，以及與程序/連線相關的資料庫引擎特定參數。應該計算資料庫連線數目上限 90-95% 之間的值，並使用該結果作為閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**EBSByteBalance%**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於監控剩餘輸送量額度的低百分比。如需疑難排解，請檢查 [RDS 中的延遲問題](https://repost.aws/knowledge-center/rds-latency-ebs-iops-bottleneck)。  
**意圖：**此警示用於偵測爆量儲存貯體中剩餘輸送量額度的低百分比。低位元組平衡百分比可能會造成輸送量瓶頸問題。不建議 Aurora PostgreSQL 執行個體使用此警示。  
**統計資料：**平均值  
**建議閾值：**10.0  
**閾值對正：**低於 10％ 的輸送量額度餘額被認為很差，應該相應地設定閾值。如果應用程式可以容忍較低的工作負載輸送量，也可以設定較低的閾值。  
**期間：**60  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**EBSIOBalance%**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於監控剩餘 IOPS 額度的低百分比。如需疑難排解，請參閱 [RDS 中的延遲問題](https://repost.aws/knowledge-center/rds-latency-ebs-iops-bottleneck)。  
**意圖：**此警示用於偵測爆量儲存貯體中剩餘 I/O 額度的低百分比。低 IOPS 平衡百分比可能會造成 IOPS 瓶頸問題。不建議 Aurora 執行個體使用此警示。  
**統計資料：**平均值  
**建議閾值：**10.0  
**閾值對正：**低於 10％ 的 IOPS 額度餘額被認為很差，可相應地設定閾值。如果應用程式可以容忍較低的工作負載 IOPS，也可以設定較低的閾值。  
**期間：**60  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**FreeableMemory**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於監控低可用記憶體，這可能表示資料庫連線出現峰值，或執行個體可能面臨高記憶體壓力。透過監控除 `FreeableMemory` 之外的 `SwapUsage` 的 CloudWatch 指標來檢查記憶體壓力。如果執行個體記憶體的耗用量經常太高，這表示您應該檢查工作負載或升級執行個體類別。對於 Aurora 讀取器資料庫執行個體，請考慮將其他讀取器資料庫執行個體新增至叢集。如需有關 Aurora 疑難排解的資訊，請參閱[可用記憶體問題](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Troubleshooting.html#Troubleshooting.FreeableMemory)。  
**意圖：**此警示用於協助防止記憶體不足，從而導致連線被拒絕。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**視工作負載和執行個體類別而定，閾值的不同值可能適當。理想情況下，可用記憶體不應長時間低於總記憶體的 25%。對於 Aurora，可將此閾值設為接近 5%，因為接近 0 的指標意味著資料庫執行個體已盡可能擴展。您可以分析此指標的歷史行為，以判斷合理的閾值級別。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**FreeLocalStorage**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於監控免費本機儲存空間是否不足。Aurora PostgreSQL 相容版本使用本機儲存體來存放錯誤日誌和臨時檔案。Aurora MySQL 會使用本機儲存體，存放錯誤日誌、一般日誌、慢速查詢日誌、稽核日誌，以及非 InnoDB 暫存資料表。這些本機儲存磁碟區由 Amazon EBS Store 支援，且可透過使用更大的資料庫執行個體類別來擴充。如需疑難排解，請查看 Aurora [PostgreSQL 相容版本](https://repost.aws/knowledge-center/postgresql-aurora-storage-issue)和 [MySQL 相容版本](https://repost.aws/knowledge-center/aurora-mysql-local-storage)。  
**意圖：**如果您未使用 Aurora Serverless v2 或更高版本，則此警示用於偵測 Aurora 資料庫執行個體是否快達到本機儲存限制。當您將非持續性資料 (例如暫存資料表和日誌檔案) 儲存在本機儲存體時，本機儲存體可能會達到容量。此警示可防止資料庫執行個體在耗用完本機儲存體時發生的空間不足錯誤。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**您應該根據磁碟區使用量的速度和趨勢計算大約 10%-20% 的可用儲存體容量，然後使用該結果作為閾值，以便在磁碟區達到限制之前主動採取行動。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**FreeStorageSpace**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示會監測可用儲存空間是否不足。如果經常接近儲存容量限制，請考慮擴充資料庫儲存體。應加入一些緩衝，以應對應用程式中無法預見的需求增長。或者，請考慮啟用 RDS 儲存體自動擴展。此外，請考慮刪除未使用或過時的資料和日誌來釋放更多空間。如需進一步資訊，請參閱 [RDS 耗盡儲存體](https://repost.aws/knowledge-center/rds-out-of-storage)文件和 [PostgreSQL 儲存體問題](https://repost.aws/knowledge-center/diskfull-error-rds-postgresql)文件。  
**意圖：**此警示有助於防止儲存體已滿問題。當資料庫執行個體耗盡儲存體時，這可防止出現停機。如果已啟用儲存體自動擴展，或經常變更資料庫執行個體的儲存容量，則不建議使用此警示。  
**統計資料：**最小值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**閾值將取決於目前配置的儲存空間。通常，應該計算已配置儲存空間 10% 的值，並使用該結果作為閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**MaximumUsedTransactionIDs**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於防止 PostgreSQL 的交易 ID 回卷。請參閱[此部落格](https://aws.amazon.com/blogs/database/implement-an-early-warning-system-for-transaction-id-wraparound-in-amazon-rds-for-postgresql/)中的疑難排解步驟，以調查並解決問題。也可以參考[此部落格](https://aws.amazon.com/blogs/database/understanding-autovacuum-in-amazon-rds-for-postgresql-environments/)，進一步熟悉自動清空概念、常見問題和最佳實務。  
**意圖：**此警示可用於協助防止 PostgreSQL 的交易 ID 回卷。  
**統計資料：**平均值  
**建議閾值：**1.0E9  
**閾值對正：**將此閾值設定為 10 億，讓您有時間調查問題。預設的 autovacuum\$1freeze\$1max\$1age 值為 2 億。如果最舊的交易存留期為 10 億，則自動清空將此閾值保持在 2 億個交易 ID 目標以下時遇到問題。  
**期間：**60  
**警示資料點數目：**1  
**評估期：**1  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ReadLatency**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於監控高讀取延遲。如果儲存體延遲很高，這是因為工作負載超出資源限制。可以檢閱與執行個體相關的 I/O 使用率並配置儲存體組態。請參閱[疑難排解 IOPS 瓶頸造成的 Amazon EBS 磁碟區延遲](https://repost.aws/knowledge-center/rds-latency-ebs-iops-bottleneck)。對於 Aurora，可以切換到具有 [I/O 優化儲存組態](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.storage-type.html)的執行個體類別。如需指引，請參閱[規劃 Aurora 中的 I/O](https://aws.amazon.com/blogs/database/planning-i-o-in-amazon-aurora/)。  
**意圖：**此警示用於偵測高讀取延遲。資料庫磁碟通常具有較低的讀取/寫入延遲，它們可能存在會導致高延遲操作的問題。  
**統計資料：**p90  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於您的使用案例。讀取延遲超過 20 毫秒可能是需要調查的原因。如果應用程式具有較高的讀取操作延遲，也可以設定較高的閾值。請檢閱讀取延遲的重要性和要求，並分析此指標的歷史行為，以確定合理的閾值級別。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**ReplicaLag**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示協助您了解複本落後於主要執行個體的秒數。若在來源資料庫執行個體上未發生使用者交易，PostgreSQL 僅供讀取複本會回報最多五分鐘的複寫延遲。當 ReplicaLag 指標到達 0，複本即已跟上主要資料庫執行個體。如果 ReplicaLag 指標傳回 -1，表示複寫目前處於非作用中。如需 RDS PostgreSQL 的相關指引，請參閱[複寫最佳實務](https://aws.amazon.com/blogs/database/best-practices-for-amazon-rds-postgresql-replication/)；如需疑難排解 `ReplicaLag` 和相關錯誤，請參閱[疑難排解 ReplicaLag](https://repost.aws/knowledge-center/rds-postgresql-replication-lag)。  
**意圖：**此警示可以偵測複本延遲，這反映了在主要執行個體出現故障時可能發生資料丟失。如果複本遠遠落後於主要執行個體且主要執行個體失敗，則複本將遺失主要執行個體中的資料。  
**統計資料：**最大值  
**建議閾值：**60.0  
**閾值對正：**通常情況下，可接受的延遲取決於應用程式。建議不要超過 60 秒。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**WriteLatency**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於監控高寫入延遲。如果儲存體延遲很高，這是因為工作負載超出資源限制。可以檢閱與執行個體相關的 I/O 使用率並配置儲存體組態。請參閱[疑難排解 IOPS 瓶頸造成的 Amazon EBS 磁碟區延遲](https://repost.aws/knowledge-center/rds-latency-ebs-iops-bottleneck)。對於 Aurora，可以切換到具有 [I/O 優化儲存組態](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.storage-type.html)的執行個體類別。如需指引，請參閱[規劃 Aurora 中的 I/O](https://aws.amazon.com/blogs/database/planning-i-o-in-amazon-aurora/)。  
**意圖：**此警示用於偵測高寫入延遲。雖然資料庫磁碟通常具有低讀取/寫入延遲，但可能會遇到導致高延遲操作的問題。進行監控將確保磁碟延遲與預期一樣低。  
**統計資料：**p90  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於您的使用案例。寫入延遲超過 20 毫秒可能是需要調查的原因。如果應用程式具有較高的寫入操作延遲，也可以設定較高的閾值。請檢閱寫入延遲的重要性和要求，並分析此指標的歷史行為，以確定合理的閾值級別。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**DBLoad**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於監控高資料庫負載。如果程序數目超過 vCPUs 數目，則程序會開始排入佇列。佇列增加時，效能會受到影響。若資料庫負載通常高於最大 vCPU，而主要等待狀態為 CPU，則 CPU 會超過負載。在此情況下，可以在 Performance Insights/Enhanced Monitoring 中監控 `CPUUtilization`、`DBLoadCPU` 和排入佇列的任務。您可能會想要節制與執行個體間的連線、以高 CPU 負載來微調任何 SQL 查詢、或者考慮使用較大的執行個體類別。處於任何等待狀態的密集且穩定的執行個體表示可能有您應解決的瓶頸或資源爭用問題。  
**意圖：**此警示用於偵測高資料庫負載。高資料庫負載可能會導致資料庫執行個體發生效能問題。此警示不適用於無伺服器資料庫執行個體。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**最大 vCPU 數值由資料庫執行個體的 vCPU (虛擬 CPU) 核心數目決定。根據最大 vCPU 的不同，閾值有不同的值。理想情況下，資料庫負載不應超過 vCPU 數線。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**AuroraVolumeBytesLeftTotal**  
**維度：**DBClusterIdentifier  
**警示說明：**此警示有助於監控低剩餘總容量。剩餘總容量達到大小限制時，叢集會報告空間不足錯誤。Aurora 儲存會根據叢集磁碟區中的資料自動擴展，並根據[資料庫引擎版本](https://repost.aws/knowledge-center/aurora-version-number)擴充高達至 128 TiB 或 64 TiB。因此，可捨棄不再需要的資料表和資料庫，以減少儲存空間。如需詳細資訊，請參閱[儲存體擴展](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Performance.html)。  
**意圖：**此警示用於偵測 Aurora 叢集與磁碟區大小限制的差距。此警示可防止資料庫執行個體耗盡儲存空間時發生的空間不足錯誤。建議此警示僅用於 Aurora MySQL。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**應該根據磁碟區使用量增加的速度和趨勢來計算 10%-20% 的實際大小限制，然後使用該結果作為閾值，以便在磁碟區達到限制之前主動採取行動。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**AuroraBinlogReplicaLag**  
**維度：**DBClusterIdentifier, Role=WRITER  
**警示說明：**此警示有助於監控 Aurora 寫入器執行個體複寫的錯誤狀態。如需詳細資訊，請參閱[跨 AWS 區域複寫 Aurora MySQL 資料庫叢集](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.CrossRegion.html)。如需疑難排解，請參閱 [Aurora MySQL 複寫問題](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.MySQL)。  
**意圖：**此警示用於偵測寫入器執行個體是否處於錯誤狀態，並且無法複寫來源。建議此警示僅用於 Aurora MySQL。  
**統計資料：**平均值  
**建議閾值：**-1.0  
**閾值對正：**建議使用 -1 作為閾值，因為如果複本處於錯誤狀態，Aurora MySQL 會發布此值。  
**期間：**60  
**警示資料點數目：**2  
**評估期：**2  
**比較運算子：**LESS\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**BlockedTransactions**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於監控 Aurora 資料庫執行個體中較高的封鎖交易計數。被封鎖的交易可以在轉返或遞交中結束。高並行性、交易閒置或長時間執行的交易都可能導致交易遭到封鎖。如需疑難排解，請參閱 [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/ams-waits.row-lock-wait.html) 文件。  
**意圖：**此警示用於偵測 Aurora 資料庫執行個體中較高的封鎖交易計數，以防止交易轉返和效能降低。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**應使用 `ActiveTransactions` 指標來計算執行個體所有交易的 5%，並使用該結果作為閾值。也可檢閱被封鎖交易的重要性和要求，並分析此指標的歷史行為，以確定合理的閾值級別。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**BufferCacheHitRatio**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示可協助您監控 Aurora 叢集的持續較低的快取命中率。低命中率表示您對此資料庫執行個體的查詢經常移至磁碟。如需進行疑難排解，請調查工作負載，查看哪些查詢導致了此行為，並參閱[資料庫執行個體 RAM 建議](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.BestPractices.html#Aurora.BestPractices.Performance.Sizing)文件。  
**意圖：**此警示用於偵測持續較低的快取命中率，以防止 Aurora 執行個體中的持續效能降低。  
**統計資料：**平均值  
**建議的閾值：**80.0  
**閾值對正：**可以將緩衝區快取命中率的閾值設定為 80%。但是，您可根據可接受的效能層級和工作負載特性來調整此值。  
**期間：**60  
**警示資料點數目：**10  
**評估期：**10  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**EngineUptime**  
**維度：**DBClusterIdentifier, Role=WRITER  
**警示說明：**此警示有助於監控寫入器資料庫執行個體的低停機時間。寫入器資料庫執行個體可能會因為重新開機、維護、升級或容錯移轉而關閉。當執行時間由於叢集中的容錯移轉而達到 0 並且叢集擁有一個或多個 Aurora 複本時，Aurora 複本會在失敗事件期間提升為主要寫入器執行個體。若要提高資料庫叢集的可用性，可考慮在兩個或更多不同的可用區域建立一個或多個 Aurora 複本。如需詳細資訊，請參閱[影響 Aurora 停機時間的因素](https://repost.aws/knowledge-center/aurora-mysql-downtime-factors)。  
**意圖：**此警示用於偵測 Aurora 寫入器資料庫執行個體是否處於停機狀態。這可以防止因為當機或容錯移轉而在寫入器執行個體中發生長時間故障。  
**統計資料：**平均值  
**建議的閾值：**0.0  
**閾值對正：**失敗事件會導致短暫中斷，在此期間，讀取和寫入操作會失敗，並引發例外狀況。不過，服務通常會在 60 秒之內還原，往往不超過 30 秒。  
**期間：**60  
**警示資料點數目：**2  
**評估期：**2  
**比較運算子：**LESS\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**RollbackSegmentHistoryListLength**  
**維度：**DBInstanceIdentifier  
**警示說明：**此警示有助於監控 Aurora 執行個體的持續較高的轉返區段歷史記錄長度。若 InnoDB 歷史記錄清單長度較長，表示該清單具有過多舊資料列版本，導致查詢和資料庫關閉變慢。如需詳細資訊和疑難排解，請參閱 [InnoDB 歷史記錄清單長度顯著增加](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/proactive-insights.history-list.html)文件。  
**意圖：**此警示用於偵測持續較高的轉返區段歷史記錄長度。這可協助您避免 Aurora 執行個體中的持續效能降低和 CPU 使用率過高。建議此警示僅用於 Aurora MySQL。  
**統計資料：**平均值  
**建議閾值：**1000000.0  
**閾值對正：**將此閾值設定為 100 萬，讓您有時間調查問題。但是，您可根據可接受的效能層級和工作負載特性來調整此值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**StorageNetworkThroughput**  
**維度：**DBClusterIdentifier, Role=WRITER  
**警示說明：**此警示有助於監控高儲存網路輸送量。如果儲存網路輸送量超過 [EC2 執行個體](https://aws.amazon.com/ec2/instance-types/)的總網路頻寬，可能會導致較高的讀取和寫入延遲，進而導致效能降低。您可以從 AWS 主控台檢查您的 EC2 執行個體類型。若要進行疑難排解，請檢查有關寫入/讀取延遲的任何變更，並評估您是否也對此指標發出警示。如果是這種情況，請在觸發警示時評估您的工作負載模式。這可以協助您確定是否可以優化工作負載以減少網路流量的總量。如果這是不可能的，可能需要考慮擴展您的執行個體。  
**意圖：**此警示用於偵測高儲存網路輸送量。偵測高輸送量可防止網路封包丟失和效能降低。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**應該計算 EC2 執行個體類型總網路頻寬的 80%-90% 左右，然後使用該結果作為閾值，以便在網路封包受到影響之前主動採取動作。也可檢閱儲存網路輸送量的重要性和要求，並分析此指標的歷史行為，以確定合理的閾值級別。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## `Amazon Route 53 Public Data Plane`
<a name="Route53"></a>

**HealthCheckStatus**  
**維度：**HealthCheckId  
**警示描述：**此警示有助於根據運作狀態檢程式來偵測運作狀態不良的端點。若要了解導致運作狀態不良的失敗原因，使用 Route 53 運作狀態檢查主控台中的「運作狀態檢查程式」索引標籤來檢視每個區域的狀態，以及運作狀態檢查的上一次失敗。狀態索引標籤也會顯示端點報告為運作狀態不良的原因。請參閱[故障診斷步驟](https://repost.aws/knowledge-center/route-53-fix-unhealthy-health-checks)。  
**目的：**此警示使用 Route53 運作狀態檢查程式來偵測運作狀態不良的端點。  
**統計資料：**平均值  
**建議的閾值：**1.0  
**閾值對正：**端點運作狀態良好時，會將其狀態報告為 1。小於 1 的一切數值都為運作狀態不良。  
**期間：**60  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

## `Amazon S3`
<a name="S3"></a>

**4xxErrors**  
**維度：**BucketName、FilterId  
**警示描述：**此警示可協助我們報告對用戶端請求做出回應時產生的 4xx 錯誤狀態碼總數。例如，403 錯誤碼可能表示 IAM 政策不正確，而 404 錯誤碼可能表示用戶端應用程式操作不正確。暫時[啟用 S3 伺服器存取日誌記錄](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html)可協助您使用 HTTP 狀態和錯誤碼欄位，來找出問題的來源。若要了解有關錯誤碼的詳細資訊，請參閱[錯誤回應](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html)。  
**目的：**此警示用於建立典型 4xx 錯誤率的基準，以便您查看任何可能表示設定問題的異常狀況。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議的閾值會在請求總數的 5% 以上出現 4XX 錯誤時偵測到。經常發生的 4XX 錯誤應觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。您還可調整閾值以適應請求的負載，以可接受的 4XX 錯誤層級為基準。您還可分析歷史資料，以尋找應用程式工作負載可接受的錯誤率，然後相應地調整閾值。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**5xxErrors**  
**維度：**BucketName、FilterId  
**警示描述：**此警示有助於偵測用戶端的大量錯誤。這些錯誤表示用戶端發出伺服器無法完成的請求。這可協助您關聯應用程式因 S3 而將面臨的問題。如需協助您有效處理或減少錯誤的詳細資訊，請參閱[優化效能設計模式](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance-design-patterns.html#optimizing-performance-timeouts-retries)。錯誤也可能是由 S3 問題引起，請檢查 [AWS 服務運作狀態儀表板](https://health.aws.amazon.com/health/status)，了解您所在區域中 Amazon S3 的狀態。  
**目的：**此警示可協助偵測應用程式是否因 5xx 錯誤而出現問題。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議將閾值設定為在請求總數的 5% 以上出現 5XXError 時偵測到。但是，您可調整閾值以適應請求的流量以及可接受的錯誤率。您還可分析歷史資料，以查看應用程式工作負載可接受的錯誤率，並相應地調整閾值。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**OperationsFailedReplication**  
**維度：**SourceBucket、DestinationBucket、RuleId  
**警示描述：**此警示有助於了解複寫失敗。此指標可追蹤使用 S3 CRR 或 S3 SRR 複寫的新物件的狀態，還可追蹤使用 S3 批次複寫來複寫的現有物件。如需詳細資訊，請參閱[複寫故障診斷](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-troubleshoot.html)。  
**目的：**此警示用於偵測複寫操作是否失敗。  
**統計資料：**最大值  
**建議的閾值：**0.0  
**閾值對正：**此指標針對成功的操作發出值 0，而此時若沒有執行複寫操作，則不會發出任何值。當指標發出大於 0 的值時，複寫操作就會失敗。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## `S3ObjectLambda`
<a name="S3ObjectLambda"></a>

**4xxErrors**  
**維度：**AccessPointName、DataSourceARN  
**警示描述：**此警示可協助我們報告對用戶端請求做出回應時產生的 4xx 錯誤狀態碼總數。暫時[啟用 S3 伺服器存取日誌記錄](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html)可協助您使用 HTTP 狀態和錯誤碼欄位，來找出問題的來源。  
**目的：**此警示用於建立典型 4xx 錯誤率的基準，以便您查看任何可能表示設定問題的異常狀況。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議將閾值設定為在請求總數的 5% 以上出現 4XXError 時偵測到。經常發生的 4XX 錯誤應觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。您還可調整閾值以適應請求的負載，以可接受的 4XX 錯誤層級為基準。您還可分析歷史資料，以尋找應用程式工作負載可接受的錯誤率，然後相應地調整閾值。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**5xxErrors**  
**維度：**AccessPointName、DataSourceARN  
**警示描述：**此警示有助於偵測用戶端的大量錯誤。這些錯誤表示用戶端發出伺服器無法完成的請求。這些錯誤可能是由 S3 問題引起，請檢查 [AWS 服務運作狀態儀表板](https://health.aws.amazon.com/health/status)，了解您所在區域中 Amazon S3 的狀態。這可協助您關聯應用程式因 S3 而將面臨的問題。如需協助您有效處理或減少這些錯誤的資訊，請參閱[優化效能設計模式](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance-design-patterns.html#optimizing-performance-timeouts-retries)。  
**目的：**此警示可協助偵測應用程式是否因 5xx 錯誤而出現問題。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議將閾值設定為在請求總數的 5% 以上出現 5XX 錯誤時偵測到。但是，您可調整閾值以適應請求的流量以及可接受的錯誤率。您還可分析歷史資料，以查看應用程式工作負載可接受的錯誤率，並相應地調整閾值。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**LambdaResponse4xx**  
**維度：**AccessPointName、DataSourceARN  
**警示描述：**此警示可協助您偵測並診斷呼叫 S3 Object Lambda 時的失敗 (500 )。這些錯誤可能是由負責回應請求的 Lambda 函數中的錯誤或設定錯誤導致。調查與 Object Lambda 存取點關聯的 Lambda 函數的 CloudWatch Log Streams，可協助您根據 S3 Object Lambda 的回應，精確找出問題的來源。  
**目的：**此警示用於偵測 WriteGetObjectResponse 呼叫的 4xx 用戶端錯誤。  
**統計資料：**平均值  
**建議的閾值：**0.05  
**閾值對正：**建議將閾值設定為在請求總數的 5% 以上出現 4XXError 時偵測到。經常發生的 4XX 錯誤應觸發警示。但是，將閾值設定為極低的值可能會導致警示過於敏感。您還可調整閾值以適應請求的負載，以可接受的 4XX 錯誤層級為基準。您還可分析歷史資料，以尋找應用程式工作負載可接受的錯誤率，然後相應地調整閾值。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon SNS
<a name="SNS"></a>

**NumberOfMessagesPublished**  
**維度：**TopicName  
**警示描述：**此警示可偵測何時發布的 SNS 訊息數目太少。如需進行疑難排解，請檢查發布者傳送較少流量的原因。  
**目的：**此警示可協助您主動監控並偵測通知發布中的重大捨棄。這可協助您識別應用程式或商務程序的潛在問題，以便您執行適當的動作來確保預期的通知流程。如果您期望系統提供的流量達到最低，您應建立此警示。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**發布的訊息數目應與應用程式預期發布的訊息數目一致。您還可分析歷史資料、趨勢和流量以尋找合適的閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**NumberOfNotificationsDelivered**  
**維度：**TopicName  
**警示描述：**此警示可偵測何時傳遞的 SNS 訊息數目太少。這可能是因為無意中取消訂閱端點，或是因為導致訊息發生延遲的 SNS 事件。  
**目的：**此警示可協助您偵測傳遞的數量下降。如果您期望系統提供的流量達到最低，您應建立此警示。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**傳送的訊息數目應與預期產生的訊息數目和取用者數目一致。您還可分析歷史資料、趨勢和流量以尋找合適的閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**NumberOfNotificationsFailed**  
**維度：**TopicName  
**警示描述：**此警示可偵測何時的失敗 SNS 訊息數目太多。若要對失敗通知進行故障診斷，請啟用 CloudWatch Logs 的日誌記錄功能。檢查日誌可協助您尋找哪些訂閱用戶失敗，及其正在傳回的狀態碼。  
**目的：**此警示可協助您主動尋找傳遞通知時發生的問題，並執行適當的動作來解決這些問題。  
**統計資料：**總和  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於失敗通知的影響。檢閱提供給最終使用者的 SLA、容錯和通知的重要性，並分析歷史資料，然後相應地選取閾值。針對只有 SQS、Lambda 或 Firehose 訂閱的主題，失敗的通知數目應為 0。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**NumberOfNotificationsFilteredOut-InvalidAttributes**  
**維度：**TopicName  
**警示描述：**此警示有助於監控和解決發布者或訂閱用戶的潛在問題。檢查發布者是否發布具有無效屬性的訊息，或者是否將不適當的篩選條件套用至訂閱用戶。您還可分析 CloudWatch Logs，以協助尋找問題的根本原因。  
**目的：**該警示用於偵測發布的訊息是否無效，或是否已將不適當的篩選條件套用至訂閱用戶。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**無效的屬性幾乎總是發布者的錯誤。建議將閾值設定為 0，因為運作狀態良好的系統中不需要無效的屬性。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**NumberOfNotificationsFilteredOut-InvalidMessageBody**  
**維度：**TopicName  
**警示描述：**此警示有助於監控和解決發布者或訂閱用戶的潛在問題。檢查發布者是否發布具有無效訊息內文的訊息，或者是否將不適當的篩選條件套用至訂閱用戶。您還可分析 CloudWatch Logs，以協助尋找問題的根本原因。  
**目的：**該警示用於偵測發布的訊息是否無效，或是否已將不適當的篩選條件套用至訂閱用戶。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**無效的郵件內文幾乎總是發布者的錯誤。建議將閾值設定為 0，因為運作狀態良好的系統中不需要無效的訊息內文。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**NumberOfNotificationsRedrivenToDlq**  
**維度：**TopicName  
**警示描述：**此警示有助於監控移至無效字母佇列的訊息數目。  
**目的：**該警示用於偵測移至無效字母佇列的訊息。建議您在將 SNS 與 SQS、Lambda 或 Firehose 搭配使用時建立此警示。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**在任何訂閱用戶類型的運作狀態良好的系統中，訊息都不應移至無效字母佇列。建議在有任何訊息置於佇列時收到通知，以便識別並解決根本原因，並可能重新驅動無效字母佇列中的訊息，進而避免資料遺失。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**NumberOfNotificationsFailedToRedriveToDlq**  
**維度：**TopicName  
**警示描述：**此警示有助於監控無法移至無效字母佇列的訊息。檢查您的無效字母佇列是否存在，以及設定是否正確。此外，請確認 SNS 具有存取無效字母佇列的許可。如需進一步了解，請參閱[無效字母佇列文件](https://docs.aws.amazon.com/sns/latest/dg/sns-dead-letter-queues.html)。  
**目的：**該警示用於偵測無法移至無法移至無效字母佇列的訊息。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**如果消息無法移至無效字母佇列，則幾乎總是出現錯誤。建議閾值為 0，意味著所有處理失敗的訊息必須在設定無效字母佇列後，才能到達無效字母佇列。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**SMSMonthToDateSpentUSD**  
**維度：**TopicName  
**警示描述：**警示有助於監控您的帳戶中是否有足夠的配額，以便讓 SNS 能夠傳遞訊息。如果達到配額，SNS 將無法傳遞 SMS 訊息。如需有關設定每月簡訊花費配額的資訊，或有關請求增加花費配額的資訊 AWS，請參閱[設定簡訊偏好設定](https://docs.aws.amazon.com/sns/latest/dg/sms_preferences.html)。  
**目的：**此警示用於偵測您的帳戶中是否有足夠的配額，以便成功傳遞 SMS 訊息。  
**統計資料：**最大值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據帳戶的配額 (帳戶支出限制) 設定閾值。選擇一個閾值，在達到配額限制時儘早通知您，以便您有時間請求增加配額。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

**SMSSuccessRate**  
**維度：**TopicName  
**警示描述：**此警示有助於監控 SMS 訊息傳遞失敗的速率。您可設定 [Cloudwatch Logs](https://docs.aws.amazon.com/sns/latest/dg/sms_stats_cloudwatch.html) 來了解失敗的本質，並據此執行動作。  
**目的：**此警示用於偵測傳遞失敗的 SMS 訊息。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**根據 SMS 訊息傳送失敗的容錯值來設定警示的閾值。  
**期間：**60  
**警示資料點數目：**5  
**評估期：**5  
**比較運算子：**GREATER\$1THAN\$1THRESHOLD

## Amazon SQS
<a name="SQS"></a>

**ApproximateAgeOfOldestMessage**  
**維度：**QueueName  
**警示描述：**此警示可監控佇列中最舊訊息的存留期。您可使用此警示來監控您的取用者是否以所需速度來處理 SQS 訊息。考慮增加取用者計數或取用者輸送量，以減少訊息存留期。此指標可與 `ApproximateNumberOfMessagesVisible` 結合使用，以確定佇列積壓程度，以及處理訊息的速度。若要防止郵件在處理之前遭到刪除，請考慮將無效字母佇列設定為旁邊潛在的毒藥訊息。  
**目的：**此警示用於偵測 QueueName 佇列中最舊訊息的存留期是否太長。較長的存留期可能表示訊息的處理速度不夠快，或者有一些毒丸訊息停滯在佇列中且無法處理。  
**統計資料：**最大值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於預期的訊息處理時間。您可使用歷史資料來計算平均訊息處理時間，然後將閾值設定為高於佇列取用者預期 SQS 訊息處理時間上限的 50%。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**ApproximateNumberOfMessagesNotVisible**  
**維度：**QueueName  
**警示描述：**此警示有助於偵測與 `QueueName` 相關的大量傳輸中訊息。如需進行疑難排解，請檢查[訊息積壓減少](https://repost.aws/knowledge-center/sqs-message-backlog)。  
**目的：**此警示用於偵測佇列中的大量傳輸中訊息。如果取用者未在可視性逾時期間內刪除訊息，則輪詢佇列時，訊息會重新出現在佇列中。若是 FIFO 佇列，最多可有 20,000 則傳輸中訊息。如果達到此配額，SQS 不會傳回錯誤訊息。FIFO 佇列會查看前 20,000 則訊息，以確定可用的訊息群組。這意味著，如果您在單一訊息群組中有積壓訊息，您將無法取用稍後傳送至佇列的其他訊息群組中的訊息，直至您成功取用積壓訊息為止。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**此警示的建議閾值很大程度上取決於預期的傳輸中訊息數目。您可使用歷史資料來計算預期的傳送中訊息數目上限，並將閾值設定為超過此值的 50%。如果佇列取用者正在處理，但並未刪除佇列中的訊息，則此數目會突增。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**ApproximateNumberOfMessagesVisible**  
**維度：**QueueName  
**警示描述：**此警示會監視訊息佇列積壓是否超出預期，表示取用者太慢或沒有足夠的取用者。如果此警示進入 ALARM 狀態，考慮增加取用者計數或加快取用者速度。  
**目的：**此警示用於偵測作用中佇列的訊息計數是否太高，取用者處理訊息較慢，或者沒有足夠的取用者來處理這些訊息。  
**統計資料：**平均值  
**建議的閾值：**視乎您的情況而定  
**閾值對正：**顯示非預期的較高訊息數目，表示取用者未以預期的速率處理訊息。設定此閾值時，您應考慮歷史資料。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**GREATER\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

**NumberOfMessagesSent**  
**維度：**QueueName  
**警示描述：**此警示有助於偵測是否沒有從生產者傳送與 `QueueName` 相關的訊息。如需進行疑難排解，請檢查生產者未傳送訊息的原因。  
**目的：**此警示用於偵測生產者何時停止傳送訊息。  
**統計資料：**總和  
**建議的閾值：**0.0  
**閾值對正：**如果傳送的訊息數目為 0，則生產者不會傳送任何訊息。如果此佇列的 TPS 較低，則相應地增加 EvaluationPeriods 的數目。  
**期間：**60  
**警示資料點數目：**15  
**評估期：**15  
**比較運算子：**LESS\$1THAN\$1OR\$1EQUAL\$1TO\$1THRESHOLD

## Site-to-Site VPN
<a name="VPN"></a>

**TunnelState**  
**維度：**VpnId  
**警示描述：**此警示可協助您了解一個或多個通道的狀態是否為 DOWN。如需進行疑難排解，請參閱 [VPN 通道故障診斷](https://repost.aws/knowledge-center/vpn-tunnel-troubleshooting)。  
**目的：**此警示用於偵測此 VPN 是否至少有一個通道處於 DOWN 狀態，以便您對受影響的 VPN 進行故障診斷。對於只設定單一通道的網路，此警示將一律處於 ALARM 狀態。  
**統計資料：**最小值  
**建議的閾值：**1.0  
**閾值對正：**值小於 1 表示至少有一個通道處於 DOWN 狀態。  
**期間：**300  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

**TunnelState**  
**維度：**TunnelIpAddress  
**警示描述：**此警示可協助您了解此通道的狀態是否為 DOWN。如需進行疑難排解，請參閱 [VPN 通道故障診斷](https://repost.aws/knowledge-center/vpn-tunnel-troubleshooting)。  
**目的：**此警示用於偵測通道是否處於 DOWN 狀態，以便您對受影響的 VPN 進行故障診斷。對於只設定單一通道的網路，此警示將一律處於 ALARM 狀態。  
**統計資料：**最小值  
**建議的閾值：**1.0  
**閾值對正：**值小於 1 表示通道處於 DOWN 狀態。  
**期間：**300  
**警示資料點數目：**3  
**評估期：**3  
**比較運算子：**LESS\$1THAN\$1THRESHOLD

# 警示使用案例和範例
<a name="Alarm-Use-Cases"></a>

以下各節提供常見使用案例警示的範例和教學課程。

**Topics**
+ [建立帳單警示以監控您的預估 AWS 費用](monitor_estimated_charges_with_cloudwatch.md)
+ [建立 CPU 使用量警示](US_AlarmAtThresholdEC2.md)
+ [建立會傳送電子郵件的負載平衡器延遲警示](US_AlarmAtThresholdELB.md)
+ [建立會傳送電子郵件的儲存體輸送量警示](US_AlarmAtThresholdEBS.md)
+ [從 AWS 資料庫在績效詳情計數器指標上建立警示](CloudWatch_alarm_database_performance_insights.md)

# 建立帳單警示以監控您的預估 AWS 費用
<a name="monitor_estimated_charges_with_cloudwatch"></a>

您可以使用 Amazon CloudWatch 監控預估 AWS 費用。當您啟用監控 AWS 帳戶的預估費用時，預估費用會每天計算數次，並以指標資料的形式傳送至 CloudWatch。

帳單指標資料存放在美國東部 (維吉尼亞北部) 區域，並且會呈現全球費用。除了費用的預估整體總計之外，此資料還包括 AWS 您使用的每個服務的預估 AWS 費用。

當您的帳戶帳單超過指定閾值時，便會觸發警示。其只會在目前帳單超過閾值時觸發。它不會使用根據您目前一個月用量所進行的預測。

若您建立帳單警示時，費用已經超過閾值，則警示會立即移至 `ALARM` 狀態。

**注意**  
如需分析您已被收取費用的 CloudWatch 費用相關資訊，請參閱 [分析、最佳化和降低 CloudWatch 成本](cloudwatch_billing.md)。

**Topics**
+ [啟用帳單提醒](#turning_on_billing_metrics)
+ [建立帳單警示](#creating_billing_alarm_with_wizard)
+ [刪除帳單警示](#deleting_billing_alarm)

## 啟用帳單提醒
<a name="turning_on_billing_metrics"></a>

您必須先啟用帳單提醒，才能建立預估費用的警示，以便監控預估 AWS 費用並使用帳單指標資料建立警示。在啟用帳單提醒之後，將無法停用資料收集，但您可以刪除已建立的任何帳單警示。

在您第一次啟用帳單提醒之後，大約需要 15 分鐘才能查看帳單資料和設定帳單警示。

**要求**
+ 您必須使用帳戶根使用者憑證登入，或以已獲授予檢視帳單資訊許可的 IAM 使用者身分登入。
+ 針對合併帳單帳戶，以付款帳戶身分登入，即可看到各個連結帳戶的帳單資料。除了整合帳戶，您可以檢視各個連結帳戶的總計預估費用及各項服務預估費用。
+ 在合併帳單帳戶中，只有在付款人帳戶啟用 **Receive Billing Alers (接收帳單提醒)** 喜好設定時，才會擷取成員連結的帳戶指標。若您變更管理/付款人帳戶的帳戶，則必須在新的管理/付款人帳戶中啟用帳單提醒。
+ 帳戶不能屬於 Amazon 合作夥伴網路 (APN) 的一部分，因為 APN 帳戶的帳單指標不會發布到 CloudWatch。如需詳細資訊，請參閱 [AWS 合作夥伴網路](https://aws.amazon.com/partners/)。

**啟用監控預估費用**

1. 在 https：//[https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/) 開啟 AWS 帳單與成本管理 主控台。

1. 在導覽窗格中，選擇 **Billing preferences (帳單偏好設定)**。

1. 依**警示偏好設定**選擇**編輯**。

1. 選擇**接收 CloudWatch 帳單警示**。

1. 選擇 **Save preferences (儲存喜好設定)**。

## 建立帳單警示
<a name="creating_billing_alarm_with_wizard"></a>

**重要**  
 建立帳單警示前，您必須將區域設定為美國東部 (維吉尼亞北部)。帳單指標資料會存放在此區域，並且會呈現全球費用。此外，您還須為帳戶或在管理/付款人帳戶中啟用帳單提醒 (若您使用的是合併帳單)。如需詳細資訊，請參閱[啟用帳單提醒](#turning_on_billing_metrics)。

 在此程序中，您會建立警示，在 的預估費用 AWS 超過定義的閾值時傳送通知。

**若要使用 CloudWatch 主控台建立帳單警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1.  在導覽窗格中，選擇 **Alarms** (警示)，然後選擇 **All alarms** (所有警示)。

1.  選擇 **Create alarm** (建立警示)。

1.  選擇 **Select metric** (選取指標)。在**AWS 命名空間**中，選擇**計費**，然後選擇**預估費用總金額**。
**注意**  
 如果您未看到**帳單**/**預估費用總金額**指標，請啟用帳單警示，並將區域變更為美國東部 (維吉尼亞北部)。如需詳細資訊，請參閱[啟用帳單提醒](#turning_on_billing_metrics)。

1.  選取 **EstimatedCharges** 指標的方塊，然後選擇 **Select metric** (選取指標)。

1. 對於 **Statistic** (統計數字)，選擇 **Maximum** (最大值)。

1. 在 **Period** (時段) 中，選擇 **6 hours** (6 小時)。

1.  對於**閾值類型**，選擇**靜態**。

1.  對於 **Whenever EstimatedCharges is . . .** (每當 EstimatedCharges 為…時)，選擇 **Greater** (大於)。

1.  針對**於…**，定義您要讓警示觸發的值。例如，**200** 美元。

   **EstimatedCharges** 指標值僅會以美元 (USD) 為單位，且貨幣轉換功能是由 Amazon Services LLC 提供。如需詳細資訊，請參閱「[什麼是 AWS Billing？」](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html)。
**注意**  
 定義閾值後，預覽圖表會顯示當月的預估費用。

1. 選擇**其他組態**並執行下列操作：
   + 在 **Datapoints to alarm** (要警示的資料點) 中，指定 **1 out of 1** (1 傳出 1)。
   + 在 **Missing data treatment** (遺失資料處理) 中，選擇 **Treat missing data as missing** (將遺失資料視為遺失)。

1.  選擇**下一步**。

1.  在**通知**下，確定已選取**警示中**。接著，指定當警示處於 `ALARM` 狀態時要通知的 Amazon SNS 主題。Amazon SNS 主題可以包含您的電子郵件地址，以便您在帳單金額超過自己指定的閾值時收到電子郵件。

   您可以選取現有的 Amazon SNS 主題、建立新的 Amazon SNS 主題，或使用主題 ARN 來通知其他帳戶。若希望警報針對相同警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification** (新增通知)。

1.  選擇**下一步**。

1.  在 **Name and description** (名稱和描述) 下，輸入警示的名稱。此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。

   1.  (選用) 輸入警示的描述。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。

1. 選擇**下一步**。

1.  在 **Preview and create** (預覽並建立) 下，請檢查組態是否正確無誤，然後選擇 **Create alarm** (建立警示)。

## 刪除帳單警示
<a name="deleting_billing_alarm"></a>

當您不再需要帳單警示時，可以將它刪除。

**刪除帳單警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 如有必要，請將 Region (區域) 變更為美國東部 (維吉尼亞北部)。帳單指標資料存放於此區域，而且會反映全球費用。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選取警示旁的核取方塊，然後選擇 **Actions (動作)**、**Delete (刪除)**。

1. 出現確認提示時，選擇 **Yes, Delete** (是，刪除)。

# 建立 CPU 使用量警示
<a name="US_AlarmAtThresholdEC2"></a>

您可以建立 CloudWatch 警示，在警示狀態從 `OK` 變更至 `ALARM` 時傳送使用 Amazon SNS 的通知。

警示會在 EC2 執行個體的平均 CPU 用量超過連續指定期間的指定閾值時變更為 `ALARM` 狀態。

## 使用 設定 CPU 用量警示 AWS 管理主控台
<a name="cpu-usage-alarm-console"></a>

使用這些步驟來使用 AWS 管理主控台 建立 CPU 用量警示。

**根據 CPU 使用率建立警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 選擇 **Select metric** (選取指標)。

1. 在 **All metrics (所有指標)** 標籤中，選擇 **EC2 metrics (EC2 指標)**。

1. 選擇指標類別 (例如，**Per-Instance Metrics (每個執行個體指標)**)。

1. 尋找具有要在 **InstanceId** 欄中列出的執行個體和在 **Metric Name** 欄中的 **CPUUtilization** 的資料列。選取此資料列旁的核取方塊，然後選擇 **Select metric (選取指標)**。

1. 在 **Specify metric and conditions (指定指標和條件)** 下，針對 **Statistic (統計資訊)**，選擇 **Average (平均)**，選擇其中一個預先定義的百分位數，或指定自訂的百分位數 (例如 **p95.45**)。

1. 選擇期間 (例如，**5 minutes**)。

1. 在 **Conditions (條件)** 下，指定以下內容：

   1. 對於**閾值類型**，選擇**靜態**。

   1. 針對 **Whenever CPUUtilization is (每當 CPUUtilization 為)**，指定 **Greater (大於)**。在 **than... (比...)** 下，指定當 CPU 使用率超過此百分比時，觸發警示進入 ARARM 狀態的閾值。例如：70。

   1. 選擇 **Additional configuration (其他組態)**。針對 **Datapoints to alarm (要警示的資料點)**，請指定 (資料點) 必須處於 `ALARM` 狀態多少評估期間，才會觸發警示。如果此處的兩個值相符，您便可以建立警示，在許多連續期間違規時移至 `ALARM` 狀態。

      若要建立 N 個中有 M 個警示，請針對第一個值，指定低於您為第二個值所指定值的值。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。

   1. 針對 **Missing data treatment (遺失資料處理)**，選擇警示在遺失某些資料點時的行為。如需詳細資訊，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

   1. 若警示使用百分位數作為監控統計資料，則會出現一個 **Percentiles with low samples (低樣本的百分位數)** 方塊。請使用它來選擇是要評估還是忽略具有低抽樣率的案例。若您選擇 **ignore (maintain alarm state) (忽略 (維持警示狀態))**，則會在抽樣大小過低時一律維持目前的警示狀態。如需詳細資訊，請參閱[以百分位數為基礎的警示和低資料範例](percentiles-with-low-samples.md)。

1. 選擇**下一步**。

1. 在 **Notification (通知)** 下，選擇 **In alarm (在警示中)**，然後選取當警示處於 `ALARM` 狀態時要通知的 SNS 主題。

   若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification (新增通知)**。

   若要讓警示不傳送通知，請選擇 **Remove (移動)**。

1. 完成時，請選擇**下一步**。

1. 輸入警示的名稱與說明。然後選擇**下一步**。

   此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。

1. 在 **Preview and create (預覽及建立)** 下，請確認資訊和條件都是您希望的內容，然後選擇 **Create alarm (建立警示)**。

## 使用 設定 CPU 用量警示 AWS CLI
<a name="cpu-usage-alarm-cli"></a>

使用這些步驟來使用 AWS CLI 建立 CPU 用量警示。

**根據 CPU 使用率建立警示**

1. 設定 SNS 主題。如需詳細資訊，請參閱[設定 Amazon SNS 通知](Notify_Users_Alarm_Changes.md#US_SetupSNS)。

1. 使用 [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) 命令建立警示，如下所示。

   ```
   aws cloudwatch put-metric-alarm --alarm-name cpu-mon --alarm-description "Alarm when CPU exceeds 70%" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 70 --comparison-operator GreaterThanThreshold --dimensions  Name=InstanceId,Value=i-12345678 --evaluation-periods 2 --alarm-actions arn:aws:sns:us-east-1:111122223333:my-topic --unit Percent
   ```

1. 透過使用 [set-alarm-state](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/set-alarm-state.html) 命令來強制變更警示狀態，以測試警示。

   1. 將警示的狀態從 `INSUFFICIENT_DATA` 變更為 `OK`。

      ```
      aws cloudwatch set-alarm-state --alarm-name cpu-mon --state-reason "initializing" --state-value OK
      ```

   1. 將警示的狀態從 `OK` 變更為 `ALARM`。

      ```
      aws cloudwatch set-alarm-state --alarm-name cpu-mon --state-reason "initializing" --state-value ALARM
      ```

   1. 確認您已收到一封與警示相關的通知。

# 建立會傳送電子郵件的負載平衡器延遲警示
<a name="US_AlarmAtThresholdELB"></a>

您可以設定一個 Amazon SNS 通知和設定警示來監控 Classic Load Balancer 中超過 100 毫秒的延遲。

## 使用 設定延遲警示 AWS 管理主控台
<a name="load-balancer-alarm-console"></a>

使用這些步驟來使用 AWS 管理主控台 建立負載平衡器延遲警示。

**若要建立負載平衡器延遲警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 在 **CloudWatch Metrics by Category (依類別的 CloudWatch 指標)** 中，選擇 **ELB Metrics (ELB 指標)** 類別。

1. 選取 Classic Load Balancer 的列以及 **Latency** (延遲) 指標。

1. 針對統計資訊，選擇 **Average (平均)**，選擇其中一個預先定義百分位數，或指定自訂的百分位數 (例如 **p95.45**)。

1. 針對期間，請選擇 **1 Minute (1 分鐘)**。

1. 選擇**下一步**。

1. 在 **Alarm Threshold (警示閾值)** 下，請輸入警示的唯一名稱 (例如，**myHighCpuAlarm**) 和警示的說明 (例如，**Alarm when Latency exceeds 100s**)。警示名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。

   此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。

1. 在 **Whenever (無論何時)** 下，針對 **is (是)**，選擇 **>**，然後輸入 **0.1**。針對 **for (期間)**，輸入 **3**。

1. 在 **Additional settings (其他設定)** 下，針對 **Treat missing data as (將遺失資料視為)**，請選擇 **ignore (maintain alarm state) (忽略 (維持警示狀態))**，讓遺失資料點不會觸發警示狀態變更。

   針對 **Percentiles with low samples (低樣本的百分位數)**，選擇 **ignore (maintain the alarm state) (忽略 (維持警示狀態))**，讓警示僅評估具足夠資料樣本數的狀況。

1. 在**動作**下的 **每當此警示**，選擇**狀態為警示**。在 **Send notification to (傳送通知至)** 中，選擇現有 SNS 主題或建立新的主題。

   若要建立 SNS 主題，請選擇 **New list (新增清單)**。針對 **Send notification to (傳送通知至)**，輸入 SNS 主題的名稱 (例如，**myHighCpuAlarm**)，並針對 **Email list (電子郵件清單)**，輸入以逗號分隔的電子郵件地址清單，當警示變更為 `ALARM` 狀態時，這些電子郵件地址將會收到通知。每個電子郵件地址都會收到主題訂閱確認電子郵件。您必須確認訂閱，才會傳送通知。

1. 選擇**建立警示** 。

## 使用 設定延遲警示 AWS CLI
<a name="load-balancer-alarm-cli"></a>

使用這些步驟來使用 AWS CLI 建立負載平衡器延遲警示。

**若要建立負載平衡器延遲警示**

1. 設定 SNS 主題。如需詳細資訊，請參閱[設定 Amazon SNS 通知](Notify_Users_Alarm_Changes.md#US_SetupSNS)。

1. 使用 [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) 命令建立警示，如下所示。

   ```
   1. aws cloudwatch put-metric-alarm --alarm-name lb-mon --alarm-description "Alarm when Latency exceeds 100s" --metric-name Latency --namespace AWS/ELB --statistic Average --period 60 --threshold 100 --comparison-operator GreaterThanThreshold --dimensions Name=LoadBalancerName,Value=my-server --evaluation-periods 3 --alarm-actions arn:aws:sns:us-east-1:111122223333:my-topic --unit Seconds
   ```

1. 透過使用 [set-alarm-state](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/set-alarm-state.html) 命令來強制變更警示狀態，以測試警示。

   1. 將警示的狀態從 `INSUFFICIENT_DATA` 變更為 `OK`。

      ```
      1. aws cloudwatch set-alarm-state --alarm-name lb-mon --state-reason "initializing" --state-value OK
      ```

   1. 將警示的狀態從 `OK` 變更為 `ALARM`。

      ```
      1. aws cloudwatch set-alarm-state --alarm-name lb-mon --state-reason "initializing" --state-value ALARM
      ```

   1. 確認您已收到一封與警示相關的電子郵件通知。

# 建立會傳送電子郵件的儲存體輸送量警示
<a name="US_AlarmAtThresholdEBS"></a>

您可以設定 SNS 通知和設定當 Amazon EBS 超過 100 MB 輸送量時傳送電子郵件的警示。

## 使用 設定儲存輸送量警示 AWS 管理主控台
<a name="storage-alarm-console"></a>

使用這些步驟來使用 AWS 管理主控台 根據 Amazon EBS 輸送量建立警示。

**若要建立儲存輸送量警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 在 **EBS Metrics (EBS 指標)** 下，選擇指標類別。

1. 選取該磁碟區的資料列以及 **VolumeWriteBytes** 指標。

1. 在統計資料中選擇 **Average (平均)**。對於期間，選擇 **5 Minutes (5 分鐘)**。選擇**下一步**。

1. 在 **Alarm Threshold (警示閾值)** 下，請輸入警示的唯一名稱 (例如，**myHighWriteAlarm**) 和警示的說明 (例如，**VolumeWriteBytes exceeds 100,000 KiB/s**)。此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。

1. 在 **Whenever (無論何時)** 下，針對 **is (是)**，選擇 **>**，然後輸入 **100000**。針對 **for (期間)**，輸入 **15** 個連續期間。

   以圖像方式呈現的閥值會顯示在 **Alarm Preview (警示預覽)** 下方。

1. 在 **Additional settings (其他設定)** 下，針對 **Treat missing data as (將遺失資料視為)**，請選擇 **ignore (maintain alarm state) (忽略 (維持警示狀態))**，讓遺失資料點不會觸發警示狀態變更。

1. 在**動作**下的 **每當此警示**，選擇**狀態為警示**。在 **Send notification to (傳送通知至)** 中選擇現有 SNS 主題或建立主題。

   若要建立 SNS 主題，請選擇 **New list (新增清單)**。針對 **Send notification to (傳送通知至)**，輸入 SNS 主題的名稱 (例如，**myHighCpuAlarm**)，並針對 **Email list (電子郵件清單)**，輸入以逗號分隔的電子郵件地址清單，當警示變更為 `ALARM` 狀態時，這些電子郵件地址將會收到通知。每個電子郵件地址都會收到主題訂閱確認電子郵件。您必須確認訂閱，通知才會傳送到您的電子郵件地址。

1. 選擇**建立警示** 。

## 使用 設定儲存輸送量警示 AWS CLI
<a name="storage-alarm-cli"></a>

使用這些步驟來使用 AWS CLI 根據 Amazon EBS 輸送量建立警示。

**若要建立儲存輸送量警示**

1. 建立 SNS 主題。如需詳細資訊，請參閱[設定 Amazon SNS 通知](Notify_Users_Alarm_Changes.md#US_SetupSNS)。

1. 建立警示。

   ```
   1. aws cloudwatch put-metric-alarm --alarm-name ebs-mon --alarm-description "Alarm when EBS volume exceeds 100MB throughput" --metric-name VolumeReadBytes --namespace AWS/EBS --statistic Average --period 300 --threshold 100000000 --comparison-operator GreaterThanThreshold --dimensions Name=VolumeId,Value=my-volume-id --evaluation-periods 3 --alarm-actions arn:aws:sns:us-east-1:111122223333:my-alarm-topic --insufficient-data-actions arn:aws:sns:us-east-1:111122223333:my-insufficient-data-topic
   ```

1. 透過使用 [set-alarm-state](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/set-alarm-state.html) 命令來強制變更警示狀態，以測試警示。

   1. 將警示的狀態從 `INSUFFICIENT_DATA` 變更為 `OK`。

      ```
      1. aws cloudwatch set-alarm-state --alarm-name ebs-mon --state-reason "initializing" --state-value OK
      ```

   1. 將警示的狀態從 `OK` 變更為 `ALARM`。

      ```
      1. aws cloudwatch set-alarm-state --alarm-name ebs-mon --state-reason "initializing" --state-value ALARM
      ```

   1. 將警示的狀態從 `ALARM` 變更為 `INSUFFICIENT_DATA`。

      ```
      1. aws cloudwatch set-alarm-state --alarm-name ebs-mon --state-reason "initializing" --state-value INSUFFICIENT_DATA
      ```

   1. 確認您已收到一封與警示相關的電子郵件通知。

# 從 AWS 資料庫在績效詳情計數器指標上建立警示
<a name="CloudWatch_alarm_database_performance_insights"></a>

CloudWatch 包含一個 **DB\$1PERF\$1INSIGHTS** 指標數學函數，您可以使用此函數將 Performance Insights 計數器指標從 Amazon Relational Database Service 和 Amazon DocumentDB (with MongoDB compatibility) 引入 CloudWatch。**DB\$1PERF\$1INSIGHTS** 也引進了次分鐘間隔的 `DBLoad` 指標。您可以根據這些指標設定 CloudWatch 警示。

如需有關 Amazon RDS Performance Insights 的更多資訊，請參閱[在 Amazon RDS 上使用 Performance Insights 監控資料庫負載](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html)。

如需有關 Amazon DocumentDB Performance Insights 的更多資訊，請參閱[使用 Performance Insights 監控](https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html.html)。

根據 **DB\$1PERF\$1INSIGHTS** 函數的警示不支援異常偵測。

**注意**  
由 **DB\$1PERF\$1INSIGHTS** 擷取的次分鐘精細度高解析度指標，僅適用於 **DBLoad** 指標，或者如果您已以較高解析度啟用「增強型監控」，則適用於作業系統指標。如需 Amazon RDS 增強型監控的更多資訊，請參閱[使用增強型監控來監控 OS 指標](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html)。  
可以使用 **DB\$1PERF\$1INSIGHTS** 函式建立高解析度警示。高解析度警示的最大評估範圍為三小時。您可以使用 CloudWatch 主控台，使用 **DB\$1PERF\$1INSIGHTS** 函數為任何時間範圍繪製擷取到的指標。

**若要建立根據 Performance Insights 指標的警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)，然後選擇 **All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 選擇 **Select Metric** (選取指標)。

1. 選擇**新增數學**下拉式清單，然後從清單中選取**所有函式**、**DB\$1PERF\$1INSIGHTS**。

   在您選擇 **DB\$1PERF\$1INSIGHTS** 後，畫面上會顯示一個數學表達式方塊，您可以在其中套用或編輯數學表達式。

1. 在數學表達式方塊中，輸入您的 **DB\$1PERF\$1INSIGHTS** 數學表達式，然後選擇**套用**。

   例如 **DB\$1PERF\$1INSIGHTS(‘RDS’, ‘db-ABCDEFGHIJKLMNOPQRSTUVWXY1’, ‘os.cpuUtilization.user.avg’)**
**重要**  
當您使用 **DB\$1PERF\$1INSIGHTS**數學運算式時，必須指定資料庫的唯一資料庫資源 ID。這與資料庫識別碼不同。若要在 Amazon RDS 主控台中查找資料庫資源 ID，請選擇資料庫執行個體來查看其詳細資訊。然後選擇 **Configuration (組態)** 標籤。**資源 ID** 顯示在**組態**區段中。

   如需有關 **DB\$1PERF\$1INSIGHTS** 函數和其他指標數學可用函數的資訊，請參閱 [指標數學語法和函數](using-metric-math.md#metric-math-syntax)。

1. 選擇**選取指標**。

   **Specify metric and conditions (指定指標與條件)** 頁面隨即出現，顯示您已選取數學表達式的圖形和其他資訊。

1. 針對 **Whenever *expression* is (表達式為...時)**，指定表達式是否必須大於、小於或等於閾值。在 **than... (於...)** 下，指定閾值。

1. 選擇 **Additional configuration (其他組態)**。針對 **Datapoints to alarm (要警示的資料點)**，請指定 (資料點) 必須處於 `ALARM` 狀態多少評估期間，才會觸發警示。如果此處的兩個值相符，您便可以建立警示，在許多連續期間違規時移至 `ALARM` 狀態。

   若要建立 N 個中有 M 個警示，請針對第一個值，指定低於您為第二個值所指定值的值。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。

1. 針對 **Missing data treatment (遺失資料處理)**，選擇警示在遺失某些資料點時的行為。如需詳細資訊，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

1. 選擇**下一步**。

1. 在 **Notification (通知)** 下，選取 SNS 主題來在警示處於 `ALARM` 狀態、`OK` 狀態或 `INSUFFICIENT_DATA` 狀態時進行通知。

   若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification (新增通知)**。

   若要讓警示不傳送通知，請選擇 **Remove (移動)**。

1. 若要讓警示執行 Auto Scaling、 EC2、Lambda 或 Systems Manager 動作，請選擇適當的按鈕，然後選擇警示狀態及要執行的動作。如果選擇 Lambda 函數作為警示動作，則可以指定函數名稱或 ARN，並且可以選擇性地選擇函數的特定版本。

   警示只能在進入 ALARM 狀態時執行 Systems Manager 動作。如需有關 Systems Manager 的詳細資訊，請參閱[設定 CloudWatch 以從警示建立 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 和[事件建立](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html)。
**注意**  
若要建立執行 SSM Incident Manager 動作的警示，您必須具備特定許可。如需詳細資訊，請參閱 [AWS Systems Manager Incident Manager 的身分型政策範例](https://docs.aws.amazon.com/incident-manager/latest/userguide/security_iam_id-based-policy-examples.html)。

1. 完成時，請選擇**下一步**。

1. 輸入警示的名稱與說明。然後選擇**下一步**。

   此名稱只能包含 UTF-8 字元，不能包含 ASCII 控制字元。說明可以包括 Markdown 格式，僅在 CloudWatch 主控台的警示**詳細資訊**標籤中顯示。Markdown 對於將連結新增至執行手冊或其他內部資源很實用。

1. 在 **Preview and create (預覽及建立)** 下，請確認資訊和條件都是您希望的內容，然後選擇 **Create alarm (建立警示)**。