我可以看到两个写入容量图:一个通过CloudWatch报警,另一个通过DynamoDB控制台。以下是CloudWatch向我展示的内容:
看起来写入容量达到近8,000个写入容量单位。
然后我转到Dynamo控制台,这就是我所看到的:
甚至没有接近那么高,也没有超过分配的容量。
为什么这两个人不同意?为什么CloudWatch警报响起?
答案 0 :(得分:3)
检查从DynamoDB控制台发送到CloudWatch的网络请求,发现图中的指标是:
Average(ProvisionedReadCapacityUnits)
Sum(ConsumedReadCapacityUnits)
但是,正如@Shiplu Mokaddim在对另一个答案的评论中注意到的那样,在CloudWatch中绘制这两个图不会产生与您在DynamoDB控制台中看到的图相匹配的图。
事实证明,DynamoDB控制台使用Sum(ConsumedReadCapacityUnits)
来计算要在图中显示的平均值。这是通过将值除以以秒为单位的时间段来完成的,可以使用数学表达式在CloudWatch控制台中将其复制。
DynamoDB控制台
CloudWatch控制台
奖金:意识到如何提取这些数字后,我能够编写一个脚本,在我的AWS账户中生成一个list of provisioned and consumed capacity for all DynamoDB tables。
答案 1 :(得分:1)
要获得两个可比较的图表,请确保两者都显示相同的设置。特别是选择的“统计”和“期间”必须匹配以检索可比较的结果。
用于CloudWatch图表的内容在屏幕截图中并不清楚,但至少DynamoDB图表显示它使用“Average”作为统计信息,“1 min”作为Period。
我的猜测是,CloudWatch图表显示的是“最大值”或“p99”统计值,而不是“平均值”。
答案 2 :(得分:0)