How partial data is handled
How partial data from a Metrics Insights query is evaluated
If the Metrics Insights query used for the alarm matches more than 10,000 metrics, the alarm is evaluated based on the first 10,000 metrics that the query finds. This means that the alarm is being evaluated on partial data.
You can use the following methods to find whether a Metrics Insights alarm is currently evaluating its alarm state based on partial data:
-
In the console, if you choose an alarm to see the Details page, the message Evaluation warning: Not evaluating all data appears on that page.
-
You see the value
PARTIAL_DATAin theEvaluationStatefield when you use the describe-alarmsAmazon CLI command or the DescribeAlarms API.
Alarms also publish events to Amazon EventBridge when it goes into the partial data state, so you
can create an EventBridge rule to watch for these events. In these events, the
evaluationState field has the value PARTIAL_DATA. The following
is an example.
{ "version": "0", "id": "12345678-3bf9-6a09-dc46-12345EXAMPLE", "detail-type": "CloudWatch Alarm State Change", "source": "aws.cloudwatch", "account": "123456789012", "time": "2022-11-08T11:26:05Z", "region": "us-east-1", "resources": [ "arn:aws:cloudwatch:us-east-1:123456789012:alarm:my-alarm-name" ], "detail": { "alarmName": "my-alarm-name", "state": { "value": "ALARM", "reason": "Threshold Crossed: 3 out of the last 3 datapoints [20000.0 (08/11/22 11:25:00), 20000.0 (08/11/22 11:24:00), 20000.0 (08/11/22 11:23:00)] were greater than the threshold (0.0) (minimum 1 datapoint for OK -> ALARM transition).", "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2022-11-08T11:26:05.399+0000\",\"startDate\":\"2022-11-08T11:23:00.000+0000\",\"period\":60,\"recentDatapoints\":[20000.0,20000.0,20000.0],\"threshold\":0.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2022-11-08T11:25:00.000+0000\",\"value\":20000.0}]}", "timestamp": "2022-11-08T11:26:05.401+0000", "evaluationState": "PARTIAL_DATA" }, "previousState": { "value": "INSUFFICIENT_DATA", "reason": "Unchecked: Initial alarm creation", "timestamp": "2022-11-08T11:25:51.227+0000" }, "configuration": { "metrics": [ { "id": "m2", "expression": "SELECT SUM(PartialDataTestMetric) FROM partial_data_test", "returnData": true, "period": 60 } ] } } }
If the query for the alarm includes a GROUP BY statement that initially returns more than 500 time series, the alarm is evaluated based on the first 500 time series that the query finds. However, if you use an ORDER BY clause, then all the time series that the query finds are sorted, and the 500 that have the highest or lowest values according to your ORDER BY clause are used to evaluate the alarm.
How partial data from a multi data source alarm is evaluated
If the Lambda function returns partial data:
-
The alarm continues to be evaluated on the data points that are returned.
-
You can use the following methods to find whether an alarm on a Lambda function is currently evaluating its alarm state based on partial data:
-
In the console, choose an alarm and choose the Details page. If you see the message Evaluation warning: Not evaluating all data appears on that page, it is evaluating on partial data.
-
If you see the value
PARTIAL_DATAin theEvaluationStatefield when you use thedescribe-alarmsAmazon CLI command or the DescribeAlarms API, it is evaluating on partial data.
-
-
An alarm also publishes events to Amazon EventBridge when it goes into the partial data state.