My Amazon CloudWatch alarm is not triggering alarm actions. When I review my CloudWatch metrics, I can see that my metric is exceeding the configured threshold, but the CloudWatch alarm is not triggered.

To ensure that alarms work as you expect, review the periods and evaluation periods that were configured for CloudWatch alarms to measure. Consider lowering metric data thresholds accordingly. Also, remember that CloudWatch alarms invoke actions for sustained state changes only.

Note: There is an exception for alarms associated with Auto Scaling actions. The alarm will trigger Auto Scaling actions when the alarm is in a particular state even if there are no state changes.

You can configure CloudWatch alarms to report metrics that are measured in pre-defined, rolling time increments. If any of the metrics collected during the evaluation period does not exceed the configured threshold, the CloudWatch alarm is not triggered.

For example, if there is an alarm based on average CPU utilization configured with a threshold of > 45% for at least 3 consecutive periods of 5 minutes (evaluation period = 3 and period = 300s) with the following metrics:

05:25:00: data: {Avg=61.123333333333335}
05:30:00: data: {Avg=57.846666666666664}
05:35:00: data: {Avg=60.50333333333333}
05:40:00: data: {Avg=55.473333333333336}
05:45:00: data: {Avg=41.685}
05:50:00: data: {Avg=58.39000000000001}
05:55:00: data: {Avg=57.846666666666664}
06:00:00: data: {Avg=61.123333333333335}

Using the above metrics as an example, the alarm would be the following states:

05:35 ALARM
05:40 ALARM 
05:45 ALARM to OK
05:50 OK
05:55 OK
06:00 OK to ALARM

Although the data point collected at 05:55 exceeds the average CPU utilization threshold of 45%, the alarm remains in the OK state, and no action is triggered at 05:55. This is because the data point collected at 05:45 does not exceed the threshold, and the data point is included in evaluation at 05:55. However, five minutes later, the alarm triggers the action because the alarm state is changed from OK to ALARM at 06:00.

Conversely, if there are the following metrics, the alarm state is ALARM after 05:35 because all of the metrics exceed the average CPU utilization threshold of 45%. Because there are no state changes, the alarm action will not be triggered.

05:25:00: data: {Avg=61.123333333333335}
05:30:00: data: {Avg=57.846666666666664}
05:35:00: data: {Avg=60.50333333333333}
05:40:00: data: {Avg=55.473333333333336}
05:45:00: data: {Avg=45.075}
05:50:00: data: {Avg=58.39000000000001}
05:55:00: data: {Avg=57.846666666666664}
06:00:00: data: {Avg=61.123333333333335}

Did this page help you? Yes | No

Back to the AWS Support Knowledge Center

Need help? Visit the AWS Support Center.

Published: 2015-06-23

Updated: 2017-11-06