Is your CloudWatch alarm in INSUFFICIENT_DATA state giving you trouble? Our Support Techs offer different ways to change the state of your CloudWatch alarm.
At Bobcares, we deal with similar queries as a part of our Server Management Services. Find out how our experts change the CloudWatch alarm state with a variety of troubleshooting tips.
What does CloudWatch alarm in INSUFFICIENT_DATA state mean?
If your CloudWatch alarm is in the INSUFFICIENT_DATA, it can indicate any one of the following reasons:
- An Amazon CloudWatch alarm has just started.
- The metric is not available.
- There is insufficient data for the metric to establish the alarm state.
In order to resolve the alarm state, our Support Engineers have come up with a couple of troubleshooting tips. Let’s take a look at each one of them in detail.
Troubleshooting Tips for CloudWatch alarm in INSUFFICIENT_DATA state
A CloudWatch alarm in INSUFFICIENT_DATA state may be reflecting the normal behavior of the metric. Metrics are classified into two groups based on how they are pushed, namely event-driven and period-driven. Interestingly, while certain services send periodic data to the metrics, they may have certain periods without data points. In such cases, data points will be sent by the service only in case of an error. Otherwise, an empty data set is sent.
Hence, the INSUFFICIENT_DATA state is set when no data points are available for a particular time period by design. You can overcome this by forcing the alarm to be in OK or ALARM state in these instances by configuring the alarm.
CloudWatch alarm: Incorrect CloudWatch alarm settings
Every metric has a specific name, namespace and up to ten dimensions. During data point retrieval, a timestamp is specified. If any of these parameters have an incorrect value, CloudWatch will wind up attempting to retrieve a metric that does not exist. The empty data set leads to INSUFFICIENT_DATA state.
Our Support Engineers would like to point out that the unit of the data points is usually not specified when creating an alarm. However, in case there are multiple units in the metric, it is always a good idea to use the correct unit.
You can check the parameter by using the DescribeAlarms API for the monitored metrics. Then, compare this to the ListMetrics output. Our Support Engineers recommend checking your parameters for the following commonly seen inaccuracies:
- Improper usage of uppercase and lower cases as well as misspellings.
- Incorrectly specified units or dimensions.
CloudWatch alarm: Incorrectly configured alarm periods
You have the option of configuring the alarm to retrieve data points according to your preferred frequency. However, if you use shorter time periods than required by the service to send accurate data points to the metric, you will wind up with undesired states.
Fortunately, this can be avoided by configuring the alarm’s period to be the same as the period in which the metric’s data points are pushed. You can also do this via the M out of N settings.
Resolving CloudWatch alarm in INSUFFICIENT_DATA state
If you have been getting the INSUFFICIENT_DATA state as a result of delayed delivery of data points, you are in the right place.
If a standard alarm is in place, it evaluates the metrics every minute. This involves retrieving the latest data points from the configured metric. However, the alarm continues to evaluate the metric during periods without connectivity as well. Since the data points are not sent, the metric is unable to retrieve any data points. This leads to INSUFFICIENT_DATA state.
Once the connectivity is recovered, the application will send the data point backlogs with timestamps in place. Since there is a delay, the alarm will retrieve recent data points according to the period and evaluation period as specifies in it. By then, there will be no more blank spaces in the metric, and alarm history will have a message as seen below:
[...] "stateValue": "INSUFFICIENT_DATA", "stateReason": "Insufficient Data: 2 datapoints were unknown.", [...]
You can configure the alarm to treat the missing data differently to avoid the INSUFFICIENT_DATA state.
[Need a hand with Server Management? Give us a call today.]
To sum up, we learned why the CloudAlarm alarm is in the INSUFFICIENT_DATA state and how to change it back depending on the root cause behind the issue. The skilled Support Engineers at Bobcares took us through different scenarios that may cause the INSUFFICIENT_DATA state.