gpt4 book ai didi

amazon-web-services - 对 dynamodb 使用 cloudwatch 指标的一些疑问

转载 作者:行者123 更新时间:2023-12-04 08:12:06 26 4
gpt4 key购买 nike

我创建了一个 DynamoDB 表。

现在我正在尝试创建一个 Cloudwatch 警报,以便在表请求超过 80% 达 1 小时时发送 SNS 通知(就像我们使用 AWS 管理控制台创建 DynamoDB 表时出现的那样)。

我的疑问是:

  1. 我需要创建两个云监视警报,如下面的代码?或者有一种方法可以只创建一个包含两个指标的警报吗?

  2. 而且,对于这个例子,我尝试做 Sum 是正确的指标吗?

  3. 当我们使用 AWS 管理控制台创建一个表时,当表请求超过 80% 时,它似乎会创建一个云监视警报,同时还会显示 SNS 通知将在以下情况发送:

读取消耗的容量单位 > 1
或者
消耗的写入容量单位 > 1

我对这部分有点困惑,当读取容量单位消耗和写入容量单位消耗 > 1 或表请求超过 80% 持续 1 小时时,将发送 SNS 通知?或者是同一件事?如果1读1写统一对应每秒1读1写是一样的,当消耗的读写容量单位>1时,如果我们配置只想要1个单位呢? Cloudwatch 警报何时启动?

def createCW(topicArn, tableName):
cloudwatch = boto.ec2.cloudwatch.connect_to_region("us-east-1")
t = time.localtime(time.time())

alarmName1 = "ConsumedReadCapacityUnits"
alarmName2 = "ConsumedWriteCapacityUnits"
metric1 = cloudwatch.list_metrics(dimensions={'TableName':tableName},
metric_name="ConsumedReadCapacityUnits")[0]
metric1.create_alarm(name=alarmName1, comparison='>=', threshold=0.8, period=3000,
evaluation_periods=1, statistic='Sum', alarm_actions=[topicArn])
metric2 = cloudwatch.list_metrics(dimensions={'TableName':tableName},
metric_name="ConsumedReadCapacityUnits")[0]
metric2.create_alarm(name=alarmName2, comparison='>=', threshold=0.8, period=3000,
evaluation_periods=1, statistic='Sum', alarm_actions=[topicArn])

最佳答案

  1. CloudWatch 警报是每个指标一个,因此对于代码中的 2 个指标,您需要 2 个警报。顺便说一句,我认为您的代码中有一个拼写错误,两个指标名称都是“ConsumedReadCapacityUnits”,我认为其中一个应该是“ConsumedWriteCapacityUnits”。

  2. 是的,Sum 是监控一段时间内消耗的容量单位时使用的正确指标。

  3. 这意味着仅当您使用的容量单位超过 1 个单位时才会发送通知,因为这是容量单位中的最小单位。发送警报的条件仍然是您的“80%”指标。如果您的表有 1 个单元用于读取和写入,我认为永远不会触发警报(因为 DynamoDB 无法消耗 0.8 个容量单元)。

关于amazon-web-services - 对 dynamodb 使用 cloudwatch 指标的一些疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30440302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com