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
Champs indexés et commande de filtrage
Si vous avez créé des index de champs pour un groupe de journaux, vous pouvez exploiter ces index de champs pour améliorer l'efficacité de vos filter
requêtes et réduire le volume numérisé. Supposons, par exemple, que vous ayez créé un index de champ pourrequestId
. Ensuite, toute requête CloudWatch Logs Insights sur ce groupe de journaux qui inclut filter requestId =
ou value
filter requestId IN [
tentera d'ignorer les événements du journal de traitement dont on sait qu'ils n'incluent pas le champ indexé. En essayant d'analyser uniquement les événements du journal connus pour contenir ce champ indexé, le volume de numérisation peut être réduit et la requête est plus rapide.value
, value
, ...]
Pour plus d'informations sur les index de champs et sur la façon de les créer, consultezCréez des index de champs pour améliorer les performances des requêtes et réduire le volume de numérisation.
Important
Seules les requêtes avec filter
et fieldName
=...filter
bénéficieront des améliorations de l'index des champs. Les requêtes fieldName
IN...filter
n'utilisent pas d'index et analysent toujours tous les événements du journal dans les groupes de journaux sélectionnés.fieldName
like
Exemple : rechercher les événements du journal liés à un certain ID de demande, à l'aide d'index
Cet exemple suppose que vous avez créé un index de champ surrequestId
. Pour les groupes de journaux qui utilisent cet index de champs, la requête utilisera les index de champs pour tenter de scanner le moins possible d'événements de journal afin de trouver des événements requestId
ayant une valeur de 123456
fields @timestamp, @message | filter requestId = "1234656" | 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/