

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

# 示例：对 HTTP 4xx 代码进行计数
<a name="FindCountMetric"></a>

如前面的示例一样，您可能需要监控 Web 服务访问日志和监控 HTTP 响应代码级别。例如，您可能需要监控所有 HTTP 400 级的错误。但是，您可能不想为每一个返回代码指定新的指标筛选条件。

以下示例演示如何创建包括访问日志中所有 400 级别 HTTP 代码响应的指标，该访问日志使用 [示例：对 HTTP 404 代码进行计数](Counting404Responses.md) 示例中的 Apache 访问日志格式。

**使用 CloudWatch 控制台创建指标筛选器**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/)。

1. 在导航窗格中，选择**日志组**。

1. 选择 Apache 服务器的日志组的名称。

1. 选择 `Actions`、**Create metric filter（创建指标筛选条件）**。

1. 对于 **Filter pattern（筛选条件模式）**，输入 **[ip, id, user, timestamp, request, status\_code=4\*, size]**。

1. （可选）要测试您的筛选条件模式，请在 **Test Pattern（测试模式）**下，输入一个或多个用于测试模式的日志事件。每个日志事件必须位于一行内，因为换行符用于在 **Log event messages（日志事件消息）**框中分隔日志事件。

1. 选择 **Next（下一步）**，然后对于 **Filter name（筛选条件名称）**，键入 **HTTP4xxErrors**。

1. 在 **Metric Details（指标详细信息）**下，对于 **Metric namespace（指标命名空间）**，输入 **MyNameSpace**。

1. 在**指标名称**中，输入**HTTP4xx错误**。

1. 对于 **Metric Value（指标值）**，输入 1。这指定对于每个包含 4xx 错误的日志事件，计数以 1 累加。

1. 对于 **Default value（默认值）**，输入 0，然后选择 **Next（下一步）**。

1. 选择 **Create metric filter（创建指标筛选条件）**。

**要使用创建指标筛选器 Amazon CLI**  
在命令提示符处，运行以下命令：

```
aws logs put-metric-filter \
  --log-group-name MyApp/access.log \
  --filter-name HTTP4xxErrors \
  --filter-pattern '[ip, id, user, timestamp, request, status_code=4*, size]' \
  --metric-transformations \
  metricName=HTTP4xxErrors,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

您可以在 put-event 调用中使用以下数据来测试此规则。如果不删除前例中的监控规则，则会生成两个不同的指标。

```
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3
```