

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

# Análise de padrões
<a name="CWL_AnalyzeLogData_Patterns"></a>

CloudWatch O Logs Insights usa algoritmos de aprendizado de máquina para encontrar *padrões* quando você consulta seus registros. Um padrão é uma estrutura de texto compartilhada que se repete nos campos do log. Ao visualizar os resultados de uma consulta, você pode escolher a guia **Padrões** para ver os padrões que o CloudWatch Logs encontrou com base em uma amostra dos seus resultados. Ou então, você pode acrescentar o comando `pattern` ao final da consulta para analisar os padrões em todo o conjunto de eventos de log correspondentes. 

Os padrões são úteis para analisar grandes conjuntos de logs porque um grande número de eventos de log geralmente pode ser resumido a apenas alguns padrões.

Considere o exemplo dos três eventos de log a seguir.

```
2023-01-01 19:00:01 [INFO] Calling DynamoDB to store for resource id 12342342k124-12345
2023-01-01 19:00:02 [INFO] Calling DynamoDB to store for resource id 324892398123-12345
2023-01-01 19:00:03 [INFO] Calling DynamoDB to store for resource id 3ff231242342-12345
```

No exemplo anterior, todos os três eventos de log seguem um único padrão:

```
<Time-1> [INFO] Calling DynamoDB to store for resource id <ID-2>
```

Os campos dentro de um padrão são chamados de *tokens*. Os campos que variam dentro de um padrão, como um ID de solicitação ou um timestamp, são *tokens dinâmicos*. Cada token dinâmico é representado por `<string-number>`. *string*É uma descrição do tipo de dados que o token representa. *number*Mostra onde esse token aparece no padrão, em comparação com os outros tokens dinâmicos.

Exemplos comuns de tokens dinâmicos incluem códigos de erro, registros de data e hora e solicitações. IDs Um *valor de token* representa um determinado valor de um token dinâmico. Por exemplo, se um token dinâmico representasse um código de erro HTTP, o valor de um token poderia ser `501`.

A detecção de padrões também é usada no detector de anomalias CloudWatch Logs e nos recursos de comparação. Para obter mais informações, consulte [Detecção de anomalias de log](LogsAnomalyDetection.md) e [Compare (diff) com intervalos de tempo anteriores](CWL_AnalyzeLogData_Compare.md).

## Introdução à análise de padrões
<a name="CWL_AnalyzeLogData_Patterns-GetStarted"></a>

A detecção de padrões é realizada automaticamente em qualquer consulta do CloudWatch Logs Insights. Os resultados das consultas que não incluem o comando `pattern` apresentam tanto eventos quando padrões de log.

Se você incluir o comando `pattern` em sua consulta, a análise de padrões será realizada em todo o conjunto de eventos de log correspondente. Isso fornece resultados de padrões mais exatos, mas os eventos de log brutos não são retornados quando você usa o comando `pattern`. Quando uma consulta não inclui `pattern`, os resultados de padrões são baseados nos primeiros 1.000 eventos de log retornados ou no valor limite usado na consulta. Se você incluir `pattern` na consulta, os resultados exibidos na guia **Padrões** serão extraídos de todos os eventos de log que corresponderem à consulta.

**Para começar com a análise de padrões no CloudWatch Logs Insights**

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**, **Logs Insights**.

   Na página **Logs Insights** (Insights de log), o editor de consultas contém uma consulta padrão que retorna os 20 eventos de log mais recentes.

1. Remova a linha `| limit 20` da caixa de consulta para que a consulta fique assim:

   ```
   fields @timestamp, @message, @logStream, @log
   | sort @timestamp desc
   ```

1. No menu suspenso **Selecionar grupos de logs**, escolha um ou mais grupos de logs para consultar.

1. (Opcional) Use o seletor de tempo para selecionar o período que você deseja consultar.

   Você pode escolher intervalos de 5 minutos, 30 minutos, 1 hora, 3 horas, 12 horas ou um período personalizado.

1. Escolha **Executar consulta** para iniciar a consulta.

   Quando a consulta acaba de ser executada, a guia **Logs** exibe uma tabela dos eventos de log retornados pela consulta. Acima da tabela, vem uma mensagem sobre quantos registros corresponderam à consulta, como, por exemplo, **Mostrando 10.000 dos 71.101 registros encontrados**.

