filtre - Amazon CloudWatch Logs

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.

filtre

Utilisez la commande filter pour obtenir des événements du journal qui répondent à une ou plusieurs conditions.

Exemple : Filtrage des événements du journal à l'aide d'une condition

L'extrait de code montre un exemple de requête qui renvoie tous les événements du journal où la valeur de range est supérieur à 3 000. La requête limite les résultats à 20 événements du journal et trie les événements du journal par @timestamp et par ordre décroissant.

fields @timestamp, @message | filter (range>3000) | sort @timestamp desc | limit 20

Exemple : Filtrage des événements du journal à l'aide de plusieurs conditions

Vous pouvez utiliser les mots-clés and et or pour combiner plusieurs conditions.

L'extrait de code montre un exemple de requête qui renvoie les événements du journal où la valeur de range est supérieure à 3 000 et la valeur de accountId est égale à 123 456 789 012. La requête limite les résultats à 20 événements du journal et trie les événements du journal par @timestamp et par ordre décroissant.

fields @timestamp, @message | filter (range>3000 and accountId=123456789012) | sort @timestamp desc | limit 20

Correspondances et expressions régulières dans la commande filter

La commande de filtre prend en charge l'utilisation d'expressions régulières. Vous pouvez utiliser les opérateurs de comparaison suivants (=, !=, <, <=, >, >=) et les opérateurs booléens (and, or et not).

Vous pouvez utiliser le mot-clé in pour tester des membres d'un ensemble et vérifier les éléments d'une matrice. Pour vérifier les éléments dans une matrice, insérez la matrice après in. Vous pouvez utiliser l'opérateur booléen not avec in. Vous pouvez créer des requêtes utilisant in pour renvoyer les événements du journal où les champs sont des correspondances de chaînes. Les champs doivent être des chaînes complètes. Par exemple, l'extrait de code suivant montre une requête qui utilise in pour renvoyer les événements du journal où le champ logGroup est le example_group de chaîne complète.

fields @timestamp, @message | filter logGroup in ["example_group"]

Vous pouvez utiliser les phrases avec des mots-clés like et not like pour faire correspondre des sous-chaînes. Vous pouvez utiliser l'opérateur d'expression régulière =~ pour faire correspondre des sous-chaînes. Pour faire correspondre une sous-chaîne avec like et not like, placez la sous-chaîne à faire correspondre entre guillemets simples ou doubles. Vous pouvez utiliser des modèles d'expression régulière avec like et not like. Pour faire correspondre une sous-chaîne avec l'opérateur d'expression régulière, placez la sous-chaîne que vous souhaitez faire correspondre entre des barres obliques. Les exemples suivants contiennent des extraits de code qui montrent comment faire correspondre des sous-chaînes à l'aide de la commande filter.

Exemples : faire correspondre des sous-chaînes

Les exemples suivants renvoient des événements du journal où f1 contient le mot Exception. Les trois exemples sont sensibles à la casse.

Le premier exemple fait correspondre une sous-chaîne avec like.

fields f1, f2, f3 | filter f1 like "Exception"

Le deuxième exemple fait correspondre une sous-chaîne avec like et un modèle d'expression régulière.

fields f1, f2, f3 | filter f1 like /Exception/

Le troisième exemple fait correspondre une sous-chaîne avec une expression régulière.

fields f1, f2, f3 | filter f1 =~ /Exception/

Exemple : faire correspondre des sous-chaînes avec des caractères de remplacement

Vous pouvez utiliser le point (.) comme caractère de remplacement dans les expressions régulières pour faire correspondre des sous-chaînes. Dans l'exemple suivant, la requête renvoie des correspondances lorsque la valeur de f1 commence par la chaîne ServiceLog.

fields f1, f2, f3 | filter f1 like /ServiceLog./

Vous pouvez placer l'astérisque après le point (.*) pour créer un quantificateur gourmand qui renvoie autant de correspondances que possible. Par exemple, la requête suivante renvoie les résultats où la valeur de f1 ne commence par la chaîne ServiceLog et inclut également la chaîne ServiceLog.

fields f1, f2, f3 | filter f1 like /ServiceLog.*/

Les correspondances possibles peuvent être mises en forme comme suit :

  • ServiceLogSampleApiLogGroup

  • SampleApiLogGroupServiceLog

Exemple : exclure des sous-chaines des correspondances

L'exemple suivant montre une requête qui renvoie des événements du journal où f1 ne contient pas le mot Exception. L'exemple est sensible au cas par cas.

fields f1, f2, f3 | filter f1 not like "Exception"

Exemple : faire correspondre des sous-chaînes avec des modèles insensibles à la casse

Vous pouvez faire correspondre des sous-chaînes insensibles à la casse avec like et des expressions régulières. Placez le paramètre suivant (?i) avant la sous-chaîne à faire correspondre. L'exemple suivant montre une requête qui renvoie des événements du journal où f1 contient pas le mot Exception ou exception.

fields f1, f2, f3 | filter f1 like /(?i)Exception/