Contenido del curso

Agente de Infraestructura

Cómo filtrar logs en New Relic con Lucene

Resumen

Consultar logs en New Relic se vuelve mucho más simple cuando entiendes los dos lenguajes que ofrece la plataforma: Lucene y NRQL. Aquí aprenderás a filtrar millones de registros usando pares clave-valor, operadores de exclusión y búsquedas parciales para encontrar exactamente el dato que necesitas.

Cómo navegar la interfaz de logs en New Relic

La exploración empieza en la barra lateral izquierda con la opción Log, que abre la vista principal donde ves todos tus log data disponibles [0:14]. Desde ahí puedes ajustar el rango temporal con el selector de tiempo, por ejemplo para ver únicamente los logs de las últimas seis horas.

En la parte superior aparece la barra de consultas, el corazón de toda la operación. También verás particiones, una funcionalidad que se aborda más adelante.

¿Qué es Lucene en New Relic? Es el lenguaje principal de consulta basado en pares clave-valor. Te permite buscar dentro de un log message usando campos específicos como newrelic.source o level para reducir el volumen de resultados.

Cómo filtrar logs usando pares clave-valor en Lucene

Lucene trabaja a partir de pares clave-valor, así que cada log message puede consultarse por sus campos. Al escribir el nombre de un campo en la barra, el autocompletado sugiere los operadores disponibles: igual, no igual, contiene, no contiene, empieza con, termina con, tiene o falta [1:25].

Un ejemplo concreto: para ver solo los logs que provienen de APM, escribes newrelic.source seguido del operador igual y eliges logs APM [1:08]. Cada filtro que añades reduce el pajar de datos y te acerca al log que realmente importa.

Después puedes refinar por nivel del log. Cada registro tiene un nivel asociado:

  • error para fallos críticos.
  • warning para alertas tempranas.
  • info para eventos rutinarios.
  • debug para información de depuración.

Filtrando por level = warning, en el ejemplo de la clase aparecieron 17 logs de advertencia en seis horas, varios relacionados con señales perdidas en rovers [2:41].

Cómo excluir valores y buscar texto parcial en una consulta

Cuando un valor específico te estorba, puedes excluirlo directamente desde los metadatos del log. Al hacer clic sobre un rover ID aparece la opción de agregarlo o excluirlo de la consulta. En Lucene esto se traduce a un signo menos delante de la cláusula, igual que en la sintaxis de búsqueda de Google [3:51].

¿Cómo excluyo un valor en Lucene? Antepón un signo menos al par clave-valor. Por ejemplo, -rover.id:Pathfinder elimina todos los logs de ese rover de los resultados.

Y si solo conoces parte del mensaje, el operador contains resuelve el problema. Buscando message contains "lost signal" aparecen únicamente los cuatro logs relevantes [4:35]. Así, partiendo de mil registros disponibles en la ventana de seis horas, la consulta final combinó cuatro filtros encadenados:

  1. Fuente igual a logs APM.
  2. Nivel igual a warning.
  3. Exclusión del rover.id Pathfinder.
  4. Message contains "lost signal".

Por qué desarrollar habilidades de filtrado importa en producción

El ejemplo de la clase usa un volumen mínimo a propósito. En entornos reales, New Relic procesa millones de log events por hora, así que filtrar con precisión deja de ser opcional [5:21].

Piensa en un clúster de Kubernetes con problemas: empiezas por el cluster ID, y si el ruido viene de microservicios que no te interesan o del telemetry processor, los excluyes. La habilidad clave es traducir una hipótesis sobre el problema en una secuencia de filtros que aísle la causa.

¿Cuándo conviene usar el operador contains en lugar de equals? Cuando solo conoces una parte del valor o el campo es texto libre, como un message. Equals exige coincidencia exacta; contains busca substrings dentro del campo.

Cuándo usar NRQL en lugar de Lucene

Lucene es cómodo para pensar en pares clave-valor, pero toda consulta se puede traducir a NRQL con un clic en el botón correspondiente [6:12]. NRQL abre puertas adicionales: convertir la consulta en panel o gráfico, configurar una condición de alerta basada en ese filtro, copiar la consulta para reutilizarla o generar un enlace al gráfico.

La elección entre uno y otro suele ser preferencia personal. Lucene se siente natural para búsquedas exploratorias rápidas; NRQL brilla cuando necesitas dashboards, alertas y agregaciones más complejas.

¿Tú con cuál te quedas, Lucene o NRQL? Cuéntame en los comentarios cuál prefieres y por qué.