

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplo: Extrair campos de um log Apache e atribuir dimensões
<a name="ExtractBytesExample"></a>

Às vezes, em vez de contar, é útil usar os valores em eventos de log individuais para valores de métrica. Este exemplo mostra como criar uma regra de extração para criar uma métrica que meça os bytes transferidos por um servidor web Apache.

O exemplo também mostra como atribuir dimensões à métrica que você está criando.

**Para criar um filtro métrico usando o CloudWatch console**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Grupos de logs**.

1. Escolha o nome do grupo de logs para o servidor Apache.

1. Escolha a `Actions` **Criar filtro de métrica**.

1. Em **Padrão de filtro**, insira **[ip, id, user, timestamp, request, status\$1code, size]**.

1. (Opcional) Para testar seu padrão de filtro, em **Test Pattern** (Testar padrão), insira um ou mais eventos de log a serem usados para testar o padrão. Cada evento de log deve estar dentro de uma linha, porque as quebras de linha são usadas para separar eventos de log na caixa **Log event messages** (Mensagens do evento de log).

1. Escolha **Próximo** e, em **Nome do filtro**, digite **size**.

1. Em **Metric details** (Detalhes da métrica), em **Metric namespace** (Namespace da métrica), insira **MyNameSpace**. Como se trata de um novo namespace, verifique se a opção **Create new** (Criar novo) está selecionada.

1. Em **Metric name** (Nome da métrica), insira **BytesTransferred**

1. Em **Valor de métrica**, insira **\$1size**.

1. Em **Unit** (Unidade), selecione **Bytes**.

1. Para **Dimension Name**, digite **IP**.

1. Em **Dimension Value** (Valor da dimensão), digite **\$1ip** e escolha **Next** (Próximo).

1. Escolha **Criar filtro de métrica**.

**Para criar esse filtro métrico usando o AWS CLI**  
Em um prompt de comando, execute o seguinte comando

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

```
aws logs put-metric-filter \
--log-group-name MyApp/access.log \
--filter-name BytesTransferred \
--filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \
--metric-transformations  \
metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue='$size',unit=Bytes,dimensions='{{IP=$ip}}'
```

**nota**  
Nesse comando, use esse formato para especificar várias dimensões.  

```
aws logs put-metric-filter \
--log-group-name my-log-group-name \
--filter-name my-filter-name \
--filter-pattern 'my-filter-pattern' \
--metric-transformations  \
metricName=my-metric-name,metricNamespace=my-metric-namespace,metricValue=my-token,unit=unit,dimensions='{dimension1=$dim,dimension2=$dim2,dim3=$dim3}'
```

Você pode usar os dados a seguir em put-log-event chamadas para testar essa regra. Isso gerará duas métricas diferentes se você não removeu a regra de monitoramento no exemplo anterior.

```
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
```