• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Tutorial introductorio de NRQL: su primera consulta

Después de aprender los conceptos básicos de NRQL en nuestros otros temas, como qué es NRQL , cómo NRQL y cómo se relaciona NRQL con los gráficos y el panel, ¡está listo para probar los ejemplos de este tutorial! El tutorial cubre algunos conceptos fundamentales dentro del lenguaje para ayudarlo a crear una consulta NRQL básica utilizando sus datos, incluido cómo:

  • Utilice SELECT y FROM
  • Usar LIMIT
  • Especificar atributo
  • Agregar usando average(), max(), min(), sum() y count()
  • Utilice SINCE y UNTIL
  • Trazar gráficos lineales con TIMESERIES
  • Filtrar usando WHERE
  • Agrupar atributo usando FACET

Requisitos previos

Solo necesita que algunos datos ingresen a la plataforma New Relic para seguir este tutorial. Si eres nuevo en New Relic y quieres ver con qué facilidad puedes usar NRQL, puedes comenzar con la plataforma de forma gratuita y seguir el tutorial. Todo lo que tienes que hacer es:

  1. Regístrese para obtener una cuenta gratuita si aún no lo ha hecho.
  2. Utilice nuestro agente e integración para recopilar datos automáticamente desde cualquier marco y herramienta comunes.
  3. Visite la guía de lanzamiento rápida para obtener una ruta recomendada sobre cómo configurar New Relic. Puede comenzar a ingerir datos para consultar y luego estará listo para usar este o cualquiera de los otros tutoriales de esta serie.

¿Listo para comenzar? ¡Vamos!

1. Crea tu primera consulta

El mejor lugar para comenzar en el generador de consultas es observar un único tipo de evento en NRDB llamado Transaction, recopilado por New Relic APM. Cada consulta NRQL debe tener cláusulas SELECT y FROM : debes SELECT algunos datos y decirnos dónde están FROM. Comience con esta consulta básica que selecciona todo del tipo de evento Transaction :

SELECT *
FROM Transaction

Esto devuelve muchos resultados, cada uno con una timestamp y una colección de atributos. Por ahora, solo desea un resultado único, por lo que puede limitar los resultados a un solo registro usando LIMIT 1.

SELECT *
FROM Transaction
LIMIT 1

Importante

Cuando no se proporciona un LIMIT , la consulta devuelve el valor predeterminado de 100 filas de tabla para SELECT * consulta o 10 valores agregados para FACET consulta y SELECT (attributes) consulta. Puede especificar cualquier límite hasta el máximo usando LIMIT MAX.

Ahora tienes una forma de controlar el volumen de los resultados. ¿Pero qué pasa si no quieres todos los atributos? ¿Qué sucede si desea ver solo puntos de datos específicos? Al igual que SQL, puede hacer esto con solo unos pocos caracteres reemplazando * con el nombre de los atributos que desee. En este caso, puede solicitar el nombre de una transacción y el tiempo que tomó.

SELECT name, duration
FROM Transaction

Con esto, ha escrito una consulta que puede devolver todos o algunos atributos específicos de un evento, además de consultar un número específico de eventos. Es hora de dar el siguiente paso: agregar datos.

2. Datos agregados

A veces, es posible que desee ver datos agregados resumidos de muchos eventos en lugar de ver puntos de datos individuales. Aquí es donde brilla NRDB. NRDB puede escanear miles de millones de eventos y proporcionar respuestas instantáneas y en tiempo real a preguntas sobre sus datos. Por ejemplo, cada evento Transaction tiene un atributo de duración que representa cuántos segundos tardó en ejecutarse la llamada. Utilice la siguiente consulta para descubrir la duración promedio de todos los Transaction eventos:

SELECT average(duration)
FROM Transaction

NRQL tiene muchas funciones integradas que puede utilizar para agregar datos de eventos. Las funciones más utilizadas incluyen max(), min(),average(), median() y percentile(). Puede utilizar la siguiente consulta para preguntarle a NRDB la duración de la transacción más lenta de los últimos 60 minutos. Para hacer esto, solicite a NRDB el max(duration).

SELECT max(duration)
FROM Transaction

Ahora sabes cuánto tiempo tomó la experiencia del cliente más lenta en los últimos 60 minutos. A continuación, encuentre lo inverso y vea cuánto tiempo duró la experiencia más rápida pidiéndole a NRDB el min(duration).

SELECT min(duration)
FROM Transaction

