View a markdown version of this page

parse - CloudWatch Registros da Amazon

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

parse fieldName "pattern" as alias1, 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

parse fieldName /regex/

Use grupos de captura nomeados (?<name>...) para definir os campos extraídos.

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

parse fieldName logfmt as alias

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