

# 收集网络性能指标
<a name="CloudWatch-Agent-network-performance"></a>

在 Linux 上运行的 EC2 实例使用 Elastic Network Adapter (ENA) 发布网络性能指标。版本 1.246396.0 和更高版本的 CloudWatch 代理使您能够将这些网络性能指标导入到 CloudWatch 中。当您将这些网络性能指标导入到 CloudWatch 时，它们将作为 CloudWatch 自定义指标收费。

有关 ENA 驱动程序的更多信息，请参阅[在 Linux 实例上启用 Elastic Network Adapter (ENA) 增强联网](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/enhanced-networking-ena.html)和[在 Windows 实例上启用 Elastic Network Adapter (ENA) 增强联网](https://docs.amazonaws.cn/AWSEC2/latest/WindowsGuide/enhanced-networking-ena.html)。

在 Linux 服务器和 Windows 服务器上，设置网络性能指标集合的方式不同。

下表列出了 ENA 适配器启用的这些网络性能指标。当 CloudWatch 代理从 Linux 实例将这些指标导入 CloudWatch 时，它会在每个指标名称的开头前置 `ethtool_`。


| 指标 | 说明 | 
| --- | --- | 
|  Linux 服务器上的名称：`bw_in_allowance_exceeded` Windows 服务器上的名称：`Aggregate inbound BW allowance exceeded`  |  因入站聚合带宽超过实例的最大值而排队和/或丢弃的数据包的数量。 仅当您将此指标列在 CloudWatch 代理配置文件 `metrics_collected` 部分的 `ethtool` 子部分时，才会收集该指标。有关更多信息，请参阅 [收集网络性能指标](#CloudWatch-Agent-network-performance) 单位：无  | 
|   Linux 服务器上的名称：`bw_out_allowance_exceeded` Windows 服务器上的名称：`Aggregate outbound BW allowance exceeded` |  因出站聚合带宽超过实例的最大值而排队和/或丢弃的数据包的数量。 仅当您将此指标列在 CloudWatch 代理配置文件 `metrics_collected` 部分的 `ethtool` 子部分时，才会收集该指标。有关更多信息，请参阅 [收集网络性能指标](#CloudWatch-Agent-network-performance) 单位：无  | 
|  Linux 服务器上的名称：`conntrack_allowance_available` Windows 服务器上的名称：`Available connection tracking allowance` |  报告在达到该实例类型的跟踪连接限额之前，实例可以建立的跟踪连接数。此指标仅支持使用适用于弹性网络适配器（ENA）的 Linux 驱动程序版本 2.8.1 及更高版本，且基于 Nitro 的 EC2 实例，以及使用适用于弹性网络适配器（ENA）的 Windows 驱动程序版本 2.6.0 及更高版本的计算机。 仅当您将此指标列在 CloudWatch 代理配置文件 `metrics_collected` 部分的 `ethtool` 子部分时，才会收集该指标。有关更多信息，请参阅 [收集网络性能指标](#CloudWatch-Agent-network-performance) 单位：无  | 
|  Linux 服务器上的名称：`ena_srd_mode` Windows 服务器上的名称：`ena srd mode` |  描述启用了哪些 ENA Express 功能。有关 ENA Express 的更多信息，请参阅[在 Linux 实例上使用 ENA Express 提高网络性能](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/ena-express.html)。值如下所示： [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-network-performance.html)  | 
|  Linux 服务器上的名称：`ena_srd_eligible_tx_pkts` Windows 服务器上的名称：`ena srd eligible tx pkts` |  在指定时间段内发送的符合 Amazon 可扩展的可靠数据报（SRD）要求的网络数据包的数量，如下所示： [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-network-performance.html)  | 
|  Linux 服务器上的名称：`ena_srd_tx_pkts` Windows 服务器上的名称：`ena srd tx pkts` |  指定时间段内传输的 SRD 数据包数量。  | 
|  Linux 服务器上的名称：`ena_srd_rx_pkts` Windows 服务器上的名称：`ena srd rx pkts` |  指定时间段内接收的 SRD 数据包数量。  | 
|  Linux 服务器上的名称：`ena_srd_resource_utilization` Windows 服务器上的名称：`ena srd resource utilization` |  实例已消耗的 SRD 并发连接的最大允许内存利用率的百分比。  | 
|  Linux 服务器上的名称：`linklocal_allowance_exceeded` Windows 服务器上的名称：`Link local packet rate allowance exceeded`  |  由于到本地代理服务的流量的 PPS 超出网络接口的最大值而丢弃的数据包数量。这会影响流向 DNS 服务、实例元数据服务和 Amazon Time Sync Service 的流量，但不会影响流向自定义 DNS 解析器的流量。 仅当您将此指标列在 CloudWatch 代理配置文件 `metrics_collected` 部分的 `ethtool` 子部分时，才会收集该指标。有关更多信息，请参阅 [收集网络性能指标](#CloudWatch-Agent-network-performance) 单位：无  | 
|  Linux 服务器上的名称：`pps_allowance_exceeded` Windows 服务器上的名称：`PPS allowance exceeded` |  因双向 PPS 超过实例的最大值而排队和/或丢弃的数据包的数量。 仅当您将此指标列在 CloudWatch 代理配置文件 `metrics_collected` 部分的 `ethtool` 子部分时，才会收集该指标。有关更多信息，请参阅 [收集网络性能指标](#CloudWatch-Agent-network-performance) 单位：无  | 

## Linux 设置
<a name="CloudWatch-Agent-network-performance-Linux"></a>

在 Linux 服务器上，*ethtool 插件*使您能够将网络性能指标导入到 CloudWatch 中。

ethtool 是一个标准的 Linux 实用工具，可以收集有关 Linux 服务器上以太网设备的统计数据。它收集的统计数据取决于网络设备和驱动程序。这些统计数据的示例包括 `tx_cnt`、`rx_bytes`、`tx_errors` 和 `align_errors`。当您将 ethtool 插件与 CloudWatch 代理一起使用时，您还可以将这些统计数据以及本部分前面列出的 EC2 网络性能指标导入到 CloudWatch 中。

**提示**  
要查找我们的操作系统和网络设备上可用的统计数据，请使用 `ethtool –S` 命令。

当 CloudWatch 代理将指标导入 CloudWatch 时，它会为所有导入指标的名称添加一个 `ethtool_` 前缀。所以标准的 ethtool 统计数据 `rx_bytes` 在 CloudWatch 中被称为 `ethtool_rx_bytes`，EC2 网络性能指标 `bw_in_allowance_exceeded` 在 CloudWatch 中被称为 `ethtool_bw_in_allowance_exceeded`。

在 Linux 服务器上，如需导入 ethtool 指标，请为 CloudWatch 代理配置文件 `metrics_collected` 部分添加 `ethtool` 部分。`ethtool` 部分包含以下子部分：
+ **interface\$1include** – 包括此部分会导致代理仅从本节中列出名称的接口收集指标。如果省略此部分，则会从 `interface_exclude` 中未列出的所有以太网接口收集指标。

  默认以太网接口为 `eth0`。
+ **interface\$1exclude** – 如果包含此部分，请列出您不希望从中收集指标的以太网接口。

  ethtool 插件始终忽略环回接口。
+ **metrics\$1include** – 此部分列出了要导入到 CloudWatch 中的指标。它可以包括 ethtool 收集的标准统计数据和 Amazon EC2 高精度网络指标。

以下示例显示 CloudWatch 代理配置文件的一部分。此配置收集标准的 ethtool 指标 `rx_packets` 和 `tx_packets`，以及仅来自 `eth1` 接口的 Amazon EC2 网络性能指标。

有关 CloudWatch 代理配置文件的更多信息，请参阅 [手动创建或编辑 CloudWatch 代理配置文件](CloudWatch-Agent-Configuration-File-Details.md)。

```
{
"metrics": {
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "ethtool": {
        "interface_include": [
          "eth1"
        ],
        "metrics_include": [
          "bw_in_allowance_exceeded",
          "bw_out_allowance_exceeded",
          "conntrack_allowance_exceeded",
          "linklocal_allowance_exceeded",
          "pps_allowance_exceeded"
         ]
      }
   }
}
}
```

## Windows 设置
<a name="CloudWatch-Agent-network-performance-Windows"></a>

在 Windows 服务器上，网络性能指标可通过 Windows 性能计数器获得，CloudWatch 代理已经从中收集指标。因此，您无需插件即可从 Windows 服务器收集这些指标。

以下是从 Windows 收集网络性能指标的配置文件示例。有关编辑 CloudWatch 代理配置文件的更多信息，请参阅 [手动创建或编辑 CloudWatch 代理配置文件](CloudWatch-Agent-Configuration-File-Details.md)。

```
{
    "metrics": {
        "append_dimensions": {
            "InstanceId": "${aws:InstanceId}"
        },
        "metrics_collected": {
            "ENA Packets Shaping": {
                "measurement": [
                    "Aggregate inbound BW allowance exceeded",
                    "Aggregate outbound BW allowance exceeded",
                    "Connection tracking allowance exceeded",
                    "Link local packet rate allowance exceeded",
                    "PPS allowance exceeded"
                ],
                "metrics_collection_interval": 60,
                "resources": [
                    "*"
                ]
            }
        }
    }
}
```

## 查看网络性能指标
<a name="CloudWatch-view-ENA-metrics"></a>

将网络性能指标导入到 CloudWatch 后，您可以以时间序列图形的形式查看这些指标，并创建可监视这些指标的告警，并在它们超出指定的阈值时通知您。以下程序介绍了如何以时间序列图形的方式查看 ethtool 指标。有关设置告警的更多信息，请参阅 [使用 Amazon CloudWatch 告警](CloudWatch_Alarms.md)。

由于所有这些指标都是聚合计数器，因此您可以使用 CloudWatch 指标数学函数（如 `RATE(METRICS())`）在图形中计算这些指标的比率，或使用它们设置告警。有关指标数学函数的更多信息，请参阅 [将数学表达式与 CloudWatch 指标结合使用](using-metric-math.md)。

**在 CloudWatch 控制台中查看网络性能指标**

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

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

1. 为该代理收集的指标选择命名空间。默认情况下，该命名空间为 **CWAgent**，但您可能已经在 CloudWatch 代理配置文件中指定了不同的命名空间。

1. 选择指标维度（例如 **Per-Instance Metrics（每个实例的指标）**）。

1. **All metrics** 选项卡显示命名空间中该维度的所有指标。您可执行以下操作：

   1. 要为指标绘制图表，请选中该指标旁的复选框。要选择所有指标，请选中表的标题行中的复选框。

   1. 要对表进行排序，请使用列标题。

   1. 要按资源进行筛选，请选择资源 ID，然后选择**添加到搜索**。

   1. 要按指标进行筛选，请选择指标名称，然后选择**添加到搜索**。

1. （可选）要将此图表添加到 CloudWatch 控制面板，请选择 **Actions（操作）**，然后选择 **Add to dashboard（添加到控制面板）**。