

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

# 範例：Count HTTP 4xx 代碼
<a name="FindCountMetric"></a>

在上述範例中，您可能想要監控 web 服務存取日誌和監控 HTTP 回應碼層級。例如，您可能想要監控所有 HTTP 400 層級錯誤。不過，您可能不會想要為每個傳回程式碼指定新指標篩選條件。

以下範例示範如何建立指標，其中包含使用從 [範例：Count HTTP 404 代碼](Counting404Responses.md) 範例之 Apache 存取日誌格式來自存取日誌的所有 400 層級 HTTP 程式碼回應。

**使用 CloudWatch 主控台建立指標篩選條件**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Log groups** (日誌群組)。

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** (指標詳細資訊) 下的 **Metric Namespace** (指標命名空間) 中，輸入 **MyNameSpace**。

1. 針對 **Metric name** (指標名稱)，輸入 **HTTP4xxErrors**。

1. 針對 **Metric value** (指標值)，輸入 1。這會指定針對每個包含「4xx 錯誤」的日誌事件以 1 的方式遞增計數。

1. 針對 **Default value** (預設值)，輸入 0，然後選擇 **Next** (下一步)。

1. 選擇 **Create metric filter (建立指標篩選條件)**。

**使用 建立指標篩選條件 AWS 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
```