

# 实例的 CloudWatch 指标的统计数据
<a name="monitoring_get_statistics"></a>

您可以获取有关实例的 CloudWatch 指标的统计信息。*统计数据*是指定时间段内的指标数据汇总。CloudWatch 提供统计数据的依据是您的自定义数据所提供的指标数据点，或其他 AWS 服务向 CloudWatch 提供的指标数据点。聚合通过使用命名空间、指标名称、维度以及数据点度量单位在您指定的时间段内完成。下表介绍了可用的统计信息。


| 统计数据 | 描述 | 
| --- | --- | 
| Minimum |  指定时间段内的最低观察值。可以使用此值来决定应用程序的活动量是否较低。  | 
| Maximum |  指定时间段内的最高观察值。可以使用此值来决定应用程序的活动量是否较高。  | 
| Sum |  为匹配指标所提交的所有的值添加在一起。此统计信息的作用是决定指标的总量。  | 
| Average |  指定时间段内 `Sum` / `SampleCount` 的值。通过将此统计信息与 `Minimum` 和 `Maximum` 进行比较，可以决定指标的完整范围以及平均使用率与 `Minimum` 和 `Maximum` 的接近程度。这样的比较可以帮助了解何时应该根据需要增加或减少资源。  | 
| SampleCount |  数据点计数 (数量) 用于统计信息的计算。  | 
| pNN.NN |  指定的百分位数的值。您可以指定任何百分位数，最多使用两位小数 (例如 p95.45)。  | 

**Topics**
+ [获取特定实例的统计数据](US_SingleMetricPerInstance.md)
+ [聚合不同实例的统计数据](GetSingleMetricAllDimensions.md)
+ [按 Auto Scaling 组聚合统计数据](GetMetricAutoScalingGroup.md)
+ [按 AMI 聚合统计数据](US_SingleMetricPerAMI.md)

# 获取特定实例的统计数据
<a name="US_SingleMetricPerInstance"></a>

您可以使用 AWS 管理控制台或 AWS CLI 来获取特定实例的统计数据。以下示例显示了如何使用 AWS 管理控制台 或 AWS CLI 来确定特定 EC2 实例的最大 CPU 利用率。

**要求**
+ 您必须拥有实例的 ID。可使用 AWS 管理控制台 或 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令获取实例 ID。
+ 默认情况下，基本监控已启用，但您可以启用详细监控。有关更多信息，请参阅 [管理 EC2 实例的详细监控](manage-detailed-monitoring.md)。

**显示指定实例的 CPU 利用率（控制台）**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择**指标**。

1. 选择 **EC2** 指标命名空间。

1. 选择 **Per-Instance Metrics (每个实例的指标)** 维度。

1. 在搜索框中，输入 **CPUUtilization** 并按 Enter。选择特定实例所在的行，这将显示该实例的 **CPUUtilization** 指标的图表。要为该图标命名，请选择铅笔图标。要更改时间范围，请选择某个预定义的值或选择 **custom**。  
![\[绘制单个指标的图表\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/metric_statistics_ec2_instance.png)

1. 要更改指标的统计数据或时间段，请选择 **Graphed metrics** 选项卡。选择列标题或单个值，然后选择其他值。  
![\[更改指标的统计数据或时段\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/metric_statistics_ec2_instance_statistic_period.png)

**获取特定实例的 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  --period 3600 \
--statistics Maximum --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
--start-time 2022-10-18T23:18:00 --end-time 2022-10-19T23:18:00
```

下面是示例输出。每个数值代表一个 EC2 实例的最大 CPU 使用率百分比。

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

# 聚合不同实例的统计数据
<a name="GetSingleMetricAllDimensions"></a>

聚合统计信息适用于已经启用详细监控的实例。聚合中不包含使用基本监控的实例。在获取多实例聚合统计数据前，必须[启用详细监控](manage-detailed-monitoring.md#enable-detailed-monitoring)（另外收费），以提供以 1 分钟为间隔的数据。

请注意，Amazon CloudWatch 不能跨各个 AWS 区域聚合数据。指标在各区域间彼此独立。

此示例显示了如何使用详细监控来获取 EC2 实例的平均 CPU 使用率。因为未指定任何维度，所以 CloudWatch 会返回 `AWS/EC2` 命名空间中所有维度的统计数据。

**重要**  
此方法可以在 AWS 命名空间中检索所有维度，但不适用于发布到 Amazon CloudWatch 的自定义命名空间。对于自定义命名空间，必须指定与任意给定数据关联的完整的维度组，以检索包含数据点的统计数据。

**显示实例的平均 CPU 利用率（控制台）**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择**指标**。

1. 选择 **EC2** 命名空间，然后选择 **Across All Instances (跨所有实例)**。

1. 选择包含 **CPUUtilization** 的行，这将显示所有 EC2 实例的指标的图表。要为该图标命名，请选择铅笔图标。要更改时间范围，请选择某个预定义的值或选择 **custom**。  
![\[跨您的 EC2 实例聚合的指标\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/metric_aggregated_instances.png)

1. 要更改指标的统计数据或时间段，请选择 **Graphed metrics** 选项卡。选择列标题或单个值，然后选择其他值。

**获取实例的平均 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 \ 
    --period 3600  --statistics "Average" "SampleCount" \ 
    --start-time 2022-10-11T23:18:00 \
    --end-time 2022-10-12T23:18:00
```

下面是示例输出：

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

# 按 Auto Scaling 组聚合统计数据
<a name="GetMetricAutoScalingGroup"></a>

您可以聚合 Auto Scaling 组中 EC2 实例的统计数据。请注意，Amazon CloudWatch 不能跨各个 AWS 区域聚合数据。指标在各区域间彼此独立。

此示例说明如何检索为一个 Auto Scaling 组写入磁盘的字节总数。总数以 1 分钟为周期 24 小时为间隔针对指定 Auto Scaling 组中的所有 EC2 实例计算得出。

**显示一个 Auto Scaling 组中的实例的 DiskWriteBytes（控制台）**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择**指标**。

1. 选择 **EC2** 命名空间，然后选择 **By Auto Scaling Group**。

1. 选择 **DiskWriteBytes** 指标和特定 Auto Scaling 组所在的行，这将显示 Auto Scaling 组中实例的指标的图表。要为该图标命名，请选择铅笔图标。要更改时间范围，请选择某个预定义的值或选择 **custom**。

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 --period 360 \
--statistics "Sum" "SampleCount" --dimensions Name=AutoScalingGroupName,Value=my-asg --start-time 2022-10-16T23:18:00 --end-time 2022-10-18T23:18:00
```

下面是示例输出：

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

# 按 AMI 聚合统计数据
<a name="US_SingleMetricPerAMI"></a>

您可以通过 AMI 聚合已启用详细监控的实例的统计数据。聚合中不包含使用基本监控的实例。在获取多实例聚合统计数据前，必须[启用详细监控](manage-detailed-monitoring.md#enable-detailed-monitoring)（另外收费），以提供以 1 分钟为间隔的数据。

请注意，Amazon CloudWatch 不能跨各个 AWS 区域聚合数据。指标在各区域间彼此独立。

此示例显示了如何确定使用特定亚马逊机器映像（AMI）的所有实例的平均 CPU 使用率。平均值以 60 秒为时间间隔 1 天为周期。

**按 AMI 显示平均 CPU 利用率（控制台）**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择**指标**。

1. 选择 **EC2** 命名空间，然后选择 **By Image (AMI) Id**。

1. 选择 **CPUUtilization** 指标和特定 AMI 所在的行，这将显示指定 AMI 的指标的图表。要为该图标命名，请选择铅笔图标。要更改时间范围，请选择某个预定义的值或选择 **custom**。

1. 要更改指标的统计数据或时间段，请选择 **Graphed metrics** 选项卡。选择列标题或单个值，然后选择其他值。

**获取某个映像 ID 的平均 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  --period 3600 \
--statistics Average --dimensions Name=ImageId,Value=ami-3c47a355 --start-time 2022-10-10T00:00:00 --end-time 2022-10-11T00:00:00
```

下面是示例输出。每个数值代表运行指定 AMI 的 EC2 实例的平均 CPU 使用率百分比。

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