Las extracciones de campos calculados están en vista previa

Utiliza extracciones de campos calculados para extraer valores de tus logs en el Log Explorer en el momento de consulta utilizando patrones Grok.

Request Access

Información general

Las extracciones de campos calculados te permiten aplicar reglas de análisis Grok en el momento de consulta en el Log Explorer para extraer valores de mensajes o atributos de logs sin procesar, sin necesidad de modificar pipelines o volver a ingerir los datos. Puedes generar reglas de extracción automáticamente con el análisis basado en IA o definir manualmente tus propios patrones Grok para satisfacer necesidades específicas.

Para crear un campo calculado de extracción, consulta Crear un campo calculado.

Análisis automático

Utiliza el análisis automático basado en IA para generar reglas Grok a partir de tus datos de logs. Datadog analiza el contenido de tu mensaje de log y genera automáticamente una regla de extracción, eliminando la necesidad de escribir manualmente patrones Grok.

Ejemplo de análisis Grok basado en IA en campos calculados de Datadog

Hay dos formas de acceder al análisis automático desde el panel lateral de logs:

  1. Haz clic en el botón AI (IA) situado junto al botón de copia.
  2. Resalta una parte específica del mensaje de log y haz clic en el botón AI (IA) del menú emergente.

Al pulsar el botón AI (IA), Datadog rellena automáticamente el formulario Calculated Field (Campo calculado):

  1. Extract from (Extraer de): Por defecto es el mensaje de log completo. Puedes cambiar el menú desplegable para analizar atributos individuales en su lugar.
  2. Log sample (Ejemplo de log): Rellenado automáticamente con tu log seleccionado.
  3. Parsing rule (Regla de análisis): Generada automáticamente a partir del ejemplo de log.

Revisa y modifica la regla generada según sea necesario. Puedes editarla manualmente o hacer clic en Generate a new rule (Generar una nueva regla) para que Datadog vuelva a intentarlo. También puedes modificar, insertar o reemplazar el ejemplo de log para probar tu regla con diferentes formatos de log.

Utiliza los botones "pulgar arriba" o "pulgar abajo" para hacer comentarios en línea y ayudar a mejorar la función.

Sintaxis

Los campos de extracción utilizan patrones Grok para identificar y capturar valores de un atributo de log. Un patrón Grok se compone de uno o más tokens con el formato:

%{PATTERN_NAME:field_name}
  • PATTERN_NAME: Un emparejador Grok.
  • field_name: El nombre del campo calculado extraído.

Puedes encadenar varios patrones para analizar mensajes de log complejos.

Emparejadores y filtros compatibles en el momento de consulta

Las funciones de análisis de Grok disponibles en el momento de consulta (en el Log Explorer) admite un subconjunto limitado de emparejadores (datos, entero, notSpace, número y palabra) y de filtros (número e entero). Para necesidades de análisis a largo plazo, define un pipeline de logs.

El análisis Grok en el momento de consulta en el Log Explorer admite un subconjunto limitado de comparadores y filtros. Cada comparador o filtro se utiliza en un patrón Grok con el formato:

%{MATCHER:field_name}

Comparadores

ComparadorEjemplo de patrón Grok
data
Cualquier secuencia de caracteres (no codiciosos)
status=%{data:status}
word
Caracteres alfanuméricos
country=%{word:country}
number
Números con coma flotante
value=%{number:float_val}
integer
Valores enteros
count=%{integer:count}
notSpace
Caracteres sin espacios en blanco
path=%{notSpace:request_path}

Filtros

Aplica filtros para convertir los valores extraídos en tipos numéricos. Los filtros utilizan la misma sintaxis de patrones que las coincidencias.

FiltroEjemplo de patrón Grok
number
Analiza cadenas numéricas como números
latency=%{number:lat}
integer
Analiza cadenas numéricas como enteros
users=%{integer:user_count}

Ejemplo

Utiliza esta función para analizar campos de logs por pedido sin modificar tu pipeline de ingesta. Línea de log:

country=Brazil duration=123ms path=/index.html status=200 OK

Regla de extracción Grok:

country=%{word:country} duration=%{integer:duration} path=%{notSpace:request_path} status=%{data:status}

Campos calculados resultantes:

  • #country = Brazil
  • #duration = 123
  • #request_path = /index.html
  • #status = 200 OK

Referencias adicionales

Más enlaces, artículos y documentación útiles: