

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

# 将亚马逊 CloudWatch 指标发布到 CSV 文件
<a name="publish-amazon-cloudwatch-metrics-to-a-csv-file"></a>

*Abdullahi Olaoye，Amazon Web Services*

## Summary
<a name="publish-amazon-cloudwatch-metrics-to-a-csv-file-summary"></a>

此模式使用 Python 脚本来检索 Amazon CloudWatch 指标，并将指标信息转换为逗号分隔值 (CSV) 文件以提高可读性。该脚本将应检索其指标的 Amazon Web Services 作为必需参数。您可将 AWS 区域和 AWS 凭证配置文件指定为可选参数。如果您不指定这些参数，脚本将使用为运行脚本的工作站配置的默认区域和配置文件。脚本运行后，它会生成 CSV 文件并将其存储在同一目录中。

有关此模式提供的脚本和关联文件，请参阅*附件*部分。

## 先决条件和限制
<a name="publish-amazon-cloudwatch-metrics-to-a-csv-file-prereqs"></a>

**先决条件**
+ Python 3.x
+ AWS 命令行界面（AWS CLI）

**限制**

脚本当前支持以下 Amazon Web Services：
+ AWS Lambda
+ 亚马逊弹性计算云（亚马逊 EC2）
  + 默认情况下，脚本不收集Amazon Elastic Block Store(Amazon EBS) 卷指标。要收集 Amazon EBS 指标，您必须修改所附 `metrics.yaml` 文件。
+ Amazon Relational Database Service(Amazon RDS)
  + 但是，该脚本不支持 Amazon Aurora。
+ 应用程序负载均衡器
+ 网络负载均衡器
+ Amazon API Gateway

## 工具
<a name="publish-amazon-cloudwatch-metrics-to-a-csv-file-tools"></a>
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 是一项专为 DevOps 工程师、开发人员、站点可靠性工程师 (SREs) 和 IT 经理构建的监控服务。 CloudWatch 提供数据和切实可行的见解，帮助您监控应用程序、响应系统范围的性能变化、优化资源利用率并获得统一的运营状况视图。 CloudWatch 以日志、指标和事件的形式收集监控和运营数据，并提供在 AWS 和本地服务器上运行的 AWS 资源、应用程序和服务的统一视图。

## 操作说明
<a name="publish-amazon-cloudwatch-metrics-to-a-csv-file-epics"></a>

### 安装并配置先决条件
<a name="install-and-configure-the-prerequisites"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 安装先决条件。 | 运行如下命令：<pre>$ pip3 install -r requirements.txt</pre> | 开发者版 | 
| 配置 AWS CLI。 | 运行如下命令： <pre>$ aws configure</pre> | 开发者版 | 

### 配置 Python 脚本
<a name="configure-the-python-script"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 打开脚本。 | 要更改脚本的默认配置，请打开 `metrics.yaml`。 | 开发者版 | 
| 为脚本设置周期。 | 即获取时间范围。默认值为 5 分钟 (300 秒)。您可更改时间段，但请注意以下限制： [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/publish-amazon-cloudwatch-metrics-to-a-csv-file.html)<br />否则，API 操作不会返回任何数据点。 | 开发者版 | 
| 设置脚本时间。 | 此值指定您想要获取多少小时的指标。默认值为 1 小时。要检索多天指标，请提供以小时为单位的值。例如对于 2 天，指定 48。 | 开发者版 | 
| 更改脚本的统计数据值。 | （可选）全局统计值为 `Average`，在获取未分配特定统计值的指标时使用该值。该脚本支持统计值 `Maximum`、`SampleCount` 和 `Sum`。 | 开发者版 | 

### 运行 Python 脚本
<a name="run-the-python-script"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 运行 脚本。 | 使用以下命令： <pre>$ python3 cwreport.py <service> </pre><br />要查看服务值列表以及可选 `profile ` 参数和 `region ` 参数，请运行以下命令：<pre> $ python3 cwreport.py -h</pre><br />有关可选参数的更多信息，请参阅*其他信息*部分。 | 开发者版 | 

## 相关资源
<a name="publish-amazon-cloudwatch-metrics-to-a-csv-file-resources"></a>
+ [配置 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [使用亚马逊 CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)
+ [亚马逊 CloudWatch 文档](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [EC2 CloudWatch Metrics](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html#ec2-cloudwatch-metrics)
+ [AWS Lambda 指标](https://docs.aws.amazon.com/lambda/latest/operatorguide/logging-metrics.html)
+ [Amazon RDS 指标](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html#rds-cw-metrics-instance)
+ [应用程序负载均衡器指标](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html)
+ [网络负载均衡器指标](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)
+ [Amazon API Gateway 指标](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html)

## 附加信息
<a name="publish-amazon-cloudwatch-metrics-to-a-csv-file-additional"></a>

**脚本用法**

```
$ python3 cwreport.py -h
```

**语法示例**

```
python3 cwreport.py <service> <--region=Optional Region> <--profile=Optional credential profile>
```

**参数**
+ **服务（必填）** - 您要运行脚本的服务。该脚本目前支持以下服务：AWS Lambda、Amazon、A EC2 mazon RDS、应用程序负载均衡器、网络负载均衡器和 API Gateway。
+ **区域（可选）** - 要从中获取指标的 AWS 区域。默认选项是 `ap-southeast-1`。
+ **配置文件（可选）** - 要使用的 AWS CLI 命名配置文件。如果未指定此参数，则使用默认配置凭证配置文件。

**示例**
+ 要使用默认区域和`ap-southeast-1`默认配置的凭证来获取 Amazon EC2 指标，请执行以下操作：`$ python3 cwreport.py ec2`
+ 若要指定区域并获取 API Gateway 指标：`$ python3 cwreport.py apigateway --region us-east-1`
+ 要指定 AWS 配置文件并获取亚马逊 EC2 指标，请执行以下操作：`$ python3 cwreport.py ec2 --profile testprofile`
+ 要指定区域和概况以获取 Amazon EC2 指标，请执行以下操作：`$ python3 cwreport.py ec2 --region us-east-1 --profile testprofile`

## 附件
<a name="attachments-0a915a9d-2eef-4da1-8283-3cf4a115b3b2"></a>

要访问与此文档相关联的其他内容，请解压以下文件：[attachment.zip](samples/p-attach/0a915a9d-2eef-4da1-8283-3cf4a115b3b2/attachments/attachment.zip)