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
Utilisez la commande parse
pour extraire les données d'un champ de journal et créer un champ extrait que vous pouvez traiter dans votre requête. parse
prend en charge à la fois le mode glob utilisant des caractères génériques et des expressions régulières. Pour plus d'informations sur la syntaxe des expressions régulières, consultezSyntaxe des expressions régulières (regex) prise en charge.
Vous pouvez analyser les champs JSON imbriqués avec une expression régulière.
Exemple : Analyse d'un champ JSON imbriqué
L'extrait de code montre comment analyser un événement du journal au format JSON qui a été aplati lors de l'ingestion.
{'fieldsA': 'logs', 'fieldsB': [{'fA': 'a1'}, {'fA': 'a2'}]}
L'extrait de code montre une requête avec une expression régulière qui extrait les valeurs de fieldsA
et fieldsB
pour créer les champs extraits fld
et array
.
parse @message "'fieldsA': '*', 'fieldsB': ['*']" as fld, array
Groupes de capture nommés
Lorsque vous utilisez parse
avec une expression régulière, vous pouvez utiliser des groupes de capture nommés pour capturer un modèle dans un champ. La syntaxe est parse @message (?<Name>pattern).
L'exemple suivant utilise un groupe de capture sur un journal de flux VPC pour extraire l'ENI dans un champ nommé NetworkInterface
.
parse @message /(?<NetworkInterface>eni-.*?) / display @timestamp, NetworkInterface
Note
Les événements du journal au format JSON sont aplatis lors de l'ingestion. Actuellement, l'analyse de champs JSON imbriqués avec une expression globale n'est pas prise en charge. Vous ne pouvez analyser que les événements du journal au format JSON qui ne contiennent pas plus de 200 champs d'événements de journal. Lorsque vous analysez des champs JSON imbriqués, vous devez mettre en forme l'expression régulière de votre requête pour qu'elle corresponde à votre événement du journal JSON.
Exemples de la commande d'analyse.
Utilisez une expression glob pour extraire les champs @user
, @method
et @latency
à partir du champ de journal @message
et renvoyer la latence moyenne pour chaque combinaison unique de @method
et @user
.
parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user
Utilisez une expression régulière pour extraire les champs @user2
, @method2
et @latency2
à partir du champ du journal @message
et renvoyer la latence moyenne pour chaque combinaison unique de @method2
et @user2
.
parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, @user2
Extrait les champs loggingTime
, loggingType
et loggingMessage
, filtre vers le bas pour journaliser les événements qui contiennent les chaînes ERROR
ou INFO
, puis affiche uniquement les champs loggingMessage
et loggingType
pour les événements qui contiennent une chaîne ERROR
.
FIELDS @message | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage | FILTER loggingType IN ["ERROR", "INFO"] | DISPLAY loggingMessage, loggingType = "ERROR" as isError