我创build了一个闹钟来停止一个实例,如果它闲置太久(平均CPU利用率<2%,3个小时),给我发电子邮件。 但是在我的testing中,我注意到实例在1小时后停止了。 附件是电子邮件的报告:
Alarm Details: Name: Stop Description: Created from EC2 Console State Change: INSUFFICIENT_DATA -> ALARM Reason for State Change: Threshold Crossed: 2 datapoints were less than the threshold (2.0). The most recent datapoints: http:// 0.0425, 0.038363636363636364. Timestamp: Thursday 14 March, 2013 22:20:11 UTC AWS Account: xxxxxxxxxxxx Threshold: The alarm is in the ALARM state when the metric is LessThanThreshold 2.0 for 3600 seconds. Monitored Metric: MetricNamespace: AWS/EC2 MetricName: CPUUtilization Dimensions: InstanceId = i-xxxxxxx Period: 3600 seconds Statistic: Average Unit: not specified State Change Actions: OK: ALARM: arn:aws:sns:us-east-1:xxxxxxxxxxxx:NotifyMe INSUFFICIENT_DATA:
我感到困惑的是,为什么当我把它设置为3小时(10800s)1小时(3600s)后,它进入了报警状态。 对于我的testing,这个实例已经整天停下来了。 一旦我创build了闹钟,我开始了它,并没有对这个实例做任何事情。 当它计算3个小时的平均CPU利用率时,是否考虑到所有停止的小时?
我想让警报让实例在3小时的时间内保持活动状态,然后再停止实例。 有一个更好的方法吗?
在您的电子邮件中,清楚地表明您的闹钟设置为在3600秒后触发。
阈值:当度量标准为LessThanThreshold 2.0(3600秒)时,告警处于ALARM状态。
应该有一个选项来设置“EvaluationPeriods”。 它所做的是告诉警报多less次评估你想检查的具体指标。 所以在你的情况下,你可以将它设置为3,并且警报将每小时检查一次,以查看该度量是否为LessThanThreshold 2.0。 如果连续3个小时,3点的平均值为LessThanThreshold 2.0,则触发警报。
另外要注意的是,你的报警状态从INSUFFICIENT_DATA – > ALARM。 我已经注意到这个活动,我正在处理一些警报。
在我的情况下:
为了减轻这个负担,我build立了一个脚本,这样每当一个实例启动时,就会创build一个告警,当触发告警时,在停止分配的实例后自动删除自己。
看起来你是以错误的方式configuration了警报,按照上面的邮件configuration,如果LessThanThreshold 2.0为3600秒,就会触发警报。
解决这个问题如下:
在CloudWatchpipe理控制台中,只需select警报,您将在下面的图像中看到阈值,如下图所示阈值:CPUUtilization> = 70持续5分钟 
右键单击闹钟,然后根据需要进行修改