• /
  • EnglishEspañolFrançais日本語한국어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

Avance en su dashboard con NRQL

|View as Markdown (English)

Ver consultas de ejemplo y explicaciones en el contexto de sus propios datos puede ayudarle a transformar datos con conceptos más avanzados, como la tasa de cambio y la agregación. En este tutorial, ampliará los conceptos que se encuentran en conceptos básicos del uso de NRQL y control de sus datos con NRQL con conceptos más avanzados.

Aprenderá cómo mejorar su dashboard mediante el uso de facetas por caso, funciones de agregación avanzadas, la palabra clave EXTRAPOLATE , funciones de agregación de filtrado y valores anulados. Específicamente, aprenderá a utilizar lo siguiente:

  • Funciones de agregación avanzadas como filter(), apdex(), rate(), funnel() y histogram().
  • La cláusula EXTRAPOLATE.
  • FACET CASES() para valores de coincidencia de atributo y grupo.
  • filter() para combinar tipos de eventos.
  • Overrides de valores.

Es posible que no utilice estas funciones y características en todos los dashboard, pero resultan útiles al abordar problemas y requisitos específicos.

Usar agregador avanzado

Calcular tasa

Comencemos con la función rate(). Permite visualizar la frecuencia de eventos a lo largo del tiempo, lo que ayuda a identificar patrones dentro de períodos más cortos de un intervalo de tiempo mayor.

En el siguiente ejemplo, puede ver la frecuencia promedio de solicitudes cada 5 minutos durante la última hora en comparación con la frecuencia promedio de 5 minutos de la hora anterior. Observe que la consulta usa SINCE 1 hour ago. Esta es la ventana de tiempo general en la que estás calculando la tarifa.

SELECT rate(count(*), 5 minutes)
FROM Public_APICall
SINCE 1 hour ago
COMPARE WITH 1 hour ago
A screenshot of a query using Since and Compare to capture data within a time range

Puede utilizar rate() para calcular solicitudes por minuto o solicitudes por segundo configurando el intervalo de tiempo en 1 minuto o 1 segundo.

Comprender el comportamiento del usuario final con gráficos embudos

Los gráficos de embudos rastrean la aparición del valor de un atributo en múltiples registros, y muchas personas los usan para comprender el comportamiento del usuario final. Puede usarlos a menudo para visualizar el éxito con el que los usuarios avanzan por rutas definidas, y especialmente al usar atributos personalizados.

Puede usar la función de agregador funnel() para visualizar cuántos usuarios visitan una página específica antes de pasar a otra página. El primer parámetro es el atributo de identificación para las entradas únicas que está contando. En este caso, New Relic asigna y retiene un atributo session ID para cada usuario en su sitio (si el usuario tiene las cookies habilitadas). También puede establecer su propio ID de sesión usando atributos personalizados.

El parámetro restante determina cómo se calcula cada paso de los embudos, escrito en el formato , WHERE attr OP value. En este caso, tienes dos: uno que muestra cuántas sesiones de usuario visitaron la página de inicio, luego otro que muestra cuántas de ellas también navegaron a otras páginas. Pruebe una consulta como esta con sus propios datos y vea lo que obtiene.

SELECT funnel(awsAPI, WHERE http.url LIKE '%.amazonaws.com', WHERE http.url LIKE '%.us-west%.amazonaws.com')
FROM Public_APICall
SINCE 1 week ago
UNTIL now
A screenshot displaying the funnel charts functionality

filtros agregadores

filter() es una función versátil que le permite agregar múltiples puntos de datos en una sola consulta, lo que ofrece más control sobre qué eventos devuelve el resultado de la función. En este ejemplo, utiliza filter() para devolver los valores separados de las transacciones totales, las transacciones web totales y las transacciones no web totales:

