

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

# 使用监控预测性扩展指标 CloudWatch
<a name="monitor-predictive-scaling-cloudwatch"></a>

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

**Topics**
+ [可视化显示历史预测数据](#visualize-historical-forecast-data)
+ [使用指标数学创建准确度指标](#create-accuracy-metrics)

## 可视化显示历史预测数据
<a name="visualize-historical-forecast-data"></a>

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

有关更多信息，请参阅 [预测性扩缩指标和维度](ec2-auto-scaling-metrics.md#predictive-scaling-metrics)。

**使用 CloudWatch 控制台查看历史预测数据**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择 **Metrics**（指标），然后选择 **All metrics**（所有指标）。

1. 选择 **Auto Scaling**（自动扩缩）指标命名空间。

1. 选择下面的一个选项，以查看负载预测或容量预测指标：
   + **Predictive Scaling Load Forecasts**（预测性扩缩负载预测）
   + **Predictive Scaling Capacity Forecasts**（预测性扩缩容量预测）

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

1. 要为指标绘制图表，请选中该指标旁的复选框。要更改图表的名称，请选择铅笔图标。要更改时间范围，请选择某个预定义的值或选择 **custom**。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[绘制指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_a_metric.html)图表。

1. 要更改统计数据，请选择 **Graphed metrics**（已绘制图表指标）选项卡。选择列标题或单个值，然后选择其他统计数据。尽管您可以为每个指标选择任何统计数据，但并非所有统计数据都对**PredictiveScalingLoadForecast**和**PredictiveScalingCapacityForecast**指标有用。例如，**平均**、**最小**和**最大**统计数据非常有用，但**总和**统计数据用处不大。

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

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

1. （可选）要将图表添加到 CloudWatch 仪表板，请选择**操作**，然后选择**添加到仪表板**。

## 使用指标数学创建准确度指标
<a name="create-accuracy-metrics"></a>

使用指标数学，您可以查询多个 CloudWatch 指标，并使用数学表达式根据这些指标创建新的时间序列。您可以在 CloudWatch 控制台上可视化生成的时间序列并将其添加到仪表板中。有关指标数学的更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[使用指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。

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

例如，您可以使用指标数学表达式来监控[平均绝对百分比误差](https://en.wikipedia.org/wiki/Mean_absolute_percentage_error)（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 指标的数学语法如下所示：

*（（实际值：预测值）/（实际值）的绝对值）的平均值*

### 可视化显示准确度指标并设置警报
<a name="visualize-accuracy-metrics-set-alarms"></a>

要可视化准确度指标数据，请在 CloudWatch 控制台中选择**指标**选项卡。您可以在此处绘制数据图表。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[向 CloudWatch 图表添加数学表达式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#adding-metrics-expression-console)。

您还可以在 **Metrics**（指标）部分为您监控的指标设置警报。在 **Graphed metrics**（绘制的指标）选项卡中，选择 **Actions**（操作）列下的 **Create alarm**（创建警报）。**Create alarm**（创建警报）图标用一个小铃铛表示。有关更多信息和通知选项，请参阅《*Amazon 用户指南》中的[基于指标数学表达式创建](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create-alarm-on-metric-math-expression.html)警报和通知 CloudWatch 用户*[警报更改](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Notify_Users_Alarm_Changes.html)。 CloudWatch 

或者，您可以使用[GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)和[PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html)使用公制数学进行计算，并根据输出创建警报。