1. Escolha a guia **Padrões**.

1. A tabela agora exibe os padrões encontrados na consulta. Como a consulta não incluía o comando `pattern`, essa guia só exibe os padrões descobertos entre os 10.000 eventos de log que foram mostrados na tabela na guia **Logs**.

   Para cada padrão, as seguintes informações são exibidas:
   + O **padrão**, com cada token dinâmico exibido como `<string-number>`. *string*É uma descrição do tipo de dados que o token representa. *number*Mostra onde esse token aparece no padrão, em comparação com os outros tokens dinâmicos.
   + O **número de eventos**, que é o número de vezes que o padrão apareceu nos eventos de log consultados. Escolha o cabeçalho de coluna **Número de eventos** para classificar os padrões por frequência.
   + A **Taxa de eventos**, que é a porcentagem dos eventos de log consultados que contém esse padrão. 
   + O **Tipo de gravidade**, que será um dos seguintes:
     + **ERRO** se o padrão contiver a palavra **Erro**.
     + **AVISO** **se o padrão contiver a palavra **Aviso**, mas não contiver Erro**.
     + **INFORMAÇÕES** se o padrão não contiver nem **aviso** nem **erro**.

     Escolha o cabeçalho de coluna **Informações sobre a gravidade** para classificar os padrões por gravidade.

1. Agora altere a consulta. Substitua a linha `| sort @timestamp desc` da consulta por `| pattern @message`, de modo que a consulta completa fique assim:

   ```
   fields @timestamp, @message, @logStream, @log
   | pattern @message
   ```

1. Selecione **Executar consulta**.

   Quando a consulta termina, não há resultados na guia **Logs**. Porém, a guia **Padrões** provavelmente tem um número maior de padrões listados, dependendo do número total de eventos de log que foram consultados.

1. Independentemente de ter incluído `pattern` na sua consulta, você pode inspecionar melhor os padrões que a consulta retorna. Para fazer isso, escolha o ícone na coluna **Inspecionar** para um dos padrões. 

   O painel **Inspeção de padrões** aparece e exibe o seguinte: 
   + O **padrão**. Selecione um token no padrão para analisar os valores desse token.
   + Um histograma mostrando o número de ocorrências do padrão no intervalo consultado. Isso pode ajudar a identificar tendências interessantes, como um aumento repentino na ocorrência de um padrão.
   + A guia **Exemplos de log** exibe alguns eventos de log que correspondem ao padrão selecionado.
   + A guia **Valores do token** exibe os valores do token dinâmico selecionado, se você tiver selecionado um.
**nota**  
No máximo de 10 valores de token são capturados para cada token. A contagem de tokens pode não ser precisa. CloudWatch O Logs usa um contador probabilístico para gerar a contagem de tokens, não o valor absoluto.
   + A guia **Padrões relacionados** exibe outros padrões que ocorreram com frequência quase ao mesmo tempo que o padrão que você está inspecionando. Por exemplo, se um padrão para uma mensagem `ERROR` geralmente foi acompanhado por outro evento de log marcado como `INFO` com detalhes adicionais, esse padrão será exibido aqui.

## Detalhes sobre o comando de padrão
<a name="CWL_AnalyzeLogData_Patterns-Details"></a>

Esta seção contém mais detalhes sobre o comando `pattern` e seus usos.
+ No tutorial anterior, removemos o comando `sort` quando o adicionamos `pattern` porque uma consulta não será válida se incluir um comando `pattern` após um comando `sort`. É válido ter um `pattern` antes de um `sort`.

   Para obter detalhes sobre a sintaxe de `pattern`, consulte [pattern](CWL_QuerySyntax-Pattern.md).
+ Quando você usa `pattern` em uma consulta, `@message` deve ser um dos campos selecionados no comando `pattern`.
+ Você pode incluir o comando `filter` antes de um comando `pattern` para que apenas o conjunto de eventos de log filtrado seja usado como entrada na análise de padrões.
+ Para ver os resultados de padrões para um campo específico, como um campo obtido com o comando `parse`, use `pattern @fieldname`.
+ Consultas com saídas que não são logs, como consultas com o comando `stats`, não retornam resultados de padrões.

