

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á.

# Criar métricas de eventos de log usando filtros
<a name="MonitoringLogData"></a>

Você pode pesquisar e filtrar os dados de registro que chegam ao CloudWatch Logs criando um ou mais *filtros de métrica*. Os filtros de métricas definem os termos e padrões a serem procurados nos dados de registro à medida que são enviados para o CloudWatch Logs. CloudWatch O Logs usa esses filtros métricos para transformar dados de registro em CloudWatch métricas numéricas que você pode representar graficamente ou ativar um alarme.

Ao criar uma métrica de um filtro de log, você também pode atribuir dimensões e uma unidade à métrica. Se você especificar uma unidade, certifique-se de especificar a correta ao criar o filtro. Alterar a unidade do filtro posteriormente não terá efeito.

Se você configurou AWS Organizations e está trabalhando com contas de membros, pode usar a centralização de registros para coletar dados de log das contas de origem em uma conta de monitoramento central. 

Ao trabalhar com grupos de logs centralizados, você pode usar essas dimensões de campos do sistema ao criar filtros métricos.
+ `@aws.account`- Essa dimensão representa o ID da AWS conta da qual o evento de registro se originou.
+ `@aws.region`- Essa dimensão representa a AWS região em que o evento de log foi gerado. 

Essas dimensões ajudam a identificar a origem dos dados de log, permitindo uma filtragem e análise mais granulares das métricas derivadas de logs centralizados. Para obter mais informações, consulte [Centralização de logs entre contas e regiões](CloudWatchLogs_Centralization.md).

O padrão de filtro será aplicado às versões transformadas dos eventos de logs caso um grupo de logs com uma assinatura utilizar a transformação de log. Para obter mais informações, consulte [Transformar logs durante a ingestão](CloudWatch-Logs-Transformation.md).

**nota**  
Os filtros de métrica só são compatíveis com grupos de logs da classe de logs Padrão. Para obter mais informações sobre classes de logs, consulte [Classes de logs](CloudWatch_Logs_Log_Classes.md).

Você pode usar qualquer tipo de CloudWatch estatística, incluindo estatísticas percentuais, ao visualizar essas métricas ou definir alarmes.

**nota**  
As estatísticas de percentual serão compatíveis com uma métrica somente se nenhum dos valores da métrica for negativo. Se você configurar o filtro de métrica para que ele possa relatar números negativos, as estatísticas de percentual não estarão disponíveis para essa métrica quando ela tiver números negativos como valores. Para obter mais informações, consulte [Percentuais](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Percentiles).

Os filtros não funcionam de forma retroativa nos dados. Eles só publicam os pontos de dados de métrica para eventos que ocorrem após a criação do filtro. Ao testar um padrão de filtro, a visualização dos **Resultados do filtro** mostra até as primeiras 50 linhas de log correspondentes para fins de validação. Se o timestamp nos resultados filtrados for anterior ao horário de criação da métrica, nenhum log será exibido.

