我为我的 ec2 实例设置了 CPUUtilization 警报。警报的设置如下:
CPUUtilization >= 95% for 15 consecutive periods of 1 minute (15mins total)
即使实例似乎没有进入定义的警报状态,我们仍然会收到警报电子邮件。
我和我的团队收到的电子邮件警报解释了这一点:
您收到这封电子邮件是因为您的 Amazon CloudWatch Alarm...已进入 ALARM 状态,因为“已超过阈值:3 个数据点大于或等于阈值 (95.0)。最新数据点:[99.466, 98.45]...
3数据点?我的理解是,我设置的 15 个连续 1 分钟周期应该只在以下情况下发出警报:15数据点大于95%。
我是不是误解了电子邮件的内容?我的闹钟设置是否与某些内容相冲突?
答案1
您的 EC2 实例必须启用 1 分钟间隔监控。如果您尚未在您的 EC2 实例上启用详细监控,那么您将以 5 分钟的间隔收集数据。连续 3 个 5 分钟间隔将是 15 分钟。
我不确定,但在查看了我的一些 Cloudwatch 警报并在控制台中试用了一个新的警报后... 似乎在这种情况下,警报状态是基于分钟而不是时间段触发的 - 我们只是在创建警报时根据时间段来定义分钟。这对我来说似乎很合理 - 否则如果禁用详细(1 分钟)监控,您的警报将永远无法进入警报状态。
关于详细监控:如果禁用,我会在这种情况下将其打开。如果您使用基本(5 分钟)监控,则 3 个数据点并不一定意味着 CPU 利用率连续 15 分钟 >= 95%。它更确切地说意味着在连续 3 次采样时,CPU 利用率 >= 95%。
答案2
即使您没有启用详细监控,但 4 分钟内没有数据,Amazon 也允许您创建 1 分钟周期的警报。如果您看到 CloudWatch 控制台,您的警报应处于Insufficient
4 分钟状态,并更改为OK
每 5 分钟一次。因此,如果您将周期更改为 5 分钟或启用详细监控,一切就都好了。
CloudWatch 周期:
这取决于您选择的时期类型,而不是其价值。
如果选择分钟,则 1 个连续周期为 1 分钟,10 个连续周期为 10 分钟。
如果选择小时,则 1 个连续周期为 1 小时,10 个连续周期为 10 小时。
如果选择天数,则 1 个连续期间为 1 天,10 个连续期间为 10 天。
在您的例子中,您选择的周期为 15 分钟,然后选择 15 个连续周期,但每 5 分钟才有数据可用,因此只有 3 个数据点。