如何创建警报以检测DynamoDb限制已达到一定百分比然后增加它

时间:2012-09-20 08:16:28

标签: amazon-dynamodb amazon-sns amazon-cloudwatch

我正在编写一个网络应用程序,它一整天都在不断增加流量。我想创建一个警报,可以检测我的读/写限制是否达到一定百分比(如80%),然后增加该限制。然后我会在午夜再次减少它。

我尝试创建一个警报 - “平均”似乎有点无用,总是1.0。 “Sum”更有用所以我假设我应该使用它。我还假设我应该在度量标准名称上使用“使用的写入/读取容量”。

问题:

  • Sum似乎使用“Count”的绝对值作为其限制。如果我的DynamoDB设置为100次写入,并且我设置了80%的警报,它会检查我的写入是否超过0.8,而不是80.

  • 我设置了一个电子邮件主题,但这不正确 - 我假设我需要创建一个主题可以调用的函数/控制器。我如何设置它,如果你有2个亚马逊VM,它们会被叫到还是只有一个?或者这是错误的路由,并且可以采取标准操作来增加DynamoDB限制,而无需编写任何代码。 (我缺乏SNS知识可能会在这里显示)

1 个答案:

答案 0 :(得分:7)

在运行亚马逊的向导创建表时,它建议在 80%阈值处创建警报,并将其链接到 SNS主题

引擎盖下,对于R / W容量为1,这会在

上产生警报
  • ConsumedReadCapacityUnits> = 240 60分钟
  • ConsumedWriteCapacityUnits> = 240 60分钟

240 = 0.8*1*60*5capacity(1) * seconds_in_5_minutes(300) * threshold(0.8)。 60分钟是警报期。您可以缩短到5分钟,但这可能会增加误报的数量。

换句话说,每当5分钟范围内消耗的容量单位总和超过24个阈值至少1小时时,就会触发警报。

注意:5分钟对应于采样周期。

SNS console中,您可以为主题添加“订阅者”。它们可以是电子邮件,HTTP(S)回调,......这允许您联系多个人/机器。

每次触发缩放逻辑时,您都需要使用API​​自动使用此公式更新警报。