Sugerencia
Esta lección es parte de un curso que le muestra cómo crear una aplicación New Relic desde cero. Si aún no lo hiciste, consulta la descripción general.
Cada lección del curso se basa en la anterior, así que cerciorar de completar la última lección y presente un modal de confirmación de prueba final antes de comenzar esta.
En este serial, usted está creando una aplicación New Relic completa que ingiere datos de un servicio de demostración que ejecuta una Prueba A/B. La aplicación muestra los datos de la Prueba A/B de formas interesantes para que, en última instancia, puedas elegir si la Versión A o la Versión B es más efectiva para lograr tu objetivo comercial: aumentar la subscripción a boletines informativos de alta calidad.
En tutoriales anteriores, creó gráficos para visualizar sus datos y los organizó para poder usarlos y comprenderlos. También creó un formulario en su aplicación para finalizar su prueba una vez que esté seguro de la versión más efectiva. Sin embargo, hasta ahora no puedes medir qué versión es más efectiva porque tus gráficos estuvieron mostrando datos simulados, como por ejemplo:
const versionASignups = { metadata: { id: 'version-a-newsletter-signups', name: 'Version A', viz: 'main', color: 'blue', }, data: [ { x: 0, y: 0 }, { x: 10, y: 10 }, { x: 20, y: 15 }, { x: 30, y: 5 }, { x: 40, y: 30 }, { x: 50, y: 25 }, ],}
El accesorio data
de un gráfico es útil para proporcionar datos elaborados manualmente como este o incluso datos de terceros reformateados. Pero para muchos de sus gráficos, desea mostrar datos de New Relic en tiempo real. Por ejemplo, Newsletter subscriptions by version debería mostrar los datos de subscripción, que existen en la base de datos de New Relic, NRDB para abreviar.
Para consultar NRDB, primero necesita saber qué datos está buscando. ¿Recuerda su servicio backend de demostración? Bueno, ese servicio informa un evento de subscripción a New Relic cuando un usuario se suscribe a un boletín informativo de su sitio. Puede ver estos eventos de subscripción en New Relic mientras se ejecutan sus servicios de demostración.
Ver evento subscripción en New Relic
Antes de consultar NRDB desde sus gráficos, experimente consultando datos desde la interfaz sitio web de New Relic.
Desde la página de inicio de New Relic , vaya al Data explorer en el menú de navegación superior.
El explorador de datos le permite explorar sus telemetry data:
métrica
evento
logs
trazas
Dado que el backend envía la subscripción al boletín como evento a New Relic, puede verlos en esta vista.
Seleccione Subscription en el menú de Custom events.
Esta consulta NRDB para evento de subscripción totaliza por minuto durante los últimos 30 minutos y muestra esos datos en un gráfico.
Haga clic en Dimensions para ver una lista de los atributos asociados con estos eventos de subscripción.
Puedes filtrar y agrupar eventos de subscripción usando estas dimensiones. Observe la consulta NRQL encima del gráfico. Esto muestra la consulta subyacente del gráfico, que se basa en estas dimensiones.
Haga clic en la dimensión de page-version para ver cómo la consulta cambia a agrupar por FACET page_version
.
El Explorador de datos presenta dos opciones para filtrar y ordenar sus datos:
Selecciones de interfaz de usuario (UI) como la que acaba de realizar
New Relic Query Language (NRQL)
La UI es útil para filtrar datos rápidamente y no requiere que conozca NRQL. Sin embargo, para su aplicación New Relic , debe emplear la consulta NRQL.
Haga clic en la consulta NRQL para navegar al generador de consultas.
Aquí puede ver y editar manualmente la consulta para obtener los datos que necesita.
Actualiza NewsletterSignups
con un NrqlQuery
Antes de comenzar a integrar datos de New Relic en su aplicación NR1, consulte su guía de diseño.
Su aplicación New Relic tiene ocho gráficos en total, incluidos gráficos de líneas, gráficos circulares y gráficos de tablas. Actualmente, cada uno de estos gráficos muestra datos simulados, pero deben mostrar datos reales para que sean útiles. Primero, concentrar en consultar los datos del gráfico superior: Newsletter subscriptions per version.
Con la consulta que creó en el Explorador de datos, ya tiene los datos que necesita para este gráfico.
Detalle técnico
En su consulta, obtiene los totales de subscripción (SELECT count(*) FROM subscriptions
), los agrupa por su versión de página (FACET page_version
) y centra el serial temporal en los últimos 30 minutos (SINCE 30 MINUTES AGO TIMESERIES
).
Explore nuestra documentación para obtener más información sobre la consulta NRQL.
A continuación, aprenderá cómo pasar su consulta NRQL a su tabla de Newsletter subscriptions per version.
Cambie al directorio add-nrql-components/ab-test
del repositorio de trabajos del curso:
$cd nru-programmability-course/add-nrql-components/ab-test
Este directorio contiene el código que esperamos que tenga su aplicación en este punto del curso. Al navegar al directorio correcto al comienzo de cada lección, deja atrás su código personalizado, proteger así de llevar código incorrecto de una lección a la siguiente.
En nerdlets/ab-test-nerdlet/newsletter-signups.js
, actualice el LineChart
en NewsletterSignups
. Elimine los datos simulados y emplee la consulta NRQL que creó en el Explorador de datos:
import React from 'react';import { HeadingText, LineChart, NrqlQuery,} from 'nr1';
const ACCOUNT_ID = 123456 // <YOUR NEW RELIC ACCOUNT ID>
export default class NewsletterSignups extends React.Component { render() { return <div> <HeadingText className="chartHeader"> Newsletter subscriptions per version </HeadingText> <NrqlQuery accountIds={[ACCOUNT_ID]} query="SELECT count(*) FROM subscription FACET page_version SINCE 30 MINUTES AGO TIMESERIES" > { ({ data }) => { return <LineChart data={data} fullWidth />; } } </NrqlQuery> </div> }}
Importante
Cerciórate de reemplazar <YOUR NEW RELIC ACCOUNT ID>
con tu ID de cuenta real de New Relic.
En NrqlQuery
, configuras dos accesorios:
accountIds
: La identificación de la cuenta desde la que realiza la consulta.query
: La consulta a realizar
Con estos, tu aplicación NR1 puede consultar los datos que deseas mostrar en tu gráfico.
Sugerencia
Existe una opción conveniente para usar NRQL para proporcionar datos a sus gráficos, llamada query
. Si prefiere no emplear el componente NrqlQuery
, pruebe con el accesorio query
en su lugar:
<LineChart accountIds={<YOUR NEW RELIC ACCOUNT ID>} query="SELECT count(*) FROM subscription FACET page_version SINCE 30 MINUTES AGO TIMESERIES"/>
Tenga en cuenta que aún debe proporcionar el accountIds
.
Navega hasta la raíz de tu Nerdpack en nru-programmability-course/add-nrql-components/ab-test
.
Genera un nuevo UUID para tu Nerdpack:
$nr1 nerdpack:uuid -gf
Debido a que clonaste el repositorio de trabajos del curso que contenía un Nerdpack existente, necesitas generar tu propio identificador único. Este UUID asigna su Nerdpack a su cuenta New Relic.
Entregue su aplicación localmente:
$nr1 nerdpack:serve
Vaya a https://one.newrelic.com?nerdpacks=local y vea su aplicación en Apps > Your apps.
Newsletter subscriptions per version ahora muestra datos reales de la base de datos de New Relic en lugar de los datos simulados que definiste antes. Observe que su gráfico extrae datos cuando se carga la aplicación, pero no continúa extrayendo datos mientras la aplicación está abierta. Puedes solucionar este problema agregando otro accesorio.
Sugerencia
Si algo no funciona, emplee las herramientas de depuración de su browser para intentar identificar el problema.
Cerciorar:
- Copié el código correctamente de la lección.
- Generó un nuevo UUID
- Reemplazó todas las instancias de
<YOUR NEW RELIC ACCOUNT ID>
en su proyecto con su New Relic ID de cuenta real
Agrega un pollInterval
:
import React from 'react';import { HeadingText, LineChart, NrqlQuery,} from 'nr1';
const ACCOUNT_ID = 123456 // <YOUR NEW RELIC ACCOUNT ID>
export default class NewsletterSignups extends React.Component { render() { return <div> <HeadingText className="chartHeader"> Newsletter subscriptions per version </HeadingText> <NrqlQuery accountIds={[ACCOUNT_ID]} query="SELECT count(*) FROM subscription FACET page_version SINCE 30 MINUTES AGO TIMESERIES" pollInterval={60000} > { ({ data }) => { return <LineChart data={data} fullWidth />; } } </NrqlQuery> </div> }}
Importante
Cerciorar de reemplazar <YOUR NEW RELIC ACCOUNT ID>
con su ID de cuenta real de New Relic.
El pollInterval
es el número de milisegundos entre actualizaciones del gráfico. Cada vez que se actualiza el gráfico, consulta datos nuevos de New Relic. En este caso, actualiza cada minuto.
Rellena tu PieChart
con subscription
Ahora que viste cómo pasar los datos de New Relic a Newsletter subscriptions per version, es momento de pasar a Total subscriptions per version. Estos dos gráficos son similares en que comparan los datos de eventos de subscripción agrupados por versión. Las principales diferencias entre Newsletter subscriptions per version y Total subscriptions per version son:
- Uno es un gráfico de líneas y el otro es un gráfico circular.
- Uno muestra datos de seriales temporales y el otro muestra totales de todos los tiempos.
En nerdlets/ab-test-nerdlet/total-subscriptions.js
, actualice el componente TestDistributions
, eliminando los datos simulados y completando el PieChart
con la misma consulta NRQL que empleó para Newsletter subscriptions per version, pero con diferentes cláusulas TIMESERIES
y SINCE
:
import React from 'react';import { HeadingText, NrqlQuery, PieChart,} from 'nr1';
const ACCOUNT_ID = 123456 // <YOUR NEW RELIC ACCOUNT ID>
export default class TotalSubscriptions extends React.Component { render() { return <div> <HeadingText className="chartHeader"> Total subscriptions per version </HeadingText> <NrqlQuery accountIds={[ACCOUNT_ID]} query="SELECT count(*) FROM subscription FACET page_version SINCE 7 DAYS AGO" pollInterval={60000} > { ({ data }) => { return <PieChart data={data} fullWidth /> } } </NrqlQuery> </div> }}
Importante
Cerciorar de reemplazar <YOUR NEW RELIC ACCOUNT ID>
con su ID de cuenta real de New Relic.
No necesita la cláusula TIMESERIES
porque el gráfico circular solo muestra datos numéricos. No necesita la cláusula SINCE
porque Total subscriptions per version debe mostrar los totales de subscripción de todos los tiempos.
Con su Nerdpack servido localmente, vea su aplicación para ver sus gráficos con datos reales.
Total subscriptions per version ahora muestra los totales de subscripción de todos los tiempos de ambas versiones de su aplicación de demostración.
Sugerencia
Si algo no funciona, emplee las herramientas de depuración de su browser para intentar identificar el problema.
Cerciorar:
- Copié el código correctamente de la lección.
- Generó un nuevo UUID
- Reemplazó todas las instancias de
<YOUR NEW RELIC ACCOUNT ID>
en su proyecto con su New Relic ID de cuenta real
¡Bien hecho! Configuraste unos gráficos para consultar datos de subscripción reales desde la base de datos de New Relic.
Rellenar gráficos con pageView
datos de eventos
Considere los gráficos restantes que todavía usan datos simulados:
- Total de bajas por versión
- Versión A: visitas a la página frente a subscripción
- Versión B: visitas a la página frente a subscripción
- Versión A: vistas de página
- Versión B - Vistas de página
- Pruebas pasadas
Algunos de estos gráficos deben mostrar datos de vistas de página. Afortunadamente, su aplicación de demostración crea un evento personalizado para cada vista de página, como lo hace con la subscripción. Dado que Version A - Page views vs. subscriptions y Version B - Page views vs. subscriptions requieren datos de dos fuentes, ignórelos por ahora y concentrar en Version A - Page views y Version B - Page views.
En page-views.js
, elimine los datos simulados de VersionPageViews
y use un componente NrqlQuery
para proporcionar una consulta:
import React from 'react';import { HeadingText, LineChart, NrqlQuery,} from 'nr1';
const ACCOUNT_ID = 123456 // <YOUR NEW RELIC ACCOUNT ID>
export default class VersionPageViews extends React.Component { render() { return <div> <HeadingText className="chartHeader"> Version {this.props.version.toUpperCase()} - Page views </HeadingText> <NrqlQuery accountIds={[ACCOUNT_ID]} query={`SELECT count(*) FROM pageView WHERE page_version = '${this.props.version}' TIMESERIES`} pollInterval={60000} > { ({ data }) => { return <LineChart data={data} fullWidth />; } } </NrqlQuery> </div> }}
Importante
Cerciórate de reemplazar <YOUR NEW RELIC ACCOUNT ID>
con tu ID de cuenta real de New Relic.
Con su Nerdpack servido localmente, vea su aplicación para ver sus gráficos con datos reales.
En esta nueva consulta, obtienes pageView
evento personalizado en lugar de subscription
evento. También emplea una cláusula WHERE
para filtrar a un page_version
individuo en lugar de un FACET
para agrupar por page_version
.
Sugerencia
Si algo no funciona, emplee las herramientas de depuración de su browser para intentar identificar el problema.
Cerciorar:
- Copié el código correctamente de la lección.
- Generó un nuevo UUID
- Reemplazó todas las instancias de
<YOUR NEW RELIC ACCOUNT ID>
en su proyecto con su New Relic ID de cuenta real
¡Uf, son muchas consultas, pero tu aplicación se ve genial! Ahora estás mostrando datos reales en cuatro gráficos. ¿Recuerda los dos gráficos que ignoró porque requieren datos de dos fuentes?
- Versión A: visitas a la página frente a subscripción
- Versión B: visitas a la página frente a subscripción
Debe manejarlos de forma diferente a como lo hizo con los gráficos con los que estuvo trabajando porque NRQL no tiene ningún método para consultar datos de múltiples fuentes. En la siguiente lección, aprenderá cómo proporcionar datos a estos dos gráficos.
Curso
Esta lección es parte de un curso que le muestra cómo crear una aplicación New Relic desde cero. Continúe con la siguiente lección: Personalice los datos NRQL.