SELECT count(*) AS 'All Transactions', filter(count(*), WHERE awsAPI = 'dynamodb') AS 'DynamoDB', filter(count(*), WHERE awsAPI = 'sqs') AS 'SQS'
FROM Public_APICall SINCE 1 day ago
A screenshot displaying the aggregator filter functionality

Dado que devuelve un número, también puede realizar operaciones matemáticas con los resultados de la consulta. Por ejemplo, puede dividir el total de API de llamadas por todas las API de llamadas para ver qué porcentaje de ellas eran DynamoDB:

SELECT filter(count(*), WHERE awsAPI = 'dynamodb') / count(*) AS 'Percent of APIs that are DynamoDB'
FROM Public_APICall
SINCE 1 day ago
A screenshot showing the aggregator filters divided

Histograma

Los histogramas muestran la distribución de los datos en intervalos de frecuencia en lugar de como un único promedio. Esto le ayuda a comprender la agrupación de puntos de datos por frecuencia, no solo por promedios. La función histogram() toma tres argumentos:

  1. El atributo que desea trazar (como la duración).

  2. El valor máximo del rango que desea considerar (como "1" durante 1 segundo o menos).

  3. La cantidad de depósitos en los que desea agrupar los datos. En este ejemplo, creará un gráfico histogram() para todos los valores de duración entre 0 y 1 segundo, agrupándolos en períodos de 50 ms. Para ello, especifique "20" como número de depósitos. Todas las duraciones superiores a 1 segundo se agrupan en el último segmento.

    SELECT histogram(duration, 1, 20)
    FROM Public_APICall
    SINCE 1 day ago
    A screenshot showing the histogram functionality

Apdex

La función apdex() calcula una puntuación Apdex sobre cualquier valor numérico (como la duración). Puede calcular Apdex para una o más transacciones específicas para tener en cuenta los valores de atributos personalizados. Incluso puede proporcionar su propio valor de Apdex-T sin interferir con la configuración de la aplicación. En este ejemplo, proporciona a la función un atributo de "duración" y un valor de Apdex-T de 0,01, informándolo como "Apdex de duración":

SELECT apdex(duration, 0.1) AS 'Apdex Of Duration'
FROM Public_APICall
SINCE 1 week ago
A screenshot showing the apdex functionality

También puede agregar el operador TIMESERIES para graficar los datos a lo largo del tiempo. Observe que esto también grafica los umbrales de Apdex satisfecho, tolerante y frustrado.

SELECT apdex(duration, 0.1) AS 'Apdex Of Duration'
FROM Public_APICall
SINCE 1 week ago
TIMESERIES
A screenshot showing an apdex time series

Ahora ha explorado un conjunto completamente nuevo de visualizaciones con funnel() y histogram(). También aprendió cómo filter() puede ayudarle a ser más específico en la consulta con las cláusulas WHERE y cómo rate() puede mostrar la tasa de un atributo a lo largo del tiempo.

Estas consultas se basan en su conocimiento de NRQL. Apdex es un estándar de la industria y se aplica a muchos escenarios. Los embudos pueden rastrear el progreso a través de las rutas deseadas, mientras que los histogramas visualizan la distribución de los datos. Finalmente, los filtros le permiten acotar los valores devueltos con precisión. A continuación, aprenderá sobre EXTRAPOLATE.

Utilice la extrapolación para grandes cantidades de datos

La base de datos de New Relic (NRDB) recibe y procesa grandes cantidades de datos todos los días. Cuando APM registra una gran cantidad de datos de eventos, los agentes de New Relic implementan una técnica de muestreo para continuar recopilando datos significativos mientras reducen el impacto potencial en las aplicaciones. Por lo general, esto solo sucede cuando un solo evento en una aplicación o servicio maneja volúmenes extremadamente altos de requests.

