

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

# 將 Amazon CloudWatch 指標發佈至 CSV 檔案
<a name="publish-amazon-cloudwatch-metrics-to-a-csv-file"></a>

*Abdullahi Olaoye，Amazon Web Services*

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

此模式使用 Python 指令碼擷取 Amazon CloudWatch 指標，並將指標資訊轉換為逗號分隔值 (CSV) 檔案，以提高可讀性。指令碼採用 AWS 服務，其指標應擷取為必要的引數。您可以將 AWS 區域和 AWS 登入資料設定檔指定為選用引數。如果您未指定這些引數，則指令碼會使用為執行指令碼的工作站設定的預設區域和設定檔。指令碼執行後，它會在相同的目錄中產生並儲存 CSV 檔案。

如需此模式提供的指令碼和相關檔案，請參閱*附件*一節。

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

**先決條件**
+ Python 3.x
+ AWS 命令列界面 (AWS CLI)

**限制**

指令碼目前支援下列 AWS 服務：
+ AWS Lambda
+ Amazon Elastic Compute Cloud (Amazon EC2)
  + 根據預設，指令碼不會收集 Amazon Elastic Block Store (Amazon EBS) 磁碟區指標。若要收集 Amazon EBS 指標，您必須修改連接的`metrics.yaml`檔案。
+ Amazon Relational Database Service (Amazon RDS)
  + 不過，指令碼不支援 Amazon Aurora。
+ Application Load Balancer
+ Network Load Balancer
+ 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>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 安裝先決條件。 | 執行以下命令：<pre>$ pip3 install -r requirements.txt</pre> | 開發人員 | 
| 設定 AWS CLI。 | 執行以下命令： <pre>$ aws configure</pre> | 開發人員 | 

### 設定 Python 指令碼
<a name="configure-the-python-script"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 開啟指令碼。 | 若要變更指令碼的預設組態，請開啟 `metrics.yaml`。 | 開發人員 | 
| 設定指令碼的期間。 | 這是要擷取的期間。預設期間為 5 分鐘 (300 秒）。您可以變更期間，但請注意下列限制： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/publish-amazon-cloudwatch-metrics-to-a-csv-file.html)否則，API 操作不會傳回任何資料點。 | 開發人員 | 
| 設定指令碼的時數。 | 此值指定您要擷取多少小時的指標。預設值為 1 小時。若要擷取多天的指標，請以小時為單位提供 值。例如，在 2 天內指定 48。 | 開發人員 | 
| 變更指令碼的統計資料值。 | （選用） 全域統計資料值為 `Average`，用於擷取未指派特定統計資料值的指標。指令碼支援統計資料值 `Maximum`、 `SampleCount`和 `Sum`。 | 開發人員 | 

### 執行 Python 指令碼
<a name="run-the-python-script"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 執行指令碼。 | 使用下列命令： <pre>$ python3 cwreport.py <service> </pre>若要查看服務值和選用 `region `和 `profile `參數的清單，請執行下列命令：<pre> $ python3 cwreport.py -h</pre>如需選用參數的詳細資訊，請參閱*其他資訊*一節。 | 開發人員 | 

## 相關資源
<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)
+ [使用 Amazon CloudWatch 指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)
+ [Amazon CloudWatch 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [EC2 CloudWatch 指標](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)
+ [Application Load Balancer 指標](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html)
+ [Network Load Balancer 指標](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 EC2、Amazon RDS、Application Load Balancer、Network Load Balancer 和 API Gateway。
+ **region （選用）** ‒ 要從中擷取指標的 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 設定檔並擷取 Amazon 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)