

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Analyse de modèles
<a name="CWL_AnalyzeLogData_Patterns"></a>

CloudWatch Logs Insights utilise des algorithmes d'apprentissage automatique pour identifier *des modèles* lorsque vous interrogez vos journaux. Un modèle est une structure de texte partagée récurrente dans vos champs de journal. Lorsque vous consultez les résultats d'une requête, vous pouvez choisir l'onglet **Modèles** pour voir les modèles trouvés par CloudWatch Logs sur la base d'un échantillon de vos résultats. Vous pouvez également ajouter la `pattern` commande à votre requête pour analyser les modèles de l'ensemble des événements du journal correspondants. 

Les modèles sont utiles pour analyser de grands ensembles de journaux, car un grand nombre d'événements de journal peuvent souvent être compressés en plusieurs modèles.

Examinez l'exemple suivant de trois événements de journal.

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

Dans l'exemple précédent, les trois événements du journal suivent le même schéma :

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

Les champs d'un modèle sont appelés *jetons*. Les champs qui varient au sein d'un modèle, tels qu'un ID de demande ou un horodatage, sont des jetons *dynamiques*. Chaque jeton dynamique est représenté par`<string-number>`. *string*Il s'agit d'une description du type de données que le jeton représente. *number*Indique où ce jeton apparaît dans le modèle, par rapport aux autres jetons dynamiques.

Les exemples courants de jetons dynamiques incluent les codes d'erreur, les horodatages et les demandes. IDs Une *valeur de jeton* représente une valeur particulière d'un jeton dynamique. Par exemple, si un jeton dynamique représente un code d'erreur HTTP, une valeur de jeton peut l'être`501`.

La détection de modèles est également utilisée dans le détecteur d'anomalies CloudWatch Logs et les fonctionnalités de comparaison. Pour plus d’informations, consultez [Détection des anomalies du journal](LogsAnomalyDetection.md) et [Comparer (diff) avec les plages temporelles précédentes](CWL_AnalyzeLogData_Compare.md).

## Commencer à utiliser l'analyse de modèles
<a name="CWL_AnalyzeLogData_Patterns-GetStarted"></a>

La détection des modèles est automatiquement effectuée dans toutes CloudWatch les requêtes Logs Insights. Les requêtes qui n'incluent pas la `pattern` commande enregistrent à la fois les événements et les modèles dans les résultats.

Si vous incluez la `pattern` commande dans votre requête, l'analyse des modèles est effectuée sur l'ensemble des événements du journal correspondants. Cela permet d'obtenir des résultats de modèle plus précis, mais les événements du journal bruts ne sont pas renvoyés lorsque vous utilisez la `pattern` commande. Lorsqu'une requête n'inclut pas`pattern`, les résultats du modèle sont basés soit sur les 1 000 premiers événements de journal renvoyés, soit sur la valeur limite que vous avez utilisée dans votre requête. Si vous l'incluez `pattern` dans la requête, les résultats affichés dans l'onglet **Modèles** sont dérivés de tous les événements du journal correspondant à la requête.

**Pour commencer à utiliser l'analyse de modèles dans CloudWatch Logs Insights**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le volet de navigation, choisissez **Journaux**, **Informations sur les journaux**.

   Sur la page **Logs Insights**, l'éditeur de requête contient une requête par défaut qui renvoie les 20 événements du journal les plus récents.

1. Supprimez la `| limit 20` ligne dans la zone de requête afin que la requête ressemble à ce qui suit :

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

1. Dans le menu déroulant **Sélectionner un ou plusieurs groupes de journaux**, choisissez un ou plusieurs groupes de journaux à interroger.

1. (Facultatif) Utilisez le sélecteur d'intervalle de temps pour sélectionner une période à interroger.

   Vous pouvez choisir entre des intervalles de 5 minutes et 30 minutes, des intervalles de 1 heure, 3 heures et 12 heures, ou un intervalle de temps personnalisé.

1. Choisissez **Exécuter la requête** pour démarrer la requête.

   Lorsque l'exécution de la requête est terminée, l'onglet **Journaux** affiche un tableau des événements du journal renvoyés par la requête. Au-dessus du tableau se trouve un message indiquant le nombre d'enregistrements correspondant à la requête, similaire à l'**affichage de 10 000 enregistrements sur 71 101** correspondants.

1. Choisissez l'onglet **Motifs**.

