

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

# 取得指標的統計資訊
<a name="getting-metric-statistics"></a>

# CloudWatch 統計資料定義
<a name="Statistics-definitions"></a>

統計資料是隨著指定期間的指標資料彙總。繪製或擷取指標的統計資料時，請指定時間*期間*，例如五分鐘，以用來計算每個統計值。例如，如果**期間**是五分鐘，**總和**是五分鐘期間收集的所有樣本值的總和，而**最小值**是在五分鐘期間收集的最小值。

CloudWatch 支援以下指標的統計資料。
+ **SampleCount** 是期間內資料點的數目。
+ **Sum** (總和) 是指在該期間收集的所有資料點的值總和。
+ **平均值**是指定期間的 `Sum/SampleCount` 值
+ **最小值**是在指定期間內觀察到的最低值。
+ **最大值**是在指定期間內觀察到的最高值。
+ **百分位數 (p)** 會指出資料集中相關準備好的值。例如，**p95** 是第 95 個百分位數，亦表示 95% 的資料是低於此值且 5% 資料高於這個值。百分位數協助您更加了解您指標資料的分佈。
+ **裁剪平均值 (TM)** 是兩個指定邊界之間的所有值的平均值。計算平均值時，會忽略邊界以外的值。您可以將邊界定義為介於 0 到 100 之間的一個或兩個數字，最多可達 10 位小數位數。這些數字可以是絕對值或百分比。例如：**tm90** 會在移除具有最高值的 10% 資料點後計算平均值。**TM(2%:98%)** 會計算移除 2% 最低資料點和 2% 最高資料點後的平均值。**TM(150:1000)** 會在移除所有低於或等於 150 或高於 1000 的資料點後計算平均值。
+ **四分位平均值 (IQM)** 是*四分位數範圍*的裁剪平均值，或者中間 50% 的值。它等於 **TM(25%:75%)**。
+ **縮尾均值 (WM)** 類似於裁剪平均值。但是，對於縮尾均值，不會忽略邊界外的值，而是會將其視為等於適當邊界邊緣的值。在此正規化之後，即會計算平均值。您可以將邊界定義為介於 0 到 100 之間的一個或兩個數字，最多可達 10 位小數位數。例如：**wm98** 會計算平均值，同時將最高值的 2% 處理為等於 98 個百分位數的值。**WM(10%:90%)** 會計算平均值，同時將最高 10% 的資料點視為 90% 界限的值，並將最低 10% 的資料點視為 10% 界限的值。
+ **百分位數排名 (PR)**是符合固定閾值的百分比。例如，**PR(:300)** 會傳回值為 300 或以下的資料點百分比。**PR(100:2000)** 會傳回值介於 100 到 2000 之間的資料點百分比。

  百分位數的下界為排除性，上界為包含性。
+ **裁剪計數 (TC)** 是裁剪平均統計資料所選範圍內的資料點數目。例如，**tc90** 會傳回資料點數目，不包括落在最高 10% 值的任何資料點。**TC(0.005:0.030)** 會傳回值介於 0.005 (不含) 和 0.030 (含) 之間的資料點數目。

  修剪後的計數可能返回小數值，而非整數。這是因為它是插入的近似值，可能產生小數結果。
+ **裁剪總和 (TS)** 是裁剪平均統計資料所選範圍內的資料點的值總和。它相當於 (裁剪平均值) \$1 (裁剪計數)。例如：**ts90** 會傳回資料點的總和，不包括落在最高 10% 值的任何資料點。**TS(80%:)** 會傳回資料點的值總和，不包括值範圍最低 80% 的任何資料點。

**注意**  
對於「裁剪平均值」、「裁剪計數」、「裁剪總和」和「縮尾均值」，如果您將兩個邊界定義為固定值而非百分比，則計算會包含等於較高邊界的值，但不包含等於下邊界的值。

## 語法
<a name="Statistics-syntax"></a>

