

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 CloudWatch 監控預測擴展指標
<a name="monitor-predictive-scaling-cloudwatch"></a>

根據需求，您可能偏好從 Amazon 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. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Metrics** (指標)，然後選擇 **All metrics** (所有指標)。

1. 選擇 **Auto Scaling** (自動擴展) 指標命名空間。

1. 選擇下列其中一個選項，以檢視負載預測或容量預測指標：
   + **預測性擴展載入預測**
   + **預測性擴展容量預測**

1. 在搜尋欄位中，輸入預測擴展政策的名稱或者 Auto Scaling 群組的名稱，然後按 Enter 篩選結果。

1. 若要將指標圖形化，請勾選指標旁的核取方塊。若要變更圖形的名稱，請選擇鉛筆圖示。若要變更時間範圍，請選取一個預先定義的值，或選擇 **custom (自訂)**。如需詳細資訊，請參閱《Amazon CloudWatch 使用者指南》中的[建立指標圖表](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_a_metric.html)。

1. 若要變更統計數字，請選擇 **Graphed metrics** (圖表化指標) 索引標籤。選擇欄位標題或個別的值，然後選擇不同的統計資料。雖然您可以為每個指標選擇任何統計資料，但並非所有統計資料都適用於 **PredictiveScalingLoadForecast** 和 **PredictiveScalingCapacityForecast** 指標。例如，**Average** (平均值)、**Minimum** (最小值) 和 **Maximum** (最大值) 統計資料有用，但是 **Sum** (總和) 統計資料無用。

1. 若要將其他指標新增到圖表，請在 **Browse** (瀏覽) 下，選擇 **All** (所有)，找到特定指標，然後選取旁邊的核取方塊。您最多可新增 10 個指標。

   例如，若要將 CPU 使用率的實際值新增至圖表，請選擇 **EC2** 命名空間，然後選擇 **By Auto Scaling Group** (依據 Auto Scaling 群組)。然後，選取 **CPUUtilization** (CPU 使用率) 指標的核取方塊和特定 Auto Scaling 群組。

1. (選用) 若要將圖表新增至 CloudWatch 儀表板，請選擇 **Actions** (動作)、**Add to dashboard** (新增至儀表板)。

## 使用指標數學建立準確度指標
<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 指標的數學語法如下：

*Average of (abs ((Actual - Forecast)/(Actual)))*

### 視覺化您的準確度指標並設定警示
<a name="visualize-accuracy-metrics-set-alarms"></a>

若要視覺化準確度指標資料，請選取 CloudWatch 主控台中的 **Metrics** (指標) 索引標籤。您可以從那裡繪製資料圖表。如需詳細資訊，請參閱《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 CloudWatch User Guide* 中的 [Creating a CloudWatch alarm based on a metric math expression](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create-alarm-on-metric-math-expression.html) 與 [Notifying users on alarm changes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Notify_Users_Alarm_Changes.html)。

或者，您可以使用 [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html) 和 [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) 利用指標數學來執行計算，並根據輸出建立警示。