

# 方案：将指标发布到 CloudWatch
<a name="PublishMetrics"></a>

在此方案中，使用 AWS Command Line Interface (AWS CLI) 为名为 *GetStarted* 的假想应用程序发布单个指标。如果您尚未安装和配置 AWS CLI，请参阅 *AWS Command Line Interface 用户指南*中的[开始设置 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html)。

**Topics**
+ [步骤 1：定义数据配置](#define-data-domain)
+ [步骤 2：将指标添加到 CloudWatch](#add-metrics-to-scenario)
+ [步骤 3：获取 CloudWatch 中的统计数据](#GetStatistics)
+ [步骤 4：使用控制台查看图表](#ViewGraphs)

## 步骤 1：定义数据配置
<a name="define-data-domain"></a>

在此场景中，您将发布跟踪该应用程序的请求延迟的数据点。为您的指标和命名空间选择您能够理解的名称。对本例而言，可以将指标命名为 *RequestLatency* 并将所有的数据点发布到 *GetStarted* 命名空间。

您将会发布共表示三小时延迟数据的几个数据点。原始数据由分布在三小时中的 15 个请求延迟读数构成。每个读数均以毫秒为单位：
+ 第一小时：87、51、125、235
+ 第二小时：121、113、189、65、89
+ 第三小时：100、47、133、98、100、328

您可以将数据作为单一数据点或数据点聚合集发布到 CloudWatch，聚合集称为*统计数据集*。您可以在低达一分钟的时间内将指标整合到粒度级。您可以将聚合数据点作为含四个预定义键（`Sum`、`Minimum`、`Maximum` 和 `SampleCount`）的统计数据集发布到 CloudWatch。

您将会把来自第一小时的数据点作为单一数据点发布。对于第二小时和第三小时的数据，您将会整合数据点并发布各小时的统计数据集。项值如下表所示。


| 小时 | 原始数据 | 总和 | 最小值 | 最大值 | 样本数 | 
| --- | --- | --- | --- | --- | --- | 
| `1` | `87` |  |  |  |  | 
| `1` | `51` |  |  |  |  | 
| `1` | `125` |  |  |  |  | 
| `1` | `235` |  |  |  |  | 
| `2` | `121, 113, 189, 65, 89` | `577` | `65` | `189` | `5` | 
| `3` | `100, 47, 133, 98, 100, 328` | `806` | `47` | `328` | `6` | 

## 步骤 2：将指标添加到 CloudWatch
<a name="add-metrics-to-scenario"></a>

定义数据配置后，您可以随时添加数据。

**将数据点发布到 CloudWatch**

1. 在命令提示符下，运行以下 [put-metric-data](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-data.html) 命令以添加第一个小时的数据。将示例时间戳替换为通用协调时间 (UTC) 中过去两小时的时间戳。

   ```
   aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
   --timestamp 2016-10-14T20:30:00Z --value 87 --unit Milliseconds
   aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
   --timestamp 2016-10-14T20:30:00Z --value 51 --unit Milliseconds
   aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
   --timestamp 2016-10-14T20:30:00Z --value 125 --unit Milliseconds
   aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
   --timestamp 2016-10-14T20:30:00Z --value 235 --unit Milliseconds
   ```

1. 添加第二个小时的数据，并使用比第一个小时晚一小时的时间戳。

   ```
   aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
   --timestamp 2016-10-14T21:30:00Z --statistic-values Sum=577,Minimum=65,Maximum=189,SampleCount=5 --unit Milliseconds
   ```

1. 添加第三个小时的数据，并忽略默认为当前时间的时间戳。

   ```
   aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
   --statistic-values Sum=806,Minimum=47,Maximum=328,SampleCount=6 --unit Milliseconds
   ```

## 步骤 3：获取 CloudWatch 中的统计数据
<a name="GetStatistics"></a>

您现在已向 CloudWatch 发布了指标，可以使用 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令检索基于这些指标的统计数据（如下所示）。确保指定足够久的过去 `--start-time` 和 `--end-time` 以涵盖已发布的最早时间戳。

```
aws cloudwatch get-metric-statistics --namespace GetStarted --metric-name RequestLatency --statistics Average \
--start-time 2016-10-14T00:00:00Z --end-time 2016-10-15T00:00:00Z --period 60
```

下面是示例输出：

```
{
	"Datapoints": [],
	"Label": "Request:Latency"
}
```

## 步骤 4：使用控制台查看图表
<a name="ViewGraphs"></a>

将指标发布到 CloudWatch 后，您可以使用 CloudWatch 控制台查看统计图表。

**如需在控制台中查看统计数据图表**

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

1. 在 **Navigation** 窗格中，选择 **Metrics**。

1. 在**全部指标**选项卡的搜索框中，键入 **RequestLatency** 并按 Enter。

1. 选中 **RequestLatency** 指标的复选框。上方窗格中会显示一个指标数据图表。

有关更多信息，请参阅 [绘制指标的图表](graph_metrics.md)。