警示動作 - Amazon CloudWatch

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

警示動作

您可以在警示於 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 會永久停用警示動作,直到您手動呼叫 為止EnableAlarmActionsEnableAlarmActions API 不會取消靜音由作用中靜音規則靜音的警示。

注意

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