建立 CloudWatch 鬧鐘 - Amazon DynamoDB

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

建立 CloudWatch 鬧鐘

CloudWatch 警示會監視指定期間內的單一量度,並根據一段時間內相對於臨界值的指標值,執行一或多個指定的動作。此動作是傳送到 Amazon SNS 主題或 Auto Scaling 政策的通知。您也可以將警示新增至儀表板,以便在多個地區監視和接收有關資 AWS 源和應用程式的警示。您可以建立的警報數量沒有限制。 CloudWatch 警示不會僅因為處於特定狀態而叫用動作;狀態必須已變更並維持指定數目的期間。如需建議的 DynamoDB 警示清單,請參閱建議的警示。

注意

建立 CloudWatch 警示時,您必須指定所有必要的維度,因為不 CloudWatch 會彙總遺失維度的量度。建立 CloudWatch警示時,建立遺失尺寸的警示不會導致錯誤。

假設您有一個佈建的表格,其中包含五個讀取容量單位。您希望在耗用整個佈建的讀取容量之前收到通知,因此您決定建立 CloudWatch 警示,以便在耗用的容量達到您為表格佈建的 80% 時收到通知。您可以在 CloudWatch 主控台中建立警報,也可以使用 AWS CLI.

在 CloudWatch 控制台中創建警報

在 CloudWatch 主控台中建立鬧鐘
  1. 請登入 AWS Management Console 並開啟 CloudWatch 主控台,網址為 https://console.aws.amazon.com/cloudwatch/

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

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

  4. ConsumeReadCapacityUnits在「測量結果名稱」資料欄中尋找含有您要監督之表格的資料列。選取此資料列旁的核取方塊,然後選擇「選取測量結果」。

  5. 在「指定量度和條件」下,選擇「和」做為統計值。選擇一個 1 分鐘時間段

  6. Conditions (條件) 下,指定以下內容:

    1. 對於閾值類型,選擇靜態

    2. 對於「無論何ConsumedReadCapacityUnits」,選擇「大於/等於」,並將臨界值指定為 240。

  7. 選擇下一步

  8. 在 [通知] 下,選擇In alarm並選取警示ALARM處於狀態時通知的 SNS 主題。

  9. 完成時,請選擇下一步

  10. 輸入警示的名稱和說明,然後選擇 Next (下一步)。

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

在中建立警示 AWS CLI

aws cloudwatch put-metric-alarm \ -\-alarm-name ReadCapacityUnitsLimitAlarm \ -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \ -\-namespace AWS/DynamoDB \ -\-metric-name ConsumedReadCapacityUnits \ -\-dimensions Name=TableName,Value=myTable \ -\-statistic Sum \ -\-threshold 240 \ -\-comparison-operator GreaterThanOrEqualToThreshold \ -\-period 60 \ -\-evaluation-periods 1 \ -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm

測試警示。

aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value OK
aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value ALARM

更多 AWS CLI 範例

下列程序說明如果您的要求超過表格的佈建完成配額,系統會如何收到通知。

  1. 創建一個 Amazon SNS 主題arn:aws:sns:us-east-1:123456789012:requests-exceeding-throughput。如需詳細資訊,請參閱設定 Amazon Simple Notification Service

  2. 建立警示。

    aws cloudwatch put-metric-alarm \ -\-alarm-name ReadCapacityUnitsLimitAlarm \ -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \ -\-namespace AWS/DynamoDB \ -\-metric-name ConsumedReadCapacityUnits \ -\-dimensions Name=TableName,Value=myTable \ -\-statistic Sum \ -\-threshold 240 \ -\-comparison-operator GreaterThanOrEqualToThreshold \ -\-period 60 \ -\-evaluation-periods 1 \ -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm
  3. 測試警示。

    aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value OK
    aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value ALARM

下列程序說明系統錯誤時如何收到通知。

  1. 創建一個 Amazon SNS 主題arn:aws:sns:us-east-1:123456789012:notify-on-system-errors。如需詳細資訊,請參閱設定 Amazon Simple Notification Service

  2. 建立警示。

    aws cloudwatch put-metric-alarm \ --alarm-name SystemErrorsAlarm \ --alarm-description "Alarm when system errors occur" \ --namespace AWS/DynamoDB \ --metric-name SystemErrors \ --dimensions Name=TableName,Value=myTable Name=Operation,Value=aDynamoDBOperation \ --statistic Sum \ --threshold 0 \ --comparison-operator GreaterThanThreshold \ --period 60 \ --unit Count \ --evaluation-periods 1 \ --treat-missing-data breaching \ --alarm-actions arn:aws:sns:us-east-1:123456789012:notify-on-system-errors
  3. 測試警示。

    aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value OK
    aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value ALARM