告警评估
指标告警状态
指标告警可能具有以下几种状态:
-
OK– 指标或表达式在定义的阈值范围内。 -
ALARM– 指标或表达式超出定义的阈值。 -
INSUFFICIENT_DATA(数据不足) – 告警刚刚启动,指标不可用,或者指标没有足够的数据以确定告警状态。
告警评估状态
除了告警状态外,每个告警都有一个评估状态,用于提供告警评估过程的相关信息。可能会出现以下状态:
-
PARTIAL_DATA:表示由于配额限制,无法检索到所有可用数据。有关更多信息,请参阅 如何处理部分数据。 -
EVALUATION_ERROR:表示告警设置中存在需要审查和更正的配置错误。有关更多详细信息,请参阅告警的 StateReason 字段。 -
EVALUATION_FAILURE:表示 CloudWatch 出现临时问题。我们建议在问题得到解决之前进行手动监控
您可以在控制台的告警详细信息中查看评估状态,也可以使用 describe-alarms CLI 命令或 DescribeAlarms API 来查看评估状态。
告警评估设置
创建告警时,请指定三个设置,以启用 CloudWatch 评估在何时更改告警状态:
-
时间段是为了创建警报的各个数据点,而评估指标或表达式所用的时间长度。它以秒为单位。
-
Evaluation Periods(评估期)是确定告警状态时要评估的最近时间段或数据点的数量。
-
Datapoints to Alarm(触发告警的数据点数)是评估期内必须违例才能触发告警变为
ALARM(告警)状态的数据点数量。超出阈值的数据点不必是连续的,但它们必须全部在等于 Evaluation Period(评估期)的最近几个数据点范围内。
对于任何一分钟或更长的时间段,每分钟评估一次告警,评估基于周期和评估周期定义的时段。例如,如果周期为 5 分钟(300 秒),评估周期为 1,则在第 5 分钟结束时,告警将根据从 1 到 5 分钟的数据进行评估。然后,在第 6 分钟结束时,根据第 2 分钟到 6 分钟的数据对告警进行评估。
如果警报周期为 10 秒、20 秒或 30 秒,则每 10 秒评估一次警报。有关更多信息,请参阅 高精度告警。
如果评估周期数乘以每个评估周期的长度得到的结果超过一天,则每小时评估一次警报。有关如何评估此类多天告警的更多详细信息,请参阅 评估多天警报的示例。
在下图中,指标告警的阈值设置为三个单位。Evaluation Periods(评估期)和 Datapoints to Alarm(触发告警的数据点数)均为 3。也就是说,在最近三个连续评估期中的所有现有数据点都高于阈值时,告警就会变为 ALARM(告警)状态。在该图中,在第三个到第五个时间段发生了这种情况。在第六个时间段,数值降至阈值以下,因此其中一个时间段被评估为未违例,且告警状态恢复为 OK(正常)。在第九个时间段,再次超出阈值,但仅一个时间段超出阈值。因此,告警状态保持为 OK(正常)。
在将 Evaluation Periods(评估期)和 Datapoints to Alarm(触发告警的数据点数)配置为不同的值时,您将设置“M(最大为 N)”告警。告警的数据点数为(“M”),评估期为(“N”)。评估周期是指评估次数乘以每个周期长度所得的数值。例如,如果为 1 分钟的评估期配置 4 个数据点(最大为 5 个数据点),则评估间隔为 5 分钟。如果为 10 分钟的评估期配置 3 个数据点(最大为 3 个数据点),则评估间隔为 30 分钟。
注意
如果创建告警后不久便有数据点缺失,并且该指标在您创建告警之前便已报告给 CloudWatch,则 CloudWatch 在评估告警时会检索从创建告警之前算起的最近数据点。
高精度告警
如果对高精度指标设置告警,则您可以指定 10 秒、20 秒或 30 秒时长的高精度告警。高精度告警的费用较高。有关高精度指标的更多信息,请参阅 发布自定义指标。
评估多天警报的示例
如果评估周期数乘以每个评估周期的长度得到的结果超过一天,则警报为多天警报。多天警报每小时评估一次。在评估多天警报时,CloudWatch 在评估时仅考虑截至当前小时 00 分的指标。
例如,假设有一个警报会监测每隔 3 天在 10:00 运行一次的作业。
-
10:02,作业失败
-
在 10:03,警报会进行评估并保持
OK状态,原因是评估只考虑截至 10:00 的数据。 -
在 11:03,警报会考虑 11:00 之前的数据并转为
ALARM状态。 -
您在 11:43 更正了错误,作业现在成功运行。
-
12:03,警报再次进行评估,检测到作业正在成功运行,然后返回到
OK状态。