Si tiene varios agentes distribuidos en varias instancias de un servicio con equilibrio de carga, es posible que nunca llegue a observar este límite. Veamos qué puede hacer cuando esto sucede. El operador EXTRAPOLATE le indica a New Relic que compense matemáticamente los efectos del muestreo, lo que permite devolver resultados que representen con mayor precisión la actividad en el sistema. Puede almacenar un valor adicional para registrar cuántos eventos similares ocurrieron por encima del límite, lo que le permite devolver una estimación que tenga en cuenta los datos no muestreados.

SELECT count(*)
FROM Transaction
SINCE 60 minutes ago
FACET appName
TIMESERIES 1 minute
EXTRAPOLATE
A screenshot showing the extrapolate functionality

Podría pensar que puede llegar al límite al hacer esto. Intente eliminar EXTRAPOLATE de la consulta y vea si su recuento cambia. Si no es así, lo más probable es que no hayas alcanzado el límite.

Cuando incluye EXTRAPOLATE en una consulta, calculamos la relación entre el evento informado y el evento total. Luego usamos esta relación para extrapolar una aproximación de datos no muestreados. Tenga en cuenta que sólo algunas consultas admiten este uso. Cuando se incluye en una consulta NRQL que no la admite o no utiliza datos de muestra, no tiene ningún efecto.

Los datos homogéneos como el rendimiento aprovechan al máximo la función EXTRAPOLATE. Tiene menos efecto al intentar extrapolar un recuento de cosas distintas (como uniqueCount() o uniques()). Por lo tanto, EXTRAPOLATE solo funciona con consultas NRQL que usan una de las siguientes funciones de agregador:

  • apdex
  • average
  • count
  • histogram
  • sum
  • percentage
  • rate
  • stddev

Una vez que EXTRAPOLATE haya terminado, pasemos al uso de casos facetados.

Usar casos de facetas

Como aprendió anteriormente, FACET segmenta los datos y le ayuda a entenderlos desde perspectivas agrupadas de manera diferente (como ver el tiempo de respuesta promedio en función de diferentes códigos de respuesta). Cuando utiliza FACET, NRDB organiza los datos en grupos según los valores de los atributos proporcionados. Pero ¿qué pasaría si quisiera agrupar diferentes valores, como los códigos de respuesta HTTP 200 y 201?

FACET CASES() resuelve este problema al permitirle elegir cómo se dividen los grupos de facetas. El operador toma cualquier número de parámetros en el formato WHERE attr OP value. En el siguiente ejemplo, clasifica todas las transacciones con http.url que comienzan con "amazon", "google" y "microsoft" en un depósito. También puede hacer esto para cosas como códigos de respuesta de error para agrupar nuestros datos de manera que aumenten la legibilidad y nos ayuden a comprender lo que sucede en nuestras aplicaciones.

SELECT count(*)
FROM Public_APICall
FACET CASES(WHERE http.url LIKE '%amazon%', WHERE http.url LIKE '%google%', WHERE http.url LIKE '%microsoft%')
A screenshot showing the facet cases functionality

Como puede ver, estas agrupaciones tienen valor, pero es posible que tenga dificultades para leerlas. Vamos a limpiarlas utilizando algo que aprendimos en un tutorial anterior:

SELECT count(*)
FROM Public_APICall
FACET CASES(WHERE http.url LIKE '%amazon%' AS 'Amazon', WHERE http.url LIKE '%google%' AS 'Google', WHERE http.url LIKE '%microsoft%' AS 'Microsoft')
A screenshot showing the grouping functionality of facet cases

FACET CASES() le permite emparejar y agrupar atributos con valores diferentes que desea combinar. Esta funcionalidad tiene muchos usos y se vuelve aún más útil cuando etiqueta datos personalizados en sus datos de transacción. Esto le permite una mayor granularidad y control al navegar y agrupar datos. A continuación, profundizará en el filtrado, esta vez por tipo de evento.

Filtrar por tipo de evento

