OpenSearch Lenguaje PPL - 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.

OpenSearch Lenguaje PPL

Esta sección contiene una introducción básica a la consulta de CloudWatch registros mediante OpenSearch PPL. Con PPL, puede recuperar, consultar y analizar datos mediante comandos agrupados, lo que facilita la comprensión y la redacción de consultas complejas. Su sintaxis se basa en las canalizaciones de Unix y permite encadenar comandos para transformar y procesar datos. Con PPL, puede filtrar y agregar datos y utilizar un amplio conjunto de funciones matemáticas, de cadenas, de fecha, condicionales y de otro tipo para el análisis.

Puede usar el OpenSearch PPL solo para consultas de grupos de registros de la clase de registro estándar. Al seleccionar los grupos de registros que desea consultar, puede seleccionar un único grupo de registros, un conjunto de grupos de registros que comparten un prefijo o seleccionar todos los grupos de registros

nota

Para obtener información sobre todos los comandos de consulta de OpenSearch PPL compatibles con CloudWatch los registros e información detallada sobre la sintaxis y las restricciones, consulte los comandos de PPL compatibles en la Guía para desarrolladores de OpenSearch servicios.

Comando o función Consulta de ejemplo Descripción

campos

fields field1, field2

Muestra un conjunto de campos que necesitan ser proyectados.

unirse

LEFT JOIN left=l, right=r on l.id = r.id `join_right_lg` | fields l.field_1, r.field_2

Une dos conjuntos de datos.

where

where field1="success" | where field2 != "i-023fe0a90929d8822" | fields field3, field4, field5,field6 | head 1000

Filtra los datos en función de las condiciones que especifique.

stats

stats count(), count(field1), min(field1), max(field1), avg(field1) by field2 | head 1000

Realiza agregaciones y cálculos

parse

parse field1 ".*/(?<field2>[^/]+$)" | where field2 = "requestId" | fields field1, field2 | head 1000

Extrae un patrón de expresión regular (regex) de una cadena y muestra el patrón extraído. El patrón extraído se puede utilizar además para crear nuevos campos o filtrar datos.

sort

stats count(), count(field1), min(field1) as field1Alias, max(`field1`), avg(`field1`) by field2 | sort -field1Alias | head 1000

Ordene los resultados mostrados por un nombre de campo. Utilice ordenar: FieldName para ordenar en orden descendente.

evaluar

eval field2 = field1 * 2 | fields field1, field2 | head 20

Modifica o procesa el valor de un campo y lo almacena en un campo diferente. Esto resulta útil para modificar matemáticamente una columna, aplicar funciones de cadena a una columna o aplicar funciones de fecha a una columna.

rename

rename field2 as field1 | fields field1;

Cambia el nombre de uno o más campos del resultado de la búsqueda.

head

fields `@message` | head 20

Limita los resultados de la consulta mostrados a las N primeras filas.

top

top 2 field1 by field2

Busca los valores más frecuentes de un campo.

dedup

dedup field1 | fields field1, field2, field3

Elimina las entradas duplicadas en función de los campos que especifique.

raro

rare field1 by field2

Busca los valores menos frecuentes de todos los campos de la lista de campos.

subquery

where field_1 IN [ search source= `subquery_lg` | fields field_2 ] | fields id, field_1

Realiza consultas complejas y anidadas dentro de las sentencias PPL.

línea de tendencia

trendline sma(2, field1) as field1Alias

Calcula las medias móviles de los campos.

Estadísticas del evento

eventstats sum(field1) by field2

Enriquece los datos de tus eventos con estadísticas resumidas calculadas. Analiza los campos específicos de tus eventos, calcula varias medidas estadísticas y, a continuación, agrega estos resultados a cada evento original como campos nuevos.

expandir

eval tags_array_string = json_extract(`@message`, '$.tags')| eval tags_array = json_array(json_extract(tags_string, '$[0]'), json_extract(tags_string, '$[1]'))| expand tags_array as color_tags

Divide un campo que contiene varios valores en filas independientes y crea una nueva fila para cada valor del campo especificado.

rellenar un valor nulo

fields `@timestamp`, error_code, status_code | fillnull using status_code = "UNKNOWN", error_code = "UNKNOWN"

Rellena los campos nulos con el valor que proporciones. Se puede usar en uno o más campos.

flatten

eval metadata_struct = json_object('size', json_extract(metadata_string, '$.size'), 'color', json_extract(metadata_string, '$.color')) | flatten metadata_struct as (meta_size, meta_color)

Aplana un campo. El campo debe ser de este tipo: struct<?,?> o. array<struct<?,?>>

cirmatch

where cidrmatch(ip, '2003:db8::/32') | fields ip

Comprueba si la dirección IP especificada está dentro del rango CIDR dado.

resumen del campo

where field1 != 200 | fieldsummary includefields= field1 nulls=true

Calcula las estadísticas básicas de cada campo (recuento, recuento distinto, mínimo, máximo, promedio, stddev y media).

grok

grok email '.+@%{HOSTNAME:host}' | fields email, host

Analiza un campo de texto con un patrón grok y añade los resultados al resultado de la búsqueda.

Funciones de cadena

eval field1Len = LENGTH(field1) | fields field1Len

Funciones integradas en PPL que pueden manipular y transformar cadenas y datos de texto en las consultas de PPL. Por ejemplo, convertir mayúsculas y minúsculas, combinar cadenas, extraer partes y limpiar texto.

Funciones de fecha y hora

eval newDate = ADDDATE(DATE('2020-08-26'), 1) | fields newDate

Funciones integradas para gestionar y transformar los datos de fecha y hora en las consultas PPL. Por ejemplo, date_add, date_format, datediff, date-sub, timestampadd, timestampdiff, current_timezone, utc_timestamp y current_date.

Funciones de condiciones

eval field2 = isnull(field1) | fields field2, field1, field3

Funciones integradas que comprueban condiciones de campo específicas y evalúan las expresiones de forma condicional. Por ejemplo, si el campo1 es nulo, devuelve el campo2.

Funciones matemáticas

eval field2 = ACOS(field1) | fields field1

Funciones integradas para realizar cálculos matemáticos y transformaciones en consultas PPL. Por ejemplo, abs (valor absoluto), round (redondea números), sqrt (raíz cuadrada), pow (cálculo de potencia) y ceil (redondea al entero más cercano).

CryptoGraphic funciones

eval crypto = MD5(field)| head 1000

Para calcular el hash de un campo dado

Funciones JSON

eval valid_json = json('[1,2,3,{"f1":1,"f2":[5,6]},4]') | fields valid_json

Funciones integradas para el manejo de JSON, incluidas las matrices, la extracción y la validación. Por ejemplo, json_object, json_array, to_json_string, json_array_length, json_extract, json_keys y json_valid.