Como puede ver, max() y min() devuelven puntos de datos importantes. Pero, ¿qué pasa si quieres realizar aritmética con los datos? Con sum(), puedes realizar una suma básica en un atributo numérico. En esta consulta, utilice un nuevo atributo llamado databaseCallCount. Este atributo cuenta el número de llamadas a la base de datos que realiza cada transacción. Al agregarlos, puede obtener el volumen total de llamadas a la base de datos en la ventana de tiempo predeterminada de 60 minutos (esto será 0 si sus aplicaciones no se comunican con una base de datos).

SELECT sum(databaseCallCount)
FROM Transaction

Finalmente, también puedes contar todos los eventos de transacción registrados con count(*). Con esta consulta, puede contar todos los eventos registrados para todas las aplicaciones que informan al New Relic APM:

SELECT count(*)
FROM Transaction

Ahora puede descubrir mucho sobre sus datos: puede medir los límites de su desempeño, agrupar datos de eventos e incluso calcular información sobre el atributo elegido. Elegiste una duración y calculaste los valores average, max y min , agregaste un atributo numérico y contaste todos los eventos durante un período de tiempo. Manipular datos como este será útil cuando desee presentar datos en visualizaciones, lo que ayuda a detectar problemas de rendimiento. Es hora de dar el siguiente paso: utilizar rangos de tiempo.

3. Utilice rangos de tiempo

Cada dato en NRDB tiene un timestamp y cada consulta opera en un subconjunto de datos dentro de un rango de tiempo. Si no proporciona un rango de tiempo en su consulta NRQL, devolverá los últimos 60 minutos de forma predeterminada, como vimos anteriormente. Pero ¿qué pasa si quieres ver datos de diferentes rangos de tiempo? ¿Cómo controlas la ventana de datos que ves? Puede hacerlo utilizando las palabras clave SINCE y UNTIL para proporcionar un comienzo y un final para el intervalo de tiempo de su consulta.

SELECT average(duration)
FROM Transaction
SINCE 1 day ago

También puede especificar rangos de tiempo relativos al momento de realizar la consulta utilizando palabras clave como day, week, hour, minute o sus equivalentes en plural. También puedes utilizar expresiones lógicas como SINCE hoy o SINCE esta semana.

SELECT average(duration)
FROM Transaction
SINCE this week

Aquí hay otra consulta que demuestra rangos de tiempo relativos. Tenga en cuenta que al especificar un tiempo relativo, debe incluir la palabra clave ago.

SELECT average(duration)
FROM Transaction
SINCE 1 week ago
UNTIL 2 days ago

Ahora tienes aún más control sobre tus datos. Al agregar un período de tiempo a una consulta, define exactamente qué ventana de datos desea ver. Estos controles le permiten concentrarse en los datos que desea al definir dónde comienza y termina el informe de datos. También eligió la ventana y utilizó términos comunes como week, day, hour, minute y sus plurales. Es hora de dar el siguiente paso: consultar una serie temporal.

4. Consulta de series temporales

Un caso de uso común de NRQL es consultar cómo cambian los valores con el tiempo. Este tipo de consulta proporciona datos para gráficos de líneas, gráficos de áreas y otras visualizaciones. Ya ha realizado algunas consultas para explorar las funciones de agregación average(), max(), min(), sum() y count(). Ahora, use este ejemplo para ver cómo tomar cualquier consulta realizada con funciones de agregación y agregar la palabra clave TIMESERIES para trazar los valores a lo largo del tiempo.

SELECT average(duration)
FROM Transaction
SINCE 1 day ago
TIMESERIES

Una consulta de serie temporal divide los datos en varias regiones denominadas depósitos durante el período de tiempo especificado. Puede hacer que NRDB elija un valor para el ancho de ese depósito o elija el suyo propio. Utilice esta consulta para pedirle a NRDB que muestre la duración promedio de la transacción de la aplicación con los datos devueltos organizados en grupos de 1 hora.

SELECT average(duration)
FROM Transaction
SINCE 1 day ago
TIMESERIES 1 hour

Tenga en cuenta que esto puede arrojar un gráfico más plano, ya que solo tenemos 24 puntos de datos en el período de 1 día que se está trazando. Pero, ¿qué pasa si quieres ver la máxima granularidad posible? Cualquier consulta de serie temporal puede tener hasta 366 depósitos de datos, lo que significa que la granularidad máxima posible durante 24 horas es agrupar nuestros datos en ventanas de 4 minutos. consulta esto usando TIMESERIES 4 minutes o TIMESERIES MAX:

SELECT average(duration)
FROM Transaction
SINCE 1 day ago
TIMESERIES MAX

Ahora ha alcanzado nuevos niveles de visualización de datos, pasando de números resumidos a gráficos de líneas de tendencias de datos a lo largo del tiempo. Como puede ver, el uso de TIMESERIES ofrece control total sobre las visualizaciones, la granularidad y los datos promedio en ventanas específicas. Es hora de dar el siguiente paso: utilizar la cláusula 'Dónde'.

5. Utilice la cláusula WHERE

A veces, es posible que desee que su consulta opere en un subconjunto específico de datos NRDB. Por ejemplo, al consultar el tiempo de respuesta promedio de su aplicación, puede usar un atributo llamado transactionType, que especifica si la transacción fue una transacción Web o Non-Web (como un trabajo cron o una tarea en cola). Utilice este ejemplo para crear una consulta que solo devuelva datos para el tipo de transacción Web :

SELECT average(duration)
FROM Transaction
WHERE transactionType='Web'
TIMESERIES

También puede combinar AND y OR para realizar consultas más complejas, utilizando los paréntesis ( y ) para controlar cómo funcionan juntos. Esta consulta muestra el tiempo de respuesta promedio de "transacción web" que fueron más rápidas que 100 ms y tuvieron un código de respuesta de 200 o 302. Observe el uso de paréntesis para controlar el OR.

SELECT average(duration)
FROM Transaction
WHERE transactionType='Web'
AND duration < 0.1
AND (httpResponseCode=200
OR httpResponseCode=302)
TIMESERIES

Hasta ahora, cada consulta que ha realizado ha realizado acciones en todos los datos disponibles en el período de tiempo determinado. Pero también es importante filtrar los datos no deseados. Los ejemplos anteriores son útiles para filtrar un tipo de transacción o cuando ocurre un código de respuesta específico. De manera similar, puede filtrar por una appName, una transacción name específica o incluso un atributo personalizado que haya etiquetado en sus datos. Es hora del paso final del tutorial: usar la consulta facetada.

6. Faceta tu consulta

A menudo, querrás determinar los valores "N principales" agrupados por un atributo específico. En NRQL, haces esto usando FACET. Por ejemplo, puedes consultar las Transaction llamadas más lentas observadas en promedio, agrupadas por nombre. Piense en esto como "facetado por nombre".

SELECT average(duration)
FROM Transaction
FACET name
SINCE 1 day ago

De forma predeterminada, una consulta por facetas devuelve los 10 resultados principales, pero puede personalizar cuántos resultados se devuelven colocando un LIMIT. En este ejemplo, utilice TIMESERIES para recuperar los 5 resultados principales que se muestran en un gráfico de líneas.

SELECT average(duration)
FROM Transaction
FACET name
SINCE 3 hours ago
LIMIT 5
TIMESERIES

Pero tal vez no quieras un gráfico de líneas o quieras una lista más grande de transacciones. Al eliminar TIMESERIES, puede representar un gráfico de barras o circular y puede aumentar el alcance de la lista aumentando LIMIT.

SELECT average(duration)
FROM Transaction
FACET name
SINCE 3 hours ago
LIMIT 20

Finalmente, aquí hay una consulta un poco más compleja que compara la cantidad de transacciones web, desglosadas por aplicación individual que reportan a New Relic:

SELECT count(*)
FROM Transaction
WHERE transactionType='Web'
FACET appName
LIMIT 5
SINCE 6 hours ago
TIMESERIES

Agrupar o "facetar" le permite obtener dimensiones con sus datos. Al aplicar una función de agregación, puede usar FACET para agrupar por cualquier atributo, predeterminado o personalizado, que informe datos de eventos (al igual que la cláusula WHERE ). Recomendamos agregar un atributo personalizado a sus datos o informar un nuevo evento personalizado para permitirle investigar más directamente el conjunto de datos resultante.

Felicitaciones: ¡ha completado el primer tutorial de NRQL! Si ha llegado hasta aquí, ahora conoce los conceptos básicos de la consulta de datos de eventos utilizando NRQL.

¿Que sigue?

¡Tenemos aún más NRQL para que usted explore con tres tutoriales más que cubren conceptos y casos de uso más avanzados! Recomendamos continuar primero con el tutorial sobre cómo procesar sus datos , luego pasar al tutorial sobre cómo avanzar en su panel de control y, finalmente, terminar la serie con nuestro tutorial sobre las funciones NRQL más avanzadas.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.