View a markdown version of this page

在 DynamoDB 中建立 CloudWatch 警示 - Amazon DynamoDB

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

在 DynamoDB 中建立 CloudWatch 警示

CloudWatch 警示會監看指定時段內的單一指標,並在一段時間內根據指標相對於閾值的值來執行一或多個指定動作。此動作是傳送到 Amazon SNS 主題或 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