parse - Amazon CloudWatch Logs

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

parse

Use parse para extraer datos de un campo de registro y crear un campo extraído que pueda procesar en su consulta. parse admite tanto el modo glob con caracteres comodín como expresiones regulares. Para obtener información acerca de la sintaxis de la expresión regular, consulte Sintaxis de expresiones regulares (regex) compatibles.

Puede analizar los JSON campos anidados con una expresión regular.

Ejemplo: analizar un campo anidado JSON

El fragmento de código muestra cómo analizar un evento de JSON registro que se ha aplanado durante la ingestión.

{'fieldsA': 'logs', 'fieldsB': [{'fA': 'a1'}, {'fA': 'a2'}]}

El fragmento de código muestra una consulta con una expresión regular que extrae los valores de fieldsA y fieldsB con el objetivo de crear los campos extraídos fld y array.

parse @message "'fieldsA': '*', 'fieldsB': ['*']" as fld, array

Grupos de captura con nombres

Cuando se usa parse con una expresión regular, puede usar grupos de captura con nombre para capturar un patrón en un campo. La sintaxis es parse @message (?<Name>pattern).

En el siguiente ejemplo, se utiliza un grupo de captura de un registro de VPC flujo para extraerlo en un campo denominado. ENI NetworkInterface

parse @message /(?<NetworkInterface>eni-.*?) / | display NetworkInterface, @message
nota

JSONLos eventos del registro se aplanan durante la ingestión. Actualmente, no se admite el análisis de JSON campos anidados con una expresión global. Solo puede analizar los eventos de JSON registro que no incluyan más de 200 campos de eventos de registro. Al analizar JSON los campos anidados, debe formatear la expresión regular de la consulta para que coincida con el formato del evento de JSON registro.

Ejemplos del comando para analizar

Utilice una expresión glob para extraer los campos @user@method y @latency del campo de registro @message y devolver la latencia promedio para cada combinación única de @method y @user.

parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user

Utilice una expresión regular para extraer los campos @user2@method2 y @latency2 del campo de registro @message y devolver la latencia promedio para cada combinación única de @method2 y @user2.

parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, @user2

Extrae los campos loggingTimeloggingType y loggingMessage, filtra hasta los eventos de registro que contienen cadenas ERROR o INFO y, a continuación, muestra solo los campos loggingMessage y loggingType para los eventos que contienen una cadena ERROR.

FIELDS @message | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage | FILTER loggingType IN ["ERROR", "INFO"] | DISPLAY loggingMessage, loggingType = "ERROR" as isError