在 DynamoDB 中创建 CloudWatch 警报
CloudWatch 警报在指定的时间段内监控单个指标,并根据指标值随时间推移相对于阈值的变化情况,来执行一项或多项指定的操作。操作是一个发送到 Amazon SNS 主题或自动扩缩策略的通知。您可以为控制面板添加警报,以便监控和接收有关跨多个区域的 Amazon 资源和应用程序的提醒。您可以创建的警报数量没有限制。CloudWatch 告警不调用操作,因为这些操作处于特定状态;状态必须改变并保持指定时间。有关建议的 DynamoDB 警报列表,请参阅建议的警报。
注意
创建 CloudWatch 告警时必须指定所有需要的维度,因为 CloudWatch 不会为缺少的维度聚合指标。创建告警时,对缺少的维度创建 CloudWatch 告警不会导致错误。
假设您有一个包含五个读取容量单位的预置表。您希望在消耗掉全部预置读取容量之前收到通知,因此,您决定创建一个 CloudWatch 警报,以便在已消耗的容量达到表预置容量的 80% 时收到通知。您可以使用 CloudWatch 控制台或使用 Amazon CLI 创建警报。
在 CloudWatch 控制台中创建警报
在 CloudWatch 控制台中创建警报
登录 Amazon Web Services Management Console 并打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/
。 -
在导航窗格中,依次选择 Alarms(警报)和 All alarms(所有警报)。
-
选择Create alarm(创建警报)。
-
在指标名称列中找到表中您要监控的行以及
ConsumeReadCapacityUnits
。选中此行旁边的复选框,然后选择选择指标。 -
在指定指标和条件下,对于统计数据,选择总和。选择 1 分钟作为周期。
-
在条件下面,指定以下内容:
-
对于 Threshold type(阈值类型),选择 Static(静态)。
-
对于每当
ConsumedReadCapacityUnits
为,选择大于/等于并将阈值指定为 240。
-
-
选择下一步。
-
在通知下,选择
In alarm
,并选择当警报处于ALARM
状态时要通知的 SNS 主题。 -
在完成后,选择下一步。
-
输入警报的名称和描述,然后选择 Next(下一步)。
-
在 Preview and create 下面,确认具有所需的信息和条件,然后选择 Create alarm。
在 Amazon 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
更多 Amazon CLI 示例
以下过程描述了当您的请求超过表的预置吞吐量配额时,系统将如何通知您。
创建 Amazon SNS 主题
arn:aws:sns:us-east-1:123456789012:requests-exceeding-throughput
。有关更多信息,请参阅设置 Amazon Simple Notification Service。-
创建告警。
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 RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value OK
aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value ALARM
以下过程描述了在出现系统错误时如何通知您。
创建 Amazon SNS 主题
arn:aws:sns:us-east-1:123456789012:notify-on-system-errors
。有关更多信息,请参阅设置 Amazon Simple Notification Service。-
创建告警。
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
-
测试告警。
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