使用 CloudWatch 异常检测 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 CloudWatch 异常检测

为指标启用异常检测时,CloudWatch 将应用统计算法和机器学习算法。这些算法只需最少的用户干预,即可持续分析系统和应用程序的指标,确定正常基线和表面异常。

这些算法会生成异常检测模型。该模型生成表示正常指标行为的预期值范围。

您可以使用 Amazon Web Services Management Console、Amazon CLI、Amazon CloudFormation 或 Amazon SDK 启用异常检测。您可以对由 Amazon 出售的指标以及自定义指标启用异常检测。在设置为 CloudWatch 跨账户可观测性的账户中,除了监控账户中的指标外,您还可以在源账户的指标中创建异常检测器。

您可以通过两种方式使用预期值模型:

  • 根据指标的预期值创建异常检测警报。这些类型的警报没有用于确定警报状态的静态阈值。相反,它们将根据异常检测模型将指标的值与预期值进行比较。

    您可以选择当指标值高于预期值范围和/或低于预期值范围时是否触发警报。

    有关更多信息,请参阅 根据异常检测创建 CloudWatch 告警

  • 查看指标数据的图表时,将预期值叠加到图表上作为范围。这样可以清晰直观地看出图中的哪些值不在正常范围内。有关更多信息,请参阅 创建图表

    您还可以通过将 GetMetricData API 请求与 ANOMALY_DETECTION_BAND 指标数学函数结合使用来检索模型范围的上限值和下限值。有关更多信息,请参阅 GetMetricData

在具有异常检测的图表中,预期的值范围显示为灰色范围。如果指标的实际值超出此范围,则在此期间将显示为红色。

异常检测算法将指标的季节性变化和趋势变化考虑在内。季节性变化可以是每小时、每天或每周,如以下示例所示。

显示为 CPUUtilization 指标启用的异常检测的指标控制台。
显示为 CPUUtilization 指标启用的异常检测的指标控制台。
显示为 CPUUtilization 指标启用的异常检测的指标控制台。

较长期的趋势可能是向下或向上。

显示为 CPUUtilization 指标启用的异常检测的指标控制台。

异常检测也适用于具有平面模式的指标。

显示为 CPUUtilization 指标启用的异常检测的指标控制台。

CloudWatch 异常检测的工作原理

在为指标启用异常检测后,CloudWatch 会将机器学习算法应用于指标的过去数据,以创建指标的预期值模型。该模型评估指标的趋势以及每小时、每日和每周模式。算法训练最多两周的指标数据,但即使指标没有完整的两周数据,您也可以为指标启用异常检测。

您需要为异常检测阈值指定一个值,CloudWatch 使用该值和该模型确定指标值的“正常”范围。异常检测阈值的值越高,生成的“正常”值范围越大。

机器学习模型特定于指标和统计数据。例如,如果您使用 AVG 统计数据为指标启用异常检测,则模型特定于 AVG 统计数据。

当 CloudWatch 为许多 Amazon 服务中的常见指标创建模型时,它可确保检测范围不会超出逻辑值。例如,EC2 实例 MemoryUtilization 的波段将保持在 0 到 100 之间,而跟踪 CloudFront Requests 的波段(不能为负)永远不会延伸到零以下。

创建模型后,CloudWatch 异常检测会持续评估模型并对其进行调整,以确保模型尽可能准确。这包括重新训练模型,以便在指标值随时间推移而变化或有突然变化时进行调整,还包括用于改进季节性、峰值或稀疏指标模型的预测器。

在为指标启用异常检测后,您可以选择排除指标的指定时间段,使其不用于训练模型。这样,您就可以排除部署或其他不寻常的事件,使其不用于训练模型,从而确保创建最精确的模型。

对警报使用异常检测模型会使您的 Amazon 账户产生费用。有关更多信息,请参阅 Amazon CloudWatch 定价

指标数学异常检测

指标数学异常检测是一项您可以用于针对指标数学表达式的输出创建异常检测告警的功能。您可以使用这些表达式来创建能可视化异常检测范围的图表。该功能支持基本的算术函数、比较和逻辑运算符以及大多数其他函数。有关不支持的函数的信息,请参阅 Amazon CloudWatch 用户指南中的使用指标数学

您可以根据指标数学表达式创建异常检测模型,创建方式类似于创建异常检测模型。在 CloudWatch 控制台中,您可以将异常检测应用于指标数学表达式,并选择异常检测作为这些表达式的阈值类型。

注意

仅可在最新版本的指标用户界面中启用和编辑指标数学异常检测。在新版本指标用户界面中根据指标数学表达式创建异常检测器时,您可以在旧版本中查看这些检测器,但不能对它们进行编辑。

有关如何为异常检测和指标数学创建告警和模型的信息,请参阅以下部分:

您还可以将 CloudWatch API 与 PutAnomalyDetectorDeleteAnomalyDetectorDescribeAnomalyDetectors 结合起来使用,根据指标数学表达式创建、删除及发现异常检测模型。有关这些 API 操作的信息,请参阅 Amazon CloudWatch API 参考中的以下部分。

有关异常检测告警定价方式的信息,请参阅 Amazon CloudWatch 定价