**Topics**
+ [Conceitos](#search-filter-concepts)
+ [Sintaxe de padrões de filtros para filtros de métricas](FilterAndPatternSyntaxForMetricFilters.md)
+ [Criar filtros de métrica](MonitoringPolicyExamples.md)
+ [Listagem de filtros de métrica](ListingMetricFilters.md)
+ [Excluir um filtro de métrica](DeletingMetricFilter.md)

## Conceitos
<a name="search-filter-concepts"></a>

Cada filtro de métrica é composto dos seguintes elementos-chave:

**valor padrão**  
O valor indicado para o filtro de métrica durante um período em que logs são ingeridos, mas não se encontram logs correspondentes. Ao definir esse valor como 0, você garante que os dados sejam relatados durante cada período, impedindo métricas irregulares em períodos sem dados correspondentes. Se nenhum log for ingerido durante um período de um minuto, nenhum valor será relatado.  
Se você atribuir dimensões a uma métrica criada por um filtro de métrica, não será possível atribuir um valor padrão a essa métrica.

**dimensões**  
Dimensões são os pares chave-valor que definem melhor uma métrica. Também é possível atribuir dimensões à métrica criada de um filtro de métrica. Como as dimensões fazem parte do identificador exclusivo de uma métrica, sempre que um name/value par exclusivo é extraído dos seus registros, você cria uma nova variação dessa métrica.

**padrão de filtro**  
Uma descrição simbólica de como CloudWatch os registros devem interpretar os dados em cada evento de registro. Por exemplo, uma entrada de log pode conter time stamps, endereços IP, sequências de caracteres, etc. Você pode usar o padrão para especificar o que procurar no arquivo de log.

**metric name (nome da métrica)**  
O nome da CloudWatch métrica na qual as informações de registro monitoradas devem ser publicadas. Por exemplo, você pode publicar em uma métrica chamada ErrorCount.

**namespace de métrica**  
O namespace de destino da nova CloudWatch métrica.

**valor da métrica**  
O valor numérico para publicar a métrica cada vez que um log correspondente for encontrado. Por exemplo, se você contabilizar as ocorrências de um determinado termo, como "Erro", o valor será "1" para cada ocorrência. Se você estiver contando os bytes transferidos, poderá incrementar pelo número real de bytes encontrado no evento de log.

# Sintaxe de padrões de filtros para filtros de métricas
<a name="FilterAndPatternSyntaxForMetricFilters"></a>

**nota**  
**Como os filtros métricos diferem das consultas do CloudWatch Logs Insights**  
Os filtros de métrica diferem das consultas do CloudWatch Logs Insights porque um valor numérico especificado é adicionado a um filtro de métrica sempre que um registro correspondente é encontrado. Para obter mais informações, consulte [Configurando valores métricos para um filtro de métrica](#changing-default-increment-value).  
Para obter informações sobre como consultar seus grupos de CloudWatch logs com a linguagem de consulta Amazon Logs Insights, consulte[CloudWatch Sintaxe de consulta de linguagem do Logs Insights](CWL_QuerySyntax.md).  
**Exemplos genéricos de padrões de filtros**  
Para obter mais informações sobre a sintaxe de padrões de filtros genéricos aplicável a filtros de métricas, bem como [filtros de assinatura](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html) e [filtros de eventos de log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SearchDataFilterPattern.html), consulte [Sintaxe de padrões de filtros para filtros de métricas, filtros de assinatura e filtros de eventos de log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html), que inclui os seguintes exemplos:  
Sintaxe de expressões regulares (regex) compatíveis
Como fazer a correspondência de termos em eventos de log não estruturados
Correspondência de termos em eventos de log JSON
Como fazer a correspondência de termos em eventos de log delimitados por espaços

*Os filtros de métricas* permitem pesquisar e filtrar dados de registro que chegam aos CloudWatch registros, extrair observações métricas dos dados de registro filtrados e transformar os pontos de dados em uma métrica de CloudWatch registros. Você define os termos e padrões a serem procurados nos dados de registro à medida que são enviados para o CloudWatch Logs. Filtros de métrica são atribuídos a grupos de logs, e todos os filtros atribuídas a um grupo de logs são aplicados a seus streams de log.

Quando um filtro de métrica corresponde a um termo, ele incrementa a contagem da métrica em um valor numérico especificado. Por exemplo, você pode criar um filtro de métrica que conte a ocorrência da palavra ***ERRO*** em seus eventos de log.

É possível atribuir unidades de medida e dimensões a métricas. Por exemplo, se você criar um filtro de métrica que conte as vezes que a palavra ***ERROR*** ocorre em seus eventos de logs, poderá especificar uma dimensão chamada `ErrorCode` para mostrar o número total de eventos de logs que contenham a palavra ***ERROR*** e filtrar os dados por códigos de erro relatados.

**dica**  
Ao atribuir uma unidade de medida a uma métrica, certifique-se de especificar a correta. Se você alterar a unidade depois, sua alteração pode não entrar em vigor. Para obter a lista completa das unidades que oferecem CloudWatch suporte, consulte [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)a Amazon CloudWatch API Reference.

**Topics**
+ [Configurando valores métricos para um filtro de métrica](#changing-default-increment-value)
+ [Publicar dimensões com métricas de valores em eventos de log JSON ou delimitados por espaços](#logs-metric-filters-dimensions)
+ [Usando valores em eventos de log para incrementar o valor de uma métrica](#publishing-values-found-in-logs)

## Configurando valores métricos para um filtro de métrica
<a name="changing-default-increment-value"></a>

Ao criar um filtro de métrica, você define seu padrão de filtro e especifica o valor da métrica e o valor padrão. Você pode definir valores de métrica para números, identificadores nomeados ou identificadores numéricos. Se você não especificar um valor padrão, CloudWatch não reportará dados quando seu filtro de métricas não encontrar uma correspondência. Recomendamos que você especifique um valor padrão, mesmo que o valor seja 0. Definir um valor padrão ajuda a CloudWatch relatar dados com mais precisão e CloudWatch evita a agregação de métricas irregulares. CloudWatch agrega e relata valores métricos a cada minuto.

 Quando o filtro de métrica encontra uma correspondência em seus eventos de log, ele incrementa a contagem da métrica de acordo com o valor da métrica. Se seu filtro de métricas não encontrar uma correspondência, CloudWatch informa o valor padrão da métrica. Por exemplo, seu grupo de logs publica dois registros a cada minuto, o valor de métrica é 1 e o valor padrão é 0. Se o filtro de métrica encontrar correspondências nos dois registros de log no primeiro minuto, o valor de métrica para aquele minuto será 2. Se o filtro de métrica não encontrar correspondências em nenhum dos dois registros durante o segundo minuto, o valor padrão para aquele minuto será 0. Se você atribuir dimensões a métricas geradas por filtros de métrica, não será possível especificar valores padrão para essas métricas.

Você também pode configurar um filtro de métrica para incrementar uma métrica com um valor extraído de um evento de log, em vez de um valor estático. Para obter mais informações, consulte [Usando valores em eventos de log para incrementar o valor de uma métrica](#publishing-values-found-in-logs).

## Publicar dimensões com métricas de valores em eventos de log JSON ou delimitados por espaços
<a name="logs-metric-filters-dimensions"></a>

Você pode usar o CloudWatch console ou a AWS CLI para criar filtros métricos que publicam dimensões com métricas geradas por JSON e eventos de log delimitados por espaço. As dimensões são pares de name/value valores e estão disponíveis somente para padrões de filtro JSON e delimitados por espaço. Você pode criar filtros de métrica JSON e delimitados por espaço com até três dimensões. Para obter mais informações sobre dimensões e informações sobre como atribuir dimensões a métricas, consulte as seguintes seções:
+ [Dimensões](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension) no *guia do CloudWatch usuário da Amazon*
+ [Exemplo: extraia campos de um log do Apache e atribua dimensões](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/ExtractBytesExample.html) no Guia do *usuário do Amazon CloudWatch Logs*

**Importante**  
As dimensões contêm valores que coletam cobranças iguais às métricas personalizadas. Para evitar cobranças inesperadas, não especifique campos de alta cardinalidade, por exemplo, `IPAddress` ou `requestID`, como dimensões.  
Se você extrair métricas de eventos de log, você será cobrado por métricas personalizadas. Para evitar que você colete altas cobranças acidentais, a Amazon pode desativar seu filtro métrico se ele gerar 1000 name/value pares diferentes para dimensões especificadas durante um determinado período de tempo.   
Você pode criar alarmes de faturamento que o notificam sobre suas cobranças estimadas. Para mais informações, consulte [ Criar um alarme de faturamento para monitorar suas cobranças estimadas da AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).

### Publicar dimensões com métricas de eventos de log JSON
<a name="logs-metric-filters-JSON"></a>

Os exemplos a seguir contêm trechos de código que descrevem como especificar dimensões em um filtro de métrica JSON.

------
#### [ Example: JSON log event ]

```
{
  "eventType": "UpdateTrail",
  "sourceIPAddress": "111.111.111.111",
  "arrayKey": [
        "value",
        "another value"
  ],
  "objectList": [
       {"name": "a",
         "id": 1
       },
       {"name": "b",
         "id": 2
       }
  ]
  
}
```

**nota**  
Se você testar o filtro de métrica de exemplo com o exemplo de evento de log JSON, deverá inserir o exemplo de log JSON em uma única linha.

------
#### [ Example: Metric filter ]

O filtro de métrica incrementa a métrica sempre que um evento de log JSON contiver as propriedades `eventType` e `"sourceIPAddress"`.

```
{ $.eventType = "*" && $.sourceIPAddress != 123.123.* }
```

Ao criar um filtro de métrica JSON, é possível especificar qualquer uma das propriedades no filtro de métrica como dimensão. Por exemplo, para definir `eventType` como uma dimensão, use o seguinte:

```
"eventType" : $.eventType
```

A métrica de exemplo contém uma dimensão nomeada `"eventType"`, e o valor da dimensão no evento de log de exemplo é `"UpdateTrail"`.

------

### Publicar dimensões com métricas de eventos de log delimitados por espaços
<a name="logs-metric-filters-dimensions-space-delimited"></a>

Os exemplos a seguir contêm trechos de código que descrevem como especificar dimensões em um filtro de métrica delimitado por espaço.

------
#### [ Example: Space-delimited log event ]

```
                                
127.0.0.1 Prod frank [10/Oct/2000:13:25:15 -0700] "GET /index.html HTTP/1.0" 404 1534
```

------
#### [ Example: Metric filter ]

```
                                
[ip, server, username, timestamp, request, status_code, bytes > 1000]
```

O filtro de métrica incrementa a métrica quando um evento de log delimitado por espaço inclui qualquer um dos campos especificados no filtro. Por exemplo, o filtro de métrica encontra os seguintes campos e valores no exemplo de evento de log delimitado por espaço.

```
{
   "$bytes": "1534", 
   "$status_code": "404", 

   "$request": "GET /index.html HTTP/1.0", 
   "$timestamp": "10/Oct/2000:13:25:15 -0700", 
   "$username": "frank",
   "$server": "Prod", 
   "$ip": "127.0.0.1"
}
```

Ao criar um filtro de métrica delimitado por espaço, é possível especificar qualquer um dos campos no filtro de métrica como uma dimensão. Por exemplo, para definir `server` como uma dimensão, use o seguinte:

```
"server" : $server
```

O filtro de métrica de exemplo contém uma dimensão nomeada `server`, e o valor da dimensão no evento de log de exemplo é `"Prod"`.

------
#### [ Example: Match terms with AND (&&) and OR (\$1\$1) ]

Você pode usar os operadores lógicos AND ("&&") e OR ("\$1\$1") para criar filtros de métrica delimitados por espaço que contenham condições. O filtro de métrica a seguir retorna eventos de log em que a primeira palavra nos eventos é ERROR ou qualquer string que contenha WARN.

```
[w1=ERROR || w1=%WARN%, w2]
```

------

## Usando valores em eventos de log para incrementar o valor de uma métrica
<a name="publishing-values-found-in-logs"></a>

Você pode criar filtros de métrica que publicam valores numéricos encontrados em eventos de log. O procedimento nesta seção usa o seguinte exemplo de filtro de métrica para mostrar como você pode publicar um valor numérico em um evento de log JSON em uma métrica.

```
{ $.latency = * } metricValue: $.latency
```

**Criar um filtro de métrica que publique um valor em um evento de log**

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 **Logs** e, em seguida, escolha **Grupos de log**.

1. Selecione ou crie um grupo de logs.

   Para obter informações sobre como criar um grupo de registros, consulte [Criar um grupo de CloudWatch registros em Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) no *Guia do usuário do Amazon CloudWatch Logs*.

1. Escolha **Actions** (Ações) e **Create metric filter** (Criar filtro de métrica).

1. Em **Padrão de filtro**, digite **\$1 \$1.latency = \$1 \$1** e escolha **Próximo**.

1. Em **Nome da métrica**, insira **myMetric**.

1. Em **Valor da métrica**, insira **\$1.latency**.

1. (Opcional) Em **Valor padrão**, insira **0** e escolha **Próximo**.

   Recomendamos que você especifique um valor padrão, mesmo que o valor seja 0. Definir um valor padrão ajuda a CloudWatch relatar dados com mais precisão e CloudWatch evita a agregação de métricas irregulares. CloudWatch agrega e relata valores métricos a cada minuto.

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

O filtro de métrica de exemplo corresponde ao termo `"latency"` no exemplo de evento de log JSON e publica um valor numérico de 50 na métrica **MyMetric**.

```
{
"latency": 50,
"requestType": "GET"
}
```

# Criar filtros de métrica
<a name="MonitoringPolicyExamples"></a>

Os procedimentos e exemplos a seguir mostram como criar filtros de métrica.

**Topics**
+ [Criar um filtro de métrica para um grupo de logs](CreateMetricFilterProcedure.md)
+ [Exemplo: contar eventos de log](CountingLogEventsExample.md)
+ [Exemplo: contar as ocorrências de um termo](CountOccurrencesExample.md)
+ [Exemplo: contar códigos HTTP 404](Counting404Responses.md)
+ [Exemplo: contar códigos HTTP 4xx](FindCountMetric.md)
+ [Exemplo: Extrair campos de um log Apache e atribuir dimensões](ExtractBytesExample.md)

# Criar um filtro de métrica para um grupo de logs
<a name="CreateMetricFilterProcedure"></a>

Para criar um filtro de métrica para um grupo de logs, siga estas etapas. A métrica não será visível até que haja alguns pontos de dados para ela.

**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 **Logs** e, em seguida, escolha **Grupos de logs**. 

1.  Escolha o nome do grupo de logs. 

1.  Escolha `Actions` e **Create metric filter** (Criar filtro de métrica). 

1.  Em **Padrão de filtro**, insira o padrão de filtro. Para obter mais informações, consulte [Sintaxe de padrões de filtros para filtros de métricas, filtros de assinatura, filtros de eventos de log e Live Tail.](FilterAndPatternSyntax.md). 

1.  (Opcional) Se estiver usando grupos de logs centralizados, em **Critérios de seleção de filtros**, você poderá especificar filtros com base na conta de origem (`@aws.account`), na região de origem (`@aws.region`) ou em ambas as condições.

1.  (Opcional) Para testar seu padrão de filtro, em **Test Pattern** (Testar padrão), insira um ou mais eventos de logs para testar o padrão. Cada evento de logs deve ser formatado em uma linha. Quebras de linha são usadas para separar eventos de logs na caixa **Log event messages** (Mensagens de log de eventos). 

1.  Escolha **Next** (Próximo) e digite um nome para o filtro de métrica. 

1.  Em **Detalhes da métrica**, em **Namespace métrica**, insira um nome para o CloudWatch namespace em que a métrica será publicada. Se esse namespace ainda não existir, certifique-se de que a opção **Create new** (Criar novo) esteja selecionada. 

1.  Em **Metric name** (Nome da métrica), insira um nome para a nova métrica. 

1.  Em **Metric value** (Valor da métrica), se o filtro de métrica estiver contando ocorrências das palavras-chave no filtro, digite 1. Isso incrementa a métrica em 1 para cada evento de log que contém uma das palavras-chave. 

    Se preferir, insira um token, como **\$1size**. Isso incrementa a métrica pelo valor do número no campo `size` para cada evento de log que contém um campo `size`. 

1.  (Opcional) Em **Unit** (Unidade), selecione uma unidade para atribuir à métrica. Se você não especificar uma unidade, a unidade será definida como `None`. 

1.  (Opcional) Insira os nomes e tokens de até três dimensões para a métrica. Se você atribuir dimensões a métricas criadas por filtros de métrica, não poderá atribuir valores padrões para essas métricas. 
**nota**  
 As dimensões são compatíveis apenas com filtros de métrica JSON ou delimitados por espaço. 

1.  Escolha **Criar filtro de métrica**. Você pode encontrar o filtro de métrica que criou no painel de navegação. Escolha **Logs** e depois escolha **Log groups** (Grupo de logs). Escolha o nome do grupo de logs para o qual você criou o filtro de métrica e, em seguida, selecione a guia **Metric filters** (Filtros de métrica). 

# Exemplo: contar eventos de log
<a name="CountingLogEventsExample"></a>

O tipo mais simples de monitoramento de eventos de log é contar o número de eventos de log ocorridos. É possível fazer isso para manter uma contagem de todos os eventos, para criar um monitor no estilo de "pulsação" ou apenas para praticar a criação de filtros de métrica.

No exemplo de CLI a seguir, um filtro de métrica chamado MyAppAccessCount é aplicado ao grupo de registros MyApp /access.log para criar a métrica EventCount no CloudWatch namespace. MyNamespace O filtro é configurado para fazer a correspondência de qualquer conteúdo de eventos de log e incrementar a métrica por "1".

**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 de um grupo de logs.

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

1. Deixe **Padrão de filtro** e **Selecionar dados de log para testar** em branco.

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

1. Em **Detalhes da métrica**, em **Namespace da métrica**, digite **MyNameSpace**.

1. Para **Metric Name (Nome da métrica)**, digite **MyAppEventCount**.

1. Confirme se o **Valor da métrica** é 1. Isso especifica que a contagem é aumentada em 1 para cada evento de log.

1. Para **Valor padrão**, insira 0 e escolha **Próximo**. Especificar um valor padrão garante que os dados são relatados mesmo durante períodos em que não ocorrem eventos de log. Isso evita métricas irregulares nas quais os dados, às vezes, não existem.

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

**Para criar um 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 EventCount \
  --filter-pattern " " \
  --metric-transformations \
  metricName=MyAppEventCount,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

Você pode testar essa nova política postando quaisquer dados de eventos. Você deve ver os pontos de dados publicados na métrica MyAppAccessEventCount.

**Para publicar dados do evento usando o AWS CLI**  
Em um prompt de comando, execute o seguinte comando:

```
aws logs put-log-events \
  --log-group-name MyApp/access.log --log-stream-name TestStream1 \
  --log-events \
    timestamp=1394793518000,message="Test event 1" \
    timestamp=1394793518000,message="Test event 2" \
    timestamp=1394793528000,message="This message also contains an Error"
```

# Exemplo: contar as ocorrências de um termo
<a name="CountOccurrencesExample"></a>

Os eventos de log frequentemente incluem mensagens importantes que você deseja contar, talvez sobre o êxito ou a falha de operações. Por exemplo, poderá ocorrer um erro e ele ser registrado em um arquivo de log se ocorrer uma falha em uma determinada operação. É possível monitorar essas entradas para entender a tendência dos erros.

No exemplo abaixo, um filtro de métrica é criado para monitorar o termo Erro. A política foi criada e adicionada ao grupo de registros **MyApp/message.log**. CloudWatch O Logs publica um ponto de dados ErrorCount na métrica CloudWatch personalizada no namespace **MyApp/message.log** com o valor “1" para cada evento que contém Error. Se não houver um evento com a palavra Erro, será publicado um valor de 0. Ao representar graficamente esses dados no CloudWatch console, certifique-se de usar a estatística da soma.

Depois de criar um filtro de métrica, você pode ver a métrica no CloudWatch console. Ao selecionar a métrica a ser exibida, selecione o namespace da métrica que corresponde ao nome do grupo de logs. Para obter mais informações, consulte [Visualizar métricas disponíveis](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html).

**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.

1. Escolha **Ações**, **Criar filtro de métrica**.

1. Em **Padrão de filtro**, insira **Error**.
**nota**  
Todas as entradas em **Filtrar padrão** fazem distinção de maiúsculas e minúsculas.

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, na página **Atribuir métrica**, em **Nome do filtro**, digite **MyAppErrorCount**.

1. Em **Detalhes da métrica**, em **Namespace da métrica**, digite **MyNameSpace**.

1. Para **Metric Name (Nome da métrica)**, digite **ErrorCount**.

1. Confirme se o **Valor da métrica** é 1. Isso especifica que a contagem é aumentada em 1 para cada evento de log que contém "Erro".

1. Para **Valor padrão**, digite 0 e escolha **Próximo**. 

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

**Para criar um 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/message.log \
  --filter-name MyAppErrorCount \
  --filter-pattern 'Error' \
  --metric-transformations \
      metricName=ErrorCount,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

Você pode testar essa nova política postando eventos que contenham a palavra "Erro" na mensagem.

**Para publicar eventos usando o AWS CLI**  
Em um prompt de comando, execute o seguinte comando da . Os padrões fazem distinções de maiúsculas e minúsculas.

```
aws logs put-log-events \
  --log-group-name MyApp/access.log --log-stream-name TestStream1 \
  --log-events \
    timestamp=1394793518000,message="This message contains an Error" \
    timestamp=1394793528000,message="This message also contains an Error"
```

# Exemplo: contar códigos HTTP 404
<a name="Counting404Responses"></a>

Usando o CloudWatch Logs, você pode monitorar quantas vezes seus servidores Apache retornam uma resposta HTTP 404, que é o código de resposta para a página não encontrada. Você pode monitorar isso para entender a frequência com que os visitantes de seu site não encontram o recurso que procuram. Suponha que seus registros de log estejam estruturados para incluir as seguintes informações para cada evento de log (visita ao site):
+ Endereço IP do solicitante
+ Identidade RFC 1413
+ Nome de usuário
+ Timestamp
+ Método de solicitação com o recurso solicitado e o protocolo
+ Código de resposta HTTP para a solicitação
+ Bytes transferidos na solicitação

Um exemplo disso pode ter a seguinte aparência:

```
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326
```

Você pode especificar uma regra que tente fazer a correspondência de eventos dessa estrutura para erros HTTP 404, como mostrado no exemplo a seguir:

**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 a `Actions` **Criar filtro de métrica**.

1. Em **Padrão de filtro**, digite **[IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes]**.

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 **Avançar** e, em **Nome do filtro**, digite **HTTP404Erros**.

1. Em **Detalhes da métrica**, para **Namespace da métrica**, insira **MyNameSpace**.

1. Em **Nome da métrica**, insira **ApacheNotFoundErrorCount**.

1. Confirme se o **Valor da métrica** é 1. Isso especifica que a contagem é aumentada em 1 para cada evento 404 Error.

1. Para **Valor padrão**, insira 0 e escolha **Próximo**.

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

**Para criar um 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 HTTP404Errors \
  --filter-pattern '[ip, id, user, timestamp, request, status_code=404, size]' \
  --metric-transformations \
      metricName=ApacheNotFoundErrorCount,metricNamespace=MyNamespace,metricValue=1
```

Neste exemplo, os caracteres literais, como os colchetes à direita e à esquerda, aspas duplas e string de caracteres 404 foram usados. O padrão precisa fazer a correspondência com toda a mensagem de evento de log para o evento de log a ser considerado para monitoramento.

Você pode verificar a criação do filtro de métrica usando o comando **describe-metric-filters**. Você deve ver uma saída semelhante a:

```
aws logs describe-metric-filters --log-group-name MyApp/access.log

{
    "metricFilters": [
        {
            "filterName": "HTTP404Errors", 
            "metricTransformations": [
                {
                    "metricValue": "1", 
                    "metricNamespace": "MyNamespace", 
                    "metricName": "ApacheNotFoundErrorCount"
                }
            ], 
            "creationTime": 1399277571078, 
            "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]"
        }
    ]
}
```

Agora você pode publicar alguns eventos manualmente:

```
aws logs put-log-events \
--log-group-name MyApp/access.log --log-stream-name hostname \
--log-events \
timestamp=1394793518000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 404 2326" \
timestamp=1394793528000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2326"
```

Logo após colocar esses exemplos de eventos de log, você pode recuperar a métrica nomeada no CloudWatch console como ApacheNotFoundErrorCount.

# Exemplo: contar códigos HTTP 4xx
<a name="FindCountMetric"></a>

Como no exemplo anterior, você pode monitorar seus logs de acesso do serviço da Web e monitorar os níveis de código de resposta HTTP. Por exemplo, você pode monitorar todos os erros no nível de HTTP 400 erros. No entanto, é possível especificar um novo filtro de métrica para cada código de retorno.

O exemplo a seguir demonstra como criar uma métrica que inclua todas as 400 respostas de código HTTP a partir de um log de acesso usando o formato de log de acesso do Apache do exemplo [Exemplo: contar códigos HTTP 404](Counting404Responses.md).

**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=4\$1, 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 **HTTP4xxErrors**.

1. Em **Detalhes da métrica**, em **Namespace da métrica**, insira **MyNameSpace**.

1. Em **Nome da métrica**, insira **HTTP4xxErros**.

1. Em **Metric value** (Valor da métrica), digite 1. Isso especifica que a contagem é aumentada em 1 para cada log que contém um erro 4xx.

1. Em **Valor padrão**, insira 0 e escolha **Próximo**. 

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

**Para criar um 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 HTTP4xxErrors \
  --filter-pattern '[ip, id, user, timestamp, request, status_code=4*, size]' \
  --metric-transformations \
  metricName=HTTP4xxErrors,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

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

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

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

# Listagem de filtros de métrica
<a name="ListingMetricFilters"></a>

Você pode listar todos os filtros de métrica em um grupo de logs.

**Para listar filtros métricos 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. No painel de conteúdo, na lista de grupos de log, na coluna **Filtros de métrica**, escolha o número de filtros.

   A tela **Grupos de logs > Filtros para** lista todos os filtros de métrica associados ao grupo de logs.

**Para listar filtros métricos usando o AWS CLI**  
Em um prompt de comando, execute o seguinte comando:

```
aws logs describe-metric-filters --log-group-name MyApp/access.log
```

A seguir está um exemplo de saída:

```
{
    "metricFilters": [
        {
            "filterName": "HTTP404Errors", 
            "metricTransformations": [
                {
                    "metricValue": "1", 
                    "metricNamespace": "MyNamespace", 
                    "metricName": "ApacheNotFoundErrorCount"
                }
            ], 
            "creationTime": 1399277571078, 
            "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]"
        }
    ]
}
```

# Excluir um filtro de métrica
<a name="DeletingMetricFilter"></a>

Uma política é identificada por seu nome e o grupo de logs ao qual ela pertence.

**Para excluir 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. No painel de conteúdo, na lista de grupos de log, na coluna **Metric Filter** (Filtros de métrica), escolha o número de filtros de métrica para o grupo de logs.

1. Em **Metric Filters** (Filtros de métrica), selecione a caixa de seleção à direita do nome do filtro que deseja excluir. Escolha **Excluir**.

1. Quando a confirmação for solicitada, escolha **Excluir**.

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

```
aws logs delete-metric-filter --log-group-name MyApp/access.log \
 --filter-name MyFilterName
```