As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
parse
Use parse para extrair dados de um campo de registro e criar campos extraídos que você possa processar em sua consulta. O parse comando oferece suporte a três modos: expressões globais, expressões regulares e logfmt.
Se fieldName for omitido, @message será usado por padrão. Você pode analisar a partir de qualquer campo nomeado especificando o nome do campo como o primeiro argumento.
Se um evento de log não corresponder ao padrão especificado, você ainda o verá nos resultados, mas sem os campos extraídos.
Modo global
Use curingas (*) como espaços reservados para valores que você deseja extrair e atribua-os aos campos nomeados com. as
Sintaxe
parsefieldName"pattern" asalias1,alias2
O número de * curingas deve ser igual ao número de aliases.
Exemplos
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
Análise encadeada
Extraia um campo e, em seguida, analise ainda mais o campo extraído.
parse @message "url=*" as url | parse url "/api/*/users/*" as apiVersion, userId | display apiVersion, userId
Modo Regex
Use uma expressão regular com grupos de captura nomeados para extrair campos. Para obter informações sobre a sintaxe das expressões regulares, consulte Sintaxe de expressões regulares (regex) compatíveis.
Sintaxe
parsefieldName/regex/
Use grupos de captura nomeados (?< para definir os campos extraídos.name>...)
Exemplos
Use grupos de captura nomeados para extrair campos
parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, @user2
Use um grupo de captura nomeado para extrair o ENI de um log de fluxo de VPC
parse @message /(?<NetworkInterface>eni-.*?) / | display NetworkInterface, @message
Modo Logfmt
Use parse logfmt para analisar linhas de log formatadas em logfmt em pares de valores-chave. Logfmt é um formato de registro estruturado em que cada linha contém pares separados por espaçokey=value.
Sintaxe
parsefieldNamelogfmt asalias
O resultado é um mapa que você acessa com notação de pontos (por exemplo,lf.level,lf.msg).
Exemplos
parse @message logfmt as lf | filter lf.level = "error" | display lf.msg, lf.duration
parse @message logfmt as lf | stats count(*) by lf.host