1. Le tableau affiche désormais les modèles trouvés dans la requête. Comme la requête n'incluait pas la `pattern` commande, cet onglet affiche uniquement les modèles découverts parmi les 10 000 événements de journal indiqués dans le tableau de l'onglet **Journaux**.

   Pour chaque modèle, les informations suivantes sont affichées :
   + Le **modèle**, avec chaque jeton dynamique affiché sous la forme`<string-number>`. *string*Il s'agit d'une description du type de données que le jeton représente. *number*Indique où ce jeton apparaît dans le modèle, par rapport aux autres jetons dynamiques.
   + Le **nombre d'événements**, qui est le nombre de fois que le modèle est apparu dans le journal des événements demandé. Choisissez l'en-tête de la colonne **Nombre d'événements** pour trier les modèles par fréquence.
   + Le **ratio d'événements**, qui est le pourcentage des événements du journal interrogés qui contiennent ce modèle. 
   + Le **type de gravité**, qui sera l'un des suivants :
     + **ERREUR** si le modèle contient le mot **Error**.
     + **AVERTIR** si le modèle contient le mot **Warn** mais ne contient pas **Error**.
     + **INFO** si le modèle ne contient ni **avertissement** ni **erreur**.

     Choisissez l'en-tête de **la colonne Informations sur** la gravité pour trier les modèles par gravité.

1. Modifiez maintenant la requête. Remplacez la `| sort @timestamp desc` ligne de la requête par`| pattern @message`, de sorte que la requête complète soit la suivante :

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

1. Choisissez **Exécuter la requête**.

   Lorsque la requête est terminée, aucun résultat ne s'affiche dans l'onglet **Logs**. Cependant, l'onglet **Modèles** contient probablement un plus grand nombre de modèles répertoriés, en fonction du nombre total d'événements de journal interrogés.

1. Que vous l'ayez inclus ou non `pattern` dans votre requête, vous pouvez examiner plus en détail les modèles renvoyés par la requête. Pour ce faire, choisissez l'icône de l'un des modèles dans la colonne **Inspecter**. 

   Le volet **Pattern inspect** apparaît et affiche les informations suivantes : 
   + Le **motif**. Sélectionnez un jeton dans le modèle pour analyser les valeurs de ce jeton.
   + Un histogramme indiquant le nombre d'occurrences du modèle sur la plage de temps demandée. Cela peut vous aider à identifier des tendances intéressantes, telles qu'une augmentation soudaine de l'occurrence d'un modèle.
   + L'onglet **Échantillons de journal** affiche quelques-uns des événements du journal correspondant au modèle sélectionné.
   + L'onglet **Valeurs du jeton** affiche les valeurs du jeton dynamique sélectionné, si vous en avez sélectionné un.
**Note**  
Un maximum de 10 valeurs de jeton est capturée pour chaque jeton. Le nombre de jetons peut ne pas être précis. CloudWatch Logs utilise un compteur probabiliste pour générer le nombre de jetons, et non la valeur absolue.
   + L'onglet **Modèles associés** affiche d'autres modèles qui se sont produits fréquemment à peu près au même moment que le modèle que vous inspectez. Par exemple, si le modèle d'un `ERROR` message était généralement accompagné d'un autre événement de journal marqué comme `INFO` contenant des détails supplémentaires, ce modèle est affiché ici.

## Détails sur la commande pattern
<a name="CWL_AnalyzeLogData_Patterns-Details"></a>

Cette section contient plus de détails sur la `pattern` commande et ses utilisations.
+ Dans le didacticiel précédent, nous avons supprimé la `sort` commande lors de son ajout `pattern` car une requête n'est pas valide si elle inclut une `pattern` commande après une `sort` commande. Il est valide d'avoir un `pattern` avant un`sort`.

   Pour plus de détails sur `pattern` la syntaxe, consultez[pattern](CWL_QuerySyntax-Pattern.md).
+ Lorsque vous l'utilisez `pattern` dans une requête, ce `@message` doit être l'un des champs sélectionnés dans la `pattern` commande.
+ Vous pouvez inclure la `filter` commande avant une `pattern` commande pour que seul l'ensemble filtré d'événements du journal soit utilisé comme entrée pour l'analyse des modèles.
+ Pour voir les résultats de modèles pour un champ particulier, tel qu'un champ dérivé de la `parse` commande, utilisez`pattern @fieldname`.
+ Les requêtes dont la sortie n'est pas un journal, telles que les requêtes avec la `stats` commande, ne renvoient pas de résultats de modèle.