Ahora explorará algo de lo que pocos clientes de New Relic son conscientes: ¡filtrar por tipos de eventos! Hasta ahora, ha realizado consultas que extraen datos de una sola fuente. Pero ¿qué sucede si desea trazar 2 puntos de datos almacenados como dos tipos de eventos diferentes? La consulta de datos de NRDB no tiene límites en un solo tipo de evento, y puede consultar desde diferentes tipos de eventos separándolos con comas.

SELECT count(*) AS 'Combined Events'
FROM NrdbQuery, NrDailyUsage
SINCE 1 day ago
A screenshot showing the filter event type functionality

Para que esto sea aún más útil, la función eventType() le indica de qué tipo de evento proviene el registro. Puede utilizar esto para controlar la salida de datos. En este ejemplo, puede ver el número total de eventos Transaction y PageView combinados, así como los totales solo de Transaction y PageView.

SELECT count(*) AS 'Combined Events', filter(count(*), WHERE eventType() = 'PageView') AS 'Page Views', filter(count(*), WHERE eventType()='Transaction') AS 'Transactions'
FROM Transaction, PageView
SINCE 1 day ago
A screenshot showing the event type functionality with transactions and pageview

Veamos esto con más detalle: count(*) muestra el número total de eventos Transaction y PageView . Sin embargo, puedes usar la función agregador filter() que aprendiste recientemente para hacer algo único. La consulta tiene WHERE eventType()='PageView', que invoca la función de filtro para observar el tipo de evento como parte del conjunto de resultados total. Luego filtra para mostrar solo esos eventos específicos. Incluso puedes agregar TIMESERIES para visualizar 2 puntos de datos directamente comparables en un gráfico lineal.

SELECT count(*) AS 'Combined Events', filter(count(*), WHERE eventType() = 'PageView') AS 'Page Views', filter(count(*), WHERE eventType()='Transaction') AS 'Transactions'
FROM Transaction
SINCE 1 day ago
TIMESERIES max
A screenshot showing the event type functionality with count and time series

Ahora ha localizado, devuelto y graficado datos de dos tipos de eventos diferentes. Este ejemplo muestra cómo NRQL le permite navegar por cualquier dato necesario. No se requieren sentencias join complejas. A continuación, aprenda a usar los valores de override.

Anular valores

Contar valores NULL

A veces, los datos no se reportan en el formato que necesita. Por ejemplo, los números enteros pueden devolverse como cadenas cuando los necesita como enteros para realizar operaciones matemáticas. O bien, un resultado NULL puede representar 0 en los datos. NRQL proporciona funciones para manejar estos casos.

NULL Los valores del atributo pueden aparecer tanto en datos personalizados como listos para usar. Cuando utiliza un agregador como count() y average(), NRQL elimina automáticamente NULL valores del cálculo y solo realiza la función en eventos sin NULL valores. NRQL le permite tener en cuenta valores NULL inesperados en los cálculos mediante la cláusula OR value . Por ejemplo, si desea asegurarse de que los valores NULL para un atributo cartValue cuenten como 0, puede utilizar cartValue OR 0 en su consulta.

En este ejemplo, ejecutando count() en "http.url" sólo cuenta el número de veces "http.url" tiene un valor. Pero si agrega OR 'Null' a la consulta, puede contar todas las transacciones donde "http.url" existe, y también aquellos con un valor NULL .

SELECT count(duration) AS 'Events With Durations', count(http.url OR 'Null') AS 'Events With and Without URL'
FROM Public_APICall
SINCE 1 day ago
A screenshot showing the null values functionality

¡Casi has aprendido todo lo que necesitas para ayudarte a avanzar en tu dashboard! A continuación, aprenderá a utilizar la coerción.

Coerción

NRQL no aplica coerción automáticamente. Esto significa que tratamos un flotante almacenado como una cadena como lo haríamos con cualquier otra cadena, y no puedes usarlos con funciones matemáticas como sum() o average(). Para anular este comportamiento, utilice boolean() o numeric() para convertir argumentos a valores booleanos o numéricos. En este ejemplo, una función average() en "duración" no proporciona ningún valor ya que este atributo es una cadena. Pero si convierte el atributo en un número usando numeric(duration), podrá usar la función average() con éxito.