對於「裁剪平均值」、「裁剪計數」、「裁剪總和」和「縮尾均值」，套用下列語法規則：
+ 使用帶有百分比符號的一個或兩個數字的括號，定義要用作資料集中位於您指定的兩個百分位數之間的值的邊界。例如，**TM(10%:90%)** 僅使用第 10 和第 90 個百分位數之間的值。**TM(:95%)** 會使用從資料設定最低端到第 95 個百分位數的值，忽略具有最高值的 5% 資料點。
+ 使用含有一個或兩個數字的括號 (不含百分比符號) 可定義用作資料集中的值的邊界，且這些值位於您指定的明確值之間。例如，**TC(80:500)** 只會使用介於 80 (不含) 和 500 (含) 之間的值。**TC(:0.5)** 僅使用等於或小於 0.5 的值。
+ 使用沒有括號的數字來計算使用百分比，忽略高於指定百分位數的資料點。例如，**tm99** 會計算平均值，同時忽略具有最高值的 1% 資料點。其與 **TM(:99%)** 相同。
+ 裁剪平均值、裁剪計數、裁剪總和以及縮尾均值都可以在指定範圍時使用大寫字母縮寫，例如 **TM(5%:95%)**、**TM(100:200)** 或 **TM(:95%)**。當您只指定一個數字時，它們只能使用小寫字母縮寫，例如 **tm99**。

## 統計資料使用案例
<a name="Statistics-usecases"></a>
+ **裁剪均值**對於具有較大範例大小的指標 (例如網頁延遲) 最有用。例如，**tm99** 忽略了網路問題或人為錯誤可能導致的極高異常值，以提供一般請求的平均延遲更準確的數字。同樣地，**TM(10%:)** 會忽略最低 10% 的延遲值，例如快取點擊所產生的延遲值。另外，**TM(10%:99%)** 不包含這兩種類型的異常值。建議您使用裁剪平均值來監視延遲。
+ 每當您使用修剪平均值時，最好密切注意裁剪計數，以確保裁剪平均值計算中使用的值數量足以在統計上顯著。
+ 百分位數排名可讓您將值放入範圍的「箱」中，而且您可以使用它來手動建立長條圖。若要執行此動作，請將值分解成各種不同的資料箱，例如 **PR(:1)**、**PR(1:5)**、**PR(5:10)** 和 **PR(10:)**。將這些資料箱中的每一個以長條圖形式放入視覺效果中，並且您有一個直方圖。

  百分位數的下界為排除性，上界為包含性。

## 百分位數與裁剪平均值
<a name="Percentile-versus-Trimmed-Mean"></a>

百分位數 (例如 **p99**) 和裁剪平均值 (例如 **tm99**) 測量相似，但值不相同。**p99** 和 **tm99** 均會忽略具有最高值的資料點的 1%，而這會被視為異常值。之後，**p99** 是剩餘 99% 的 ** 最大值，而 **tm99** 是剩餘 99% 的*平均值*。如果您正在查看 Web 請求的延遲，**p99** 告訴您最糟糕的客戶體驗，忽略異常值；而 **tm99** 告訴您平均客戶體驗，忽略異常值。

裁剪平均值是一個不錯的延遲統計數字，如果您想要最佳化您的客戶體驗。

## 使用百分位數、裁剪平均值和一些其他統計數字的需求
<a name="Percentiles-trimmedmean-requirements"></a>

CloudWatch 需要原始資料點求來計算以下統計數字：
+ 百分位數
+ 裁剪平均值
+ 四分位平均值
+ 縮尾均值
+ 裁剪的總和
+ 裁剪
+ 百分位數排名

如果您使用統計數字集而非原始資料的統計數字來為自訂統計數字發布資料，只有在以下條件之一為 true 時，您才能擷取此資料的這些統計數字類型：
+ 統計資料集的 SampleCount 值是 1，而最小值、最大值和總和都是相等的。
+ 最小值和最大值是相等的，而總和等於最小值乘以 SampleCount。

