使用监控预测性扩展指标 CloudWatch - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用监控预测性扩展指标 CloudWatch

根据您的需求,您可能更愿意从亚马逊 CloudWatch 而不是从 Amazon EC2 Auto Scaling 控制台访问用于预测性扩展的监控数据。创建预测性扩缩策略后,该策略将收集用于预测未来负载和容量的数据。收集这些数据后,系统会定期自动将其存储。 CloudWatch 然后,您可以使用可视 CloudWatch 化策略在一段时间内的执行情况。您还可以创建 CloudWatch 警报,以便在绩效指标变化超出您在中定义的限制时通知您 CloudWatch。

可视化显示历史预测数据

您可以在中查看预测性扩展策略的负载和容量预测数据 CloudWatch。在单个图表中根据其他 CloudWatch指标对预测进行可视化时,这可能很有用。您还可以查看更大的时间范围,以了解长期的趋势,这也非常有益。您可以访问长达 15 个月的历史指标,以更好地了解您的策略性能。

有关更多信息,请参阅 预测性扩缩指标和维度

使用 CloudWatch 控制台查看历史预测数据
  1. 打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,选择 Metrics(指标),然后选择 All metrics(所有指标)。

  3. 选择 Auto Scaling(自动扩缩)指标命名空间。

  4. 选择下面的一个选项,以查看负载预测或容量预测指标:

    • Predictive Scaling Load Forecasts(预测性扩缩负载预测)

    • Predictive Scaling Capacity Forecasts(预测性扩缩容量预测)

  5. 在搜索字段中,输入预测性扩缩策略的名称或自动扩缩组的名称,然后按 Enter 键以筛选结果。

  6. 要为指标绘制图表,请选中该指标旁的复选框。要更改图表的名称,请选择铅笔图标。要更改时间范围,请选择某个预定义的值或选择 custom。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的绘制指标的图表。

  7. 要更改统计数据,请选择 Graphed metrics(已绘制图表指标)选项卡。选择列标题或单个值,然后选择其他统计数据。尽管您可以为每个指标选择任何统计数据,但并非所有统计数据都对PredictiveScalingLoadForecastPredictiveScalingCapacityForecast指标有用。例如,Average(平均)、Minimum(最小)和 Maximum(最大)统计数据非常有用,但 Sum(总和)统计数据用处不大。

  8. 要在图表中添加其他指标,请在 All(全部)下选择 Browse(浏览),找到特定的指标,然后选中它旁边的复选框。您最多可以添加 10 个指标。

    例如,要将 CPU 利用率的实际值添加到图表中,请选择 EC2 命名空间,然后选择 By Auto Scaling Group(按自动扩缩组)。然后,选中 CPUUtilization 指标和特定自动扩缩组旁的复选框。

  9. (可选)要将图表添加到 CloudWatch 仪表板,请选择操作,然后选择添加到仪表板

使用指标数学创建准确度指标

使用指标数学,您可以查询多个 CloudWatch 指标,并使用数学表达式根据这些指标创建新的时间序列。您可以在 CloudWatch 控制台上可视化生成的时间序列并将其添加到仪表板中。有关指标数学的更多信息,请参阅 Amazon CloudWatch 用户指南中的使用指标数学

借助指标数学,您能够以不同方式绘制 Amazon EC2 Auto Scaling 为预测性扩缩而生成的数据。这可帮助您监控随时间变化的策略性能,并帮助您了解是否可以改进指标组合。

例如,您可以使用指标数学表达式来监控平均绝对百分比误差(MAPE)。MAPE 指标可帮助监控在给定预测时段内预测值与实际观测值之间的差异。MAPE 值的变化可能表明随着应用性质的变化,策略的性能是否会随着时间的推移而下降。MAPE 增加说明着预测值和实际值之间的差异加大。

示例:指标数学表达式

要开始使用此类图表,您可以创建一个与下例中类似的指标数学表达式。

{ "MetricDataQueries": [ { "Expression": "TIME_SERIES(AVG(ABS(m1-m2)/m1))", "Id": "e1", "Period": 3600, "Label": "MeanAbsolutePercentageError", "ReturnData": true }, { "Id": "m1", "Label": "ActualLoadValues", "MetricStat": { "Metric": { "Namespace": "AWS/EC2", "MetricName": "CPUUtilization", "Dimensions": [ { "Name": "AutoScalingGroupName", "Value": "my-asg" } ] }, "Period": 3600, "Stat": "Sum" }, "ReturnData": false }, { "Id": "m2", "Label": "ForecastedLoadValues", "MetricStat": { "Metric": { "Namespace": "AWS/AutoScaling", "MetricName": "PredictiveScalingLoadForecast", "Dimensions": [ { "Name": "AutoScalingGroupName", "Value": "my-asg" }, { "Name": "PolicyName", "Value": "my-predictive-scaling-policy" }, { "Name": "PairIndex", "Value": "0" } ] }, "Period": 3600, "Stat": "Average" }, "ReturnData": false } ] }

这不是单个指标,而是一组针对 MetricDataQueries 的指标数据查询结构。MetricDataQueries 中的每一项都会获取一个指标或执行一个数学表达式。第一项 e1 是一个数学表达式。指定的表达式将 ReturnData 参数设置为 true,这最终会生成单个时间序列。对于所有其他指标,ReturnData 值为 false

在示例中,指定的表达式使用实际值和预测值作为输入,并返回新的指标 (MAPE)。 m1是包含实际负载值的 CloudWatch指标(假设 CPU 利用率是最初为名为的策略指定的负载指标my-predictive-scaling-policy)。 m2是包含预测负荷值的 CloudWatch指标。MAPE 指标的数学语法如下所示:

(((实际值 - 预测值)/(实际值)) 的绝对值) 的平均值

可视化显示准确度指标并设置警报

要可视化准确度指标数据,请在 CloudWatch 控制台中选择 Metrics 选项卡。您可以在此处绘制数据图表。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的向 CloudWatch 图表添加数学表达式

您还可以在 Metrics(指标)部分为您监控的指标设置警报。在 Graphed metrics(绘制的指标)选项卡中,选择 Actions(操作)列下的 Create alarm(创建警报)。Create alarm(创建警报)图标用一个小铃铛表示。有关更多信息和通知选项,请参阅 Amazon 用户指南中的基于指标数学表达式创建警报和通知 CloudWatch 用户警报更改。 CloudWatch

或者,您可以使用GetMetricDataPutMetricAlarm使用公制数学进行计算,并根据输出创建警报。