我正在编写一个网络应用程序,它一整天都在不断增加流量。我想创建一个警报,可以检测我的读/写限制是否达到一定百分比(如80%),然后增加该限制。然后我会在午夜再次减少它。
我尝试创建一个警报 - “平均”似乎有点无用,总是1.0。 “Sum”更有用所以我假设我应该使用它。我还假设我应该在度量标准名称上使用“使用的写入/读取容量”。
问题:
Sum似乎使用“Count”的绝对值作为其限制。如果我的DynamoDB设置为100次写入,并且我设置了80%的警报,它会检查我的写入是否超过0.8,而不是80.
我设置了一个电子邮件主题,但这不正确 - 我假设我需要创建一个主题可以调用的函数/控制器。我如何设置它,如果你有2个亚马逊VM,它们会被叫到还是只有一个?或者这是错误的路由,并且可以采取标准操作来增加DynamoDB限制,而无需编写任何代码。 (我缺乏SNS知识可能会在这里显示)
答案 0 :(得分:7)
在运行亚马逊的向导创建表时,它建议在 80%阈值处创建警报,并将其链接到 SNS主题。
引擎盖下,对于R / W容量为1,这会在
上产生警报 240 = 0.8*1*60*5
即capacity(1) * seconds_in_5_minutes(300) * threshold(0.8)
。 60分钟是警报期。您可以缩短到5分钟,但这可能会增加误报的数量。
换句话说,每当5分钟范围内消耗的容量单位总和超过24个阈值至少1小时时,就会触发警报。
注意:5分钟对应于采样周期。
在 SNS console中,您可以为主题添加“订阅者”。它们可以是电子邮件,HTTP(S)回调,......这允许您联系多个人/机器。
每次触发缩放逻辑时,您都需要使用API自动使用此公式更新警报。