SELECT average(numeric(duration)) AS 'Ensuring stored value is treated as numeric', average(duration) AS 'Non-Converted Attribute'
FROM Public_APICall
SINCE 1 day ago
A screenshot showing the coercion functionality

Otro ejemplo común son los valores BOOLEAN (TRUE o FALSE), que a menudo se formatean incorrectamente como cadenas. Cuando esto sucede, puede cambiar la forma en que el origen envía los datos para convertirlos en un booleano adecuado. O bien, puede usar la función boolean(). La siguiente consulta de ejemplo devuelve el mismo resultado, pero solo porque usa un valor que el agente envía como BOOLEAN. Si el atributo fuera una cadena "TRUE", boolean() lo convertiría a un formato booleano adecuado, lo que permitiría que la consulta se ejecute según lo previsto.

SELECT count(boolean(sampleDataSet)), count(sampleDataSet)
FROM Public_APICall
SINCE 24 hours ago
A screenshot showing the coercion functionality with the boolean function

También puede convertir valores booleanos y numéricos en cadenas utilizando la función string() . Con valores numéricos como números de punto flotante, puede utilizar el argumento opcional precision para limitar el número de decimales de la cadena. Esta consulta devuelve el valor de duración como una cadena limitada a tres decimales.

SELECT string(duration, precision: 3)
FROM Public_APICall
SINCE 24 hours ago
A screenshot showing the coercion functionality with precision

Ahora puede controlar los formatos de los datos y decirle a NRQL cómo quiere que actúe. NRQL opera de la manera que consideramos más lógica, pero si eso no se adapta a su escenario único, puede usar las funciones exploradas en esta lección para hacer un override de esos valores. Solo le queda una cosa por aprender: la concatenación de cadenas.

Utilice la concatenación de cadenas para añadir argumentos

Puede haber algunos casos en los que necesite agregar o anteponer texto al valor devuelto de un atributo. Puede lograr esto usando la función concat(). Puede proporcionar hasta 20 argumentos para que la función concat() los concatene en una cadena.

SELECT concat('The duration of ', http.url, ' is ', duration, ' seconds')
FROM Public_APICall
A screenshot showing the concatenation functionality

Puede limitar el número de decimales que utiliza para cualquier número de punto flotante en los valores del atributo concatenado. Para hacer esto, use el argumento opcional precision: como último valor. En este ejemplo, agrega una 's' para indicar segundos y limita el valor a 3 decimales.

SELECT http.url, concat(duration, 's', precision: 3)
FROM Public_APICall
A screenshot showing the concatenation functionality with precision

New Relic muestra automáticamente los valores que comienzan con http(s) como enlaces en los que puede hacer clic para abrir una nueva página, lo que significa que puede crear integraciones con soluciones donde una URL dinámica puede abrir una página relacionada con una entidad. El siguiente ejemplo demuestra una URL de ejemplo donde establece los valores de los parámetros de consulta mediante los valores de los atributos.

SELECT http.url, concat('https://www.example.com/?appId=', api, '&error=', error) AS 'URL'
FROM Public_APICall
A screenshot showing the concatenation functionality with a URL

Puede utilizar la función concat() para combinar valores, como una ciudad y un país para la ubicación, y anteponer o agregar cadenas adicionales para presentar los datos que necesite.

En este tutorial, exploró la funcionalidad avanzada de NRQL. Estas habilidades se aplican a muchos escenarios de NRQL del mundo real.

Ahora ha completado el 3.er tutorial de NRQL. Cuando esté listo, el siguiente y último tutorial de esta serie cubre características más avanzadas: funciones avanzadas de NRQL.

Copyright © 2026 New Relic Inc.

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