亚马逊AWS官方博客

新增功能 – Amazon CloudWatch 异常检测

Amazon CloudWatch 于 2009 年初推出,它是我们(正如我当时所)“让您使用 AWS 构建复杂、可扩展且耐用的 Web 应用程序更加轻松”这一愿望的一部分。 多年来,我们一直在扩展 CloudWatch,我们的客户现在使用它来监控其基础设施、系统、应用程序甚至业务指标。他们构建自定义的控制面板,设置警报并依靠 CloudWatch 来提醒自己影响其应用程序性能或可靠性的问题。

如果您使用过 CloudWatch 警报,那么您会知道设置警报阈值需要一些技巧。您想确保尽早发现麻烦,但又不想触发错误警报。您需要应对增长和规模问题,还需要调整和重新校准阈值以应对周期性和季节性行为。

异常检测
今天,我们将通过一项新功能增强 CloudWatch,它将帮助您更有效地使用 CloudWatch 警报。CloudWatch 由机器学习提供支持,融入了十数年的经验,并有 12,000 多个内部模型给予助力。它可以帮助您避免手动配置和反复尝试,并且可以与具有可识别趋势或模式的任何标准自定义 CloudWatch 指标结合使用。

异常检测分析选定指标的历史值,并查找每小时、每天或每周重复的可预测模式。然后,它将创建一个最佳拟合模型,帮助您更好地预测未来,并更清晰地区分正常行为和有问题的行为。您可以根据需要调整和微调模型,甚至可以对同一 CloudWatch 指标使用多个模型。

使用异常检测
我可以在几秒钟内创建自己的模型! 我有一个 EC2 实例,每 24 小时会产生一次 CPU 利用率峰值:

我选择指标,然后单击“波”图标以启用此指标和统计数据的异常检测:

这将以默认设置创建模型。如果我选择模型并放大以查看某个利用率峰值,则可以看到峰值反映在预测带中:

我可以按原样使用此模型来引发指标的警报,也可以选择模型并单击编辑模型以对其进行自定义:

我可以从用于训练模型的数据中排除(过去或将来的)特定时间范围;如果数据反映了不会再次发生的一次性事件,那么这是妥当的做法。我还可以指定数据的时区;这使我可以处理对夏令时变化敏感的指标:

设置好之后,异常检测模型就会生效,我可以像往常一样用来创建警报。我选择异常检测作为阈值类型,然后使用异常检测阈值来控制数据带的厚度。当指标超出、大于或小于数据带时,我可以发出警报:

其余步骤与您已用于创建其他类型警报的步骤相同。

注意事项
当您准备使用此 CloudWatch 的新功能时,请记住以下几点:

合适的指标 – 当指标具有可识别的模式或趋势,并且缺失的数据点极少时,异常检测最为有效。

更新 – 创建模型后,它将每五分钟更新一次新的指标数据。

一次性事件 – 模型无法预测一次性事件,例如黑色星期五或假日购物季等。

API / CLI / CloudFormation – 您可以从控制台、CloudWatch API (PutAnomalyDetector) 和 CloudWatch CLI 创建和管理异常模型。您还可以在 AWS CloudFormation 模板中创建 AWS::CloudWatch::AnomalyDetector 资源。

现已推出
您现在就可以在所有商业 AWS 区域开始创建和使用 CloudWatch 异常检测。要了解更多信息,请阅读 CloudWatch 文档中的 CloudWatch 异常检测

本篇作者

Jeff Barr

AWS 首席布道师; 2004年开始发布博客,此后便笔耕不辍。