在 DynamoDB 中建立 CloudWatch 警示 - Amazon DynamoDB

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

在 DynamoDB 中建立 CloudWatch 警示

CloudWatch 警示會監看指定時段內的單一指標,並在一段時間內根據指標相對於閾值的值來執行一或多個指定動作。此動作是傳送到 Amazon SNS 主題或 Amazon EC2 Auto Scaling 政策的通知。您也可以將警示新增至儀表板,以便監控和接收跨多個區域的 AWS 資源和應用程式的提醒。您可建立的警示數量沒有限制。CloudWatch 警示不會只因處於特定狀態就調用動作,狀態必須已變更並已維持一段指定的時間。如需建議的 DynamoDB 警示清單,請參閱建議的警示

注意

建立 CloudWatch 警示時,您必須指定所有必要的維度,因為 CloudWatch 不會彙總遺失維度的指標。在建立警示時,使用遺失維度建立 CloudWatch 警示不會造成錯誤。

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

在 CloudWatch 主控台中建立警示

若要在 CloudWatch 主控台中建立警示
  1. 登入 AWS 管理主控台 ,並在 https://https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

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

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

  4. 尋找包含您要監控之資料表的資料列,並在指標名稱欄中尋找 ConsumeReadCapacityUnits。選取此資料列旁的核取方塊,然後選擇 Select metric (選取指標)。

  5. 指定指標和條件下,針對統計資料選擇總和。對於期間,選擇 1 分鐘

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

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

    2. 對於每當 ConsumedReadCapacityUnits,選擇大於/等於,然後輸入 240 作為閾值。

  7. 選擇 Next (下一步)。

  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