下列 AWS 服務包含支援這些統計資料類型的指標。
+ API Gateway
+ Application Load Balancer
+ Amazon EC2
+ Elastic Load Balancing
+ Kinesis
+ Amazon RDS

此外，當任何指標值為負數時，這些統計數字類型不適用於指標。

## 範例
<a name="statistics-examples-intro"></a>

以下範例說明如何取得資源的 CloudWatch 指標統計資料，例如您的 EC2 執行個體。

**Topics**

# 取得特定資源的統計資料
<a name="US_SingleMetricPerInstance"></a>

以下範例說明如何判斷特定 EC2 執行個體的最大 CPU 使用率。

**要求**
+ 您必須擁有該執行個體的 ID。您可以使用 Amazon EC2 主控台或 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令以取得執行個體 ID。
+ 預設會啟用基本監控，但您可以啟用詳細監控。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[啟用或停用執行個體的詳細監控](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html)。

**使用主控台顯示特定執行個體的平均 CPU 使用率**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

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

1. 選取 **EC2** 指標命名空間。  
![\[選取 EC2 指標命名空間\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/metric_view_categories.png)

1. 選取 **Per-Instance Metrics (每個執行個體指標)** 維度。  
![\[檢視 Amazon EC2 的指標維度\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/metric_view_metric_category.png)

1. 在搜尋欄位中，輸入 **CPUUtilization**，然後按 Enter 鍵。選取特定執行個體的資料列，這會顯示該執行個體 `CPUUtilization` 指標的圖形。若要變更圖形的名稱，請選擇鉛筆圖示。若要變更時間範圍，請選取一個預先定義的值，或選擇 **custom (自訂)**。  
![\[繪製單一指標的圖形\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/metric_statistics_ec2_instance.png)

1. 若要變更統計數字，請選擇 **Graphed metrics** (圖形化指標) 索引標籤。選擇欄位標題或個別的值，然後選擇統計資料之一或預先定義的百分位，或指定自訂的百分比 (例如，**p99.999**)。  
![\[變更指標的統計資料\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/metric_statistics_ec2_instance_statistic_period.png)

1. 若要變更期間，請選擇 **Graphed metrics (圖形化指標)** 標籤。選擇欄位標題或個別的值，然後選擇不同的值。

**使用 取得每個 EC2 執行個體的 CPU 使用率 AWS CLI**  
如下所示，使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令取得指定執行個體的 `CPUUtilization` 指標。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization \
--dimensions Name=InstanceId,Value=i-1234567890abcdef0 --statistics Maximum \
--start-time 2016-10-18T23:18:00 --end-time 2016-10-19T23:18:00 --period 360
```

傳回的統計資料為請求之 24 小時時間間隔的 6 分鐘值。每個值皆代表指定執行個體在特定 6 分鐘期間的最大 CPU 使用率百分比。資料點不會依照時間順序傳回。以下顯示範例輸出的開頭 (完整輸出包含 24 小時期間之每 6 分鐘的資料點)。

```
{
    "Datapoints": [
        {
            "Timestamp": "2016-10-19T00:18:00Z", 
            "Maximum": 0.33000000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2016-10-19T03:18:00Z", 
            "Maximum": 99.670000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2016-10-19T07:18:00Z", 
            "Maximum": 0.34000000000000002, 
            "Unit": "Percent"
        }, 
        ...
    ], 
    "Label": "CPUUtilization"
}
```

# 跨資源彙總統計資料
<a name="GetSingleMetricAllDimensions"></a>

您可以彙總多個 AWS 資源的資源指標。指標在區域之間完全分開，但您可以使用指標數學來彙總跨區域的類似指標。如需詳細資訊，請參閱[搭配 CloudWatch 指標使用數學表達式](using-metric-math.md)。

例如，您可以為您已啟用詳細監控的 EC2 執行個體彙總統計資料。使用基本監控的執行個體不包含在內。因此，您必須啟用詳細監控 (額外付費)，它提供 1 分鐘期間的資料。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[啟用或停用執行個體的詳細監控](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html)。

此範例顯示如何取得您的 EC2 執行個體的平均 CPU 使用量。由於沒有指定維度，CloudWatch 會傳回 `AWS/EC2` 命名空間中所有維度的統計資料。若要取得其他指標的統計資料，請參閱 [AWS 發佈 CloudWatch 指標的 服務](aws-services-cloudwatch-metrics.md)。

**重要**  
此擷取整個 AWS 命名空間所有維度的技術不適用於您發佈至 CloudWatch 的自訂命名空間。使用自訂命名空間，您必須指定與任何特定資料點建立關聯的一組完整維度，以擷取包含該資料點的統計資料。

**顯示您的 EC2 執行個體的平均 CPU 使用率**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

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

1. 選擇 **EC2** 命名空間，然後選擇 **Across All Instances** (在所有執行個體中)。

1. 選取包含 `CPUUtilization` 的資料列，這會顯示您所有 EC2 執行個體指標的圖形。若要變更圖形的名稱，請選擇鉛筆圖示。若要變更時間範圍，請選取一個預先定義的值，或選擇 **custom (自訂)**。  
![\[跨 EC2 執行個體彙總的指標\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/metric_aggregated_instances.png)

1. 若要變更統計數字，請選擇 **Graphed metrics** (圖形化指標) 索引標籤。選擇欄位標題或個別的值，然後選擇統計資料之一或預先定義的百分位，或指定自訂的百分比 (例如，**p95.45**)。

1. 若要變更期間，請選擇 **Graphed metrics (圖表化指標)** 標籤。選擇欄位標題或個別的值，然後選擇不同的值。

**使用 取得 EC2 執行個體的平均 CPU 使用率 AWS CLI**  
使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-staticstics.html) 命令，如下所示：

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization --statistics "Average" "SampleCount" \
--start-time 2016-10-11T23:18:00 --end-time 2016-10-12T23:18:00 --period 3600
```

下列為範例輸出：

```
{
    "Datapoints": [
        {
            "SampleCount": 238.0, 
            "Timestamp": "2016-10-12T07:18:00Z", 
            "Average": 0.038235294117647062, 
            "Unit": "Percent"
        }, 
        {
            "SampleCount": 240.0, 
            "Timestamp": "2016-10-12T09:18:00Z", 
            "Average": 0.16670833333333332, 
            "Unit": "Percent"
        }, 
        {
            "SampleCount": 238.0, 
            "Timestamp": "2016-10-11T23:18:00Z", 
            "Average": 0.041596638655462197, 
            "Unit": "Percent"
        }, 
        ...
    ], 
    "Label": "CPUUtilization"
}
```

# 依據 Auto Scaling 群組彙總統計資料
<a name="GetMetricAutoScalingGroup"></a>

您可以彙總 Auto Scaling 群組中 EC2 執行個體的統計資料。指標在區域之間完全分開，但您可以使用 CloudWatch 指標數學來彙總和轉換多個區域的指標。您也可以使用跨帳戶儀表板，針對不同帳戶的指標執行指標數學。

此範例顯示如何取得一個 Auto Scaling 群組寫入磁碟的總位元組。總計是計算指定 Auto Scaling 群組中的所有 EC2 執行個體，以 24 小時為間隔取得每隔 1 分鐘的數量。

**若要使用主控顯示 Auto Scaling 群組中執行個體的 DiskWriteBytes**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

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

1. 選擇 **EC2** 命名空間，然後選擇 **By Auto Scaling Group (依據 Auto Scaling 群組)**。

1. 選取 **DiskWriteBytes** 指標的資料列與指定的 Auto Scaling 群組，這會顯示 Auto Scaling 群組中執行個體指標的圖形。若要變更圖形的名稱，請選擇鉛筆圖示。若要變更時間範圍，請選取一個預先定義的值，或選擇 **custom (自訂)**。  
![\[跨 Auto Scaling 群組彙總的指標\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/metric_aggregated_auto_scaling.png)

1. 若要變更統計數字，請選擇 **Graphed metrics** (圖形化指標) 索引標籤。選擇欄位標題或個別的值，然後選擇統計資料之一或預先定義的百分位，或指定自訂的百分比 (例如，**p95.45**)。

1. 若要變更期間，請選擇 **Graphed metrics (圖表化指標)** 標籤。選擇欄位標題或個別的值，然後選擇不同的值。

**使用 取得 Auto Scaling 群組中執行個體的 DiskWriteBytes AWS CLI**  
使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令，如下所示。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskWriteBytes  
--dimensions Name=AutoScalingGroupName,Value=my-asg --statistics "Sum" "SampleCount" \
--start-time 2016-10-16T23:18:00 --end-time 2016-10-18T23:18:00 --period 360
```

以下為範例輸出。

```
{
    "Datapoints": [
        {
            "SampleCount": 18.0, 
            "Timestamp": "2016-10-19T21:36:00Z", 
            "Sum": 0.0, 
            "Unit": "Bytes"
        }, 
        {
            "SampleCount": 5.0, 
            "Timestamp": "2016-10-19T21:42:00Z", 
            "Sum": 0.0, 
            "Unit": "Bytes"
        }
    ], 
    "Label": "DiskWriteBytes"
}
```

# 以 Amazon Machine Image (AMI) 彙總統計資料
<a name="US_SingleMetricPerAMI"></a>

您可以為已啟用詳細監控的 EC2 執行個體彙總統計資料。使用基本監控的執行個體不包含在內。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[啟用或停用執行個體的詳細監控](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html)。

此範例顯示如何判斷使用指定的 AMI 的所有執行個體的平均 CPU 使用率。此平均是以一天期間內每 60 秒的時間間隔計算。

**使用主控台顯示依據 AMI 的平均 CPU 使用率**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

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

1. 選擇 **EC2** 命名空間，然後選擇 **By Image (AMI) Id (依據映像 (AMI) ID)**。

1. 選取 `CPUUtilization` 指標與特定 AMI 的資料列，這會顯示指定 AMI 的指標圖形。若要變更圖形的名稱，請選擇鉛筆圖示。若要變更時間範圍，請選取一個預先定義的值，或選擇 **custom (自訂)**。  
![\[依據 AMI 彙總的指標\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/metric_aggregated_ami.png)

1. 若要變更統計數字，請選擇 **Graphed metrics** (圖表化指標) 索引標籤。選擇欄位標題或個別的值，然後選擇統計資料之一或預先定義的百分位，或指定自訂的百分比 (例如，**p95.45**)。

1. 若要變更期間，請選擇 **Graphed metrics (圖表化指標)** 標籤。選擇欄位標題或個別的值，然後選擇不同的值。

**使用 取得 AMI 的平均 CPU 使用率 AWS CLI**  
使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令，如下所示。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization \
--dimensions Name=ImageId,Value=ami-3c47a355 --statistics Average \
--start-time 2016-10-10T00:00:00 --end-time 2016-10-11T00:00:00 --period 3600
```

此操作傳回的統計資料是以一天為間隔的每個小時值。每個值代表 EC2 執行個體執行指定的 AMI 的平均 CPU 使用率百分比。以下為範例輸出。

```
{
    "Datapoints": [
        {
            "Timestamp": "2016-10-10T07:00:00Z", 
            "Average": 0.041000000000000009, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2016-10-10T14:00:00Z", 
            "Average": 0.079579831932773085, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2016-10-10T06:00:00Z", 
            "Average": 0.036000000000000011, 
            "Unit": "Percent"
        }, 
        ...
    ], 
    "Label": "CPUUtilization"
}
```