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.
parse
parseÀ utiliser pour extraire des données d'un champ de journal et créer des champs extraits que vous pouvez traiter dans votre requête. La parse commande prend en charge trois modes : les expressions globales, les expressions régulières et logfmt.
S'il fieldName est omis, il @message est utilisé par défaut. Vous pouvez effectuer une analyse à partir de n'importe quel champ nommé en spécifiant le nom du champ comme premier argument.
Si un événement du journal ne correspond pas au modèle spécifié, il apparaît toujours dans les résultats, mais sans les champs extraits.
Mode globe
Utilisez des caractères génériques (*) comme espaces réservés pour les valeurs que vous souhaitez extraire et attribuez-les à des champs nommés avec. as
Syntaxe
parsefieldName"pattern" asalias1,alias2
Le nombre de * caractères génériques doit être égal au nombre d'alias.
Exemples
parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user
parse @logStream "*/*/*/*" as env, service, instance, shard | stats count(*) by env, service
Analyse en chaîne
Extrayez un champ, puis analysez-le davantage.
parse @message "url=*" as url | parse url "/api/*/users/*" as apiVersion, userId | display apiVersion, userId
Mode Regex
Utilisez une expression régulière avec des groupes de capture nommés pour extraire des champs. Pour plus d'informations sur la syntaxe des expressions régulières, consultezSyntaxe des expressions régulières (regex) prise en charge.
Syntaxe
parsefieldName/regex/
Utilisez des groupes de capture nommés (?< pour définir les champs extraits.name>...)
Exemples
Utiliser des groupes de capture nommés pour extraire des champs
parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, @user2
Utiliser un groupe de capture nommé pour extraire l'ENI d'un journal de flux VPC
parse @message /(?<NetworkInterface>eni-.*?) / | display NetworkInterface, @message
Mode Logfmt
parse logfmtÀ utiliser pour analyser les lignes de journal au format logfmd en paires clé-valeur. Logfmt est un format de journalisation structuré dans lequel chaque ligne contient des paires séparées par des espaceskey=value.
Syntaxe
parsefieldNamelogfmt asalias
Le résultat est une carte à laquelle vous pouvez accéder à l'aide d'une notation par points (par exemplelf.level,,lf.msg).
Exemples
parse @message logfmt as lf | filter lf.level = "error" | display lf.msg, lf.duration
parse @message logfmt as lf | stats count(*) by lf.host