本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
警示動作
您可以在警示於 OK、ALARM 和 INSUFFICIENT_DATA 狀態之間變更時,指定其要採取的動作。
您可以針對上述三種狀態的轉換設定大多數動作。「自動擴展」動作除外,這些動作只有在狀態轉換時才會發生,而且如果條件持續數小時或數天,也不會再次執行。
以下支援為警示動作:
-
透過使用 Amazon Simple Notification Service 主題,通知一個或多個訂閱用戶。訂閱用戶可以是應用程式以及個人。
-
調用 Lambda 函數。這是您在警示狀態變更時自動執行自訂動作的最簡單方法。
-
以 EC2 指標為基礎的警示也可以執行 EC2 動作,例如停止、終止、重新啟動或復原 EC2 執行個體。
-
警示也可以執行動作來擴展 Auto Scaling 群組。
-
警示可以在 Systems Manager OpsItems或在 AWS Systems Manager Incident Manager 中建立事件。這些動作只有在警示進入 ALARM 狀態時才會執行。
-
警示可以在進入 ALARM 狀態時啟動調查。
警示也會在事件變更狀態 Amazon EventBridge 時向 發出事件,而且您可以設定 Amazon EventBridge 來觸發這些狀態變更的其他動作。
警示動作和通知
下表顯示針對警示執行的動作,以及其針對多個時間序列 (或參與者) 警示的行為:
| 動作類型 | Metrics Insights 多時間序列警示支援 | PromQL 警示支援 | 詳細資訊 |
|---|---|---|---|
| SNS 通知 | 貢獻者層級 | 貢獻者層級 | Amazon SNS 事件目的地 |
| EC2 動作 (停止、終止、重新啟動、復原) | 不支援 | 不支援 | 停止、終止、重新啟動或復原 EC2 執行個體 |
| Auto Scaling 動作 | 不支援 | 不支援 | Amazon EC2 Auto Scaling 的步進和簡易擴展政策 |
| Systems Manager OpsItem 建立 | 警示層級 | 不支援 | 設定 CloudWatch 警示以建立 OpsItems |
| Systems Manager Incident Manager 事件 | 警示層級 | 不支援 | 使用 CloudWatch 警示自動建立事件 |
| Lambda 函式調用 | 貢獻者層級 | 貢獻者層級 | 從警示調用 Lambda 函式 |
| CloudWatch 調查功能調查 | 警示層級 | 不支援 | 從警示啟動 CloudWatch 調查 |
警示通知的內容會根據警示類型而有所不同:
-
單一指標警示同時包含狀態原因和詳細的狀態原因資料,顯示導致狀態變更的特定資料點。
-
多時間序列 Metrics Insights 警示為每個參與者提供簡化的狀態原因,而不需要詳細的狀態原因資料區塊。
-
PromQL 警示不會在其通知中包含狀態原因或狀態原因資料。
範例通知內容範例
單一指標警示通知中包含詳細資料:
{ "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... }
靜音警示動作
警示靜音規則可讓您在預先定義的時段內自動將警示動作靜音,例如維護期間或操作事件。CloudWatch 會繼續監控警示狀態,同時防止不必要的通知。如需詳細資訊,請參閱警示靜音規則。
靜音規則與停用警示動作
警示靜音規則會在排程時段期間暫時將動作靜音,並在時段結束時自動解除靜音。相反地,DisableAlarmActionsAPI 會永久停用警示動作,直到您手動呼叫 為止EnableAlarmActions。EnableAlarmActions API 不會取消靜音由作用中靜音規則靜音的警示。
注意
將警示靜音不會停止 CloudWatch 傳送警示事件,以建立、更新、刪除和狀態變更至 Amazon EventBridge。