如何使用 CloudWatch 中的 Metrics Insights 查询的部分数据
如果用于告警的 Metrics Insights 查询匹配的指标超过 10,000 个,则根据该查询找到的前 10,000 个指标评估告警。这意味着根据部分数据评估告警。
您可以使用以下方法来确定 Metrics Insights 告警目前是否正在根据部分数据评估其告警状态:
在控制台中,如果您选择一个告警来查看 Details(详细信息)页面,则该页面上会显示 Evaluation warning: Not evaluating all data(评估警告:未评估所有数据)消息。
当您使用 describe-alarms
AWS CLI 命令或 DescribeAlarms API 时,您会在 EvaluationState
字段中看到值PARTIAL_DATA
。
当 Amazon EventBridge 进入部分数据状态时,告警还会将事件发布到 Amazon EventBridge,这样您就可以创建 EventBridge 规则来监视这些事件。在这些事件中,evaluationState
字段的值为 PARTIAL_DATA
。示例如下:
{ "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 } ] } } }
如果告警查询包含的 GROUP BY 语句最初返回 500 个以上的时间序列,则将根据该查询找到的前 500 个时间序列对告警进行评估。但是,如果您使用的是 ORDER BY 子句,则将对该查询找到的所有时间序列进行排序,并根据您的 ORDER BY 子句,将具有最高值或最低值的前 500 个时间序列用于评估告警。