Conseil
Cette leçon fait partie d’un cours qui vous apprend à créer une application New Relic à partir de zéro. Si vous ne l’avez pas déjà fait, consultez la présentation.
Chaque leçon du cours s'appuie sur la précédente, alors assurez-vous d'avoir terminé la dernière leçon, Présentez une modale de confirmation de test de fin, avant de commencer celle-ci.
Dans cette série, vous créez une application New Relic à part entière qui ingère des données à partir d'un service de démonstration qui exécute un test A/B. L'application affiche les données de test A/B de manière intéressante afin que vous puissiez finalement choisir si la version A ou la version B est la plus efficace pour atteindre votre objectif commercial : augmenter les abonnements à des newsletters de haute qualité.
Dans les didacticiels précédents, vous avez créé des graphiques pour visualiser vos données et vous avez organisé ces graphiques afin de pouvoir les utiliser et les comprendre. Vous avez également créé un formulaire dans votre application pour terminer votre test une fois que vous êtes sûr de la version la plus efficace. Jusqu'à présent, vous ne pouvez pas évaluer quelle version est la plus efficace, car vos graphiques affichent des données fictives, telles que :
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 }, ],}
L'accessoire data
d'un graphique est utile pour fournir des données créées manuellement comme celles-ci ou même des données tierces reformatées. Mais pour la plupart de vos graphiques, vous souhaitez afficher les données New Relic en temps réel. Par exemple, Newsletter subscriptions by version doit afficher les données d'abonnement, qui existent dans la base de données de New Relic, NRDB en abrégé.
Pour interroger NRDB, vous devez d'abord savoir quelles données vous recherchez. Vous vous souvenez de votre service backend de démonstration ? Eh bien, ce service signale un événement d’abonnement à New Relic lorsqu’un utilisateur s’abonne à une newsletter depuis votre site. Vous pouvez visualiser ces événements d'abonnement dans New Relic pendant que vos services de démonstration sont en cours d'exécution.
Voir l'abonnement événement dans New Relic
Avant d'interroger NRDB à partir de vos graphiques, essayez d'interroger les données à partir de l'interface Web de New Relic.
Depuis votre page d’accueil New Relic , accédez à Data explorer depuis le menu de navigation supérieur.
Data explorer vous permet d'explorer vos données télémétriques :
metrics
événement
logs
tracer
Étant donné que le backend soumet l'abonnement à la newsletter en tant qu'événement à New Relic, vous pouvez les voir dans cette vue.
Sélectionnez Subscription dans le menu Custom events .
Cette requête NRDB pour les totaux d'événements d'abonnement par minute au cours des 30 dernières minutes et affiche ces données dans un graphique.
Cliquez sur Dimensions pour voir la liste des attributs associés à ces abonnement événement.
Vous pouvez filtrer et regrouper les abonnements événement en utilisant ces dimensions. Notez la requête NRQL au-dessus du graphique. Cela montre la requête sous-jacente du graphique, qui est basée sur ces dimensions.
Cliquez sur la dimension de page-version pour voir la requête changer pour regrouper par FACET page_version
.
L'explorateur de données présente deux options pour filtrer et trier vos données :
Sélections de l'interface utilisateur (UI) comme celle que vous venez de faire
Langage de requête New Relic (NRQL)
L'interface utilisateur est utile pour filtrer rapidement les données et ne nécessite pas de connaître NRQL. Cependant, pour votre application New Relic, vous devez utiliser la requête NRQL .
Cliquez sur la requête NRQL pour accéder au générateur de requêtes.
Ici, vous pouvez afficher et modifier manuellement la requête pour récupérer les données dont vous avez besoin.
Mettre à jour NewsletterSignups
avec un NrqlQuery
Avant de commencer à intégrer les données New Relic dans votre application NR1, consultez votre guide de conception.
Votre application New Relic comporte huit graphiques au total, notamment des graphiques linéaires, des graphiques à secteurs et des graphiques de tableau. Chacun de ces graphiques affiche actuellement des données fictives, mais ils doivent afficher des données réelles pour être utiles. Tout d'abord, concentrez-vous sur l'interrogation des données pour le graphique le plus haut : Newsletter subscriptions per version.
Avec la requête que vous avez créée dans l’explorateur de données, vous disposez déjà des données dont vous avez besoin pour ce graphique.
Détails techniques
Dans votre requête, vous récupérez les totaux d'abonnement (SELECT count(*) FROM subscriptions
), les regroupez par version de page (FACET page_version
) et concentrez la série temporelle sur les 30 dernières minutes (SINCE 30 MINUTES AGO TIMESERIES
).
Explorez notre documentation pour en savoir plus sur les requêtes NRQL .
Ensuite, vous apprendrez à transmettre votre requête NRQL à votre graphique Newsletter subscriptions per version .
Accédez au répertoire add-nrql-components/ab-test
du référentiel de cours:
$cd nru-programmability-course/add-nrql-components/ab-test
Ce répertoire contient le code que nous attendons de votre application à ce stade du cours. En naviguant vers le bon répertoire au début de chaque leçon, vous laissez votre code personnalisé derrière vous, vous protégeant ainsi du transport de code incorrect d'une leçon à l'autre.
Dans nerdlets/ab-test-nerdlet/newsletter-signups.js
, mettez à jour le LineChart
dans NewsletterSignups
. Supprimez les données fictives et utilisez la requête NRQL que vous avez créée dans l'explorateur de données :
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> }}
Important
Assurez-vous de remplacer <YOUR NEW RELIC ACCOUNT ID>
par votre identifiant de compte New Relic actuel.
Dans NrqlQuery
, vous définissez deux accessoires :
accountIds
: L'identifiant du compte à partir duquel vous effectuez la requêtequery
:La requête à effectuer
Grâce à eux, votre application NR1 peut interroger les données que vous souhaitez afficher dans votre graphique.
Conseil
Il existe un accessoire pratique permettant d'utiliser NRQL pour fournir des données à vos graphiques, appelé query
. Si vous préférez ne pas utiliser le composant NrqlQuery
, essayez plutôt la propriété query
:
<LineChart accountIds={<YOUR NEW RELIC ACCOUNT ID>} query="SELECT count(*) FROM subscription FACET page_version SINCE 30 MINUTES AGO TIMESERIES"/>
Gardez à l’esprit que vous devez toujours fournir le accountIds
.
Accédez à la racine de votre Nerdpack à nru-programmability-course/add-nrql-components/ab-test
.
Générez un nouvel UUID pour votre Nerdpack :
$nr1 nerdpack:uuid -gf
Étant donné que vous avez cloné le référentiel de cours qui contenait un Nerdpack existant, vous devez générer votre propre identifiant unique. Cet UUID mappe votre Nerdpack à votre compte New Relic.
Présentez votre demande localement :
$nr1 nerdpack:serve
Accédez à https://one.newrelic.com?nerdpacks=local et affichez votre application sous Apps > Your apps.
Newsletter subscriptions by version affiche désormais les données réelles de la base de données de New Relic plutôt que les données fictives que vous avez définies auparavant. Notez que votre graphique extrait des données lorsque votre application se charge, mais ne continue pas à extraire des données lorsque l'application est ouverte. Vous pouvez résoudre ce problème en ajoutant un autre accessoire.
Conseil
Si quelque chose ne fonctionne pas, utilisez les outils de débogage de votre navigateur pour essayer d'identifier le problème.
Assurez-vous de :
- J'ai copié correctement le code de la leçon
- Générer un nouvel UUID
- Remplacé toutes les instances de
<YOUR NEW RELIC ACCOUNT ID>
dans votre projet par votre identifiant de compteNew Relic actuel
Ajouter 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> }}
Important
Assurez-vous de remplacer <YOUR NEW RELIC ACCOUNT ID>
par votre identifiant de compte New Relic actuel.
pollInterval
est le nombre de millisecondes entre les actualisations du graphique. Chaque fois que le graphique est actualisé, il demande de nouvelles données à New Relic. Dans ce cas, vous actualisez toutes les minutes.
Remplissez votre PieChart
avec subscription
Maintenant que vous avez vu comment transmettre les données New Relic à Newsletter subscriptions per version, il est temps de passer à Total subscriptions per version. Ces deux graphiques sont similaires dans la mesure où ils comparent les données d'abonnement événement regroupées par version. Les principales différences entre Newsletter subscriptions per version et Total subscriptions per version sont :
- L'un est un graphique linéaire et l'autre est un graphique à secteurs
- L'un affiche les données de séries chronologiques et l'autre affiche les totaux de tous les temps
Dans nerdlets/ab-test-nerdlet/total-subscriptions.js
, mettez à jour le composant TestDistributions
, en supprimant les données fictives et en remplissant le PieChart
avec la même requête NRQL que vous avez utilisée pour Newsletter subscriptions per version mais avec des clauses TIMESERIES
et SINCE
différentes :
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> }}
Important
Assurez-vous de remplacer <YOUR NEW RELIC ACCOUNT ID>
par votre identifiant de compte New Relic actuel.
Vous n’avez pas besoin de la clause TIMESERIES
car le graphique à secteurs affiche uniquement des données numériques. Vous n'avez pas besoin de la clause SINCE
car Total subscriptions per version doit afficher les totaux d'abonnements de tous les temps.
Avec votre Nerdpack servi localement, visualisez votre application pour voir vos graphiques servir des données réelles.
Total subscriptions per version affiche désormais le total des abonnements de tous les temps des deux versions de votre application de démonstration.
Conseil
Si quelque chose ne fonctionne pas, utilisez les outils de débogage de votre navigateur pour essayer d'identifier le problème.
Assurez-vous de :
- J'ai copié correctement le code de la leçon
- Générer un nouvel UUID
- Remplacé toutes les instances de
<YOUR NEW RELIC ACCOUNT ID>
dans votre projet par votre identifiant de compteNew Relic actuel
Bien joué! Vous avez configuré certains graphiques pour rechercher des données d'abonnement réelles à partir de la base de données de New Relic.
Remplir les graphiques avec pageView
données d'événement
Considérez les graphiques restants qui utilisent encore des données fictives :
- Total des désabonnements par version
- Version A - Pages vues vs. abonnement
- Version B - Pages vues vs. abonnement
- Version A - Pages vues
- Version B - Pages vues
- Tests passés
Certains de ces graphiques doivent afficher les données de consultation des pages. Heureusement, votre application de démonstration crée un événement personnalisé pour chaque page vue comme elle le fait pour l'abonnement ! Étant donné que la version A - Pages vues vs. abonnement et la version B - Pages vues vs. abonnement nécessitent des données provenant de deux sources, ignorez-les pour l'instant et concentrez-vous sur la version A - Pages vues et la version B - Pages vues.
Dans page-views.js
, supprimez les données fictives de VersionPageViews
et utilisez un composant NrqlQuery
pour fournir une requête :
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> }}
Important
Assurez-vous de remplacer <YOUR NEW RELIC ACCOUNT ID>
par votre identifiant de compte New Relic actuel.
Avec votre Nerdpack servi localement, visualisez votre application pour voir vos graphiques servir des données réelles.
Dans ces nouvelles requêtes, vous récupérez pageView
événement personnalisé au lieu de subscription
événement. Vous utilisez également une clause WHERE
pour filtrer sur un page_version
particulier plutôt qu'un FACET
pour regrouper par page_version
.
Conseil
Si quelque chose ne fonctionne pas, utilisez les outils de débogage de votre navigateur pour essayer d'identifier le problème.
Assurez-vous de :
- J'ai copié correctement le code de la leçon
- Générer un nouvel UUID
- Remplacé toutes les instances de
<YOUR NEW RELIC ACCOUNT ID>
dans votre projet par votre identifiant de compteNew Relic actuel
Ouf, c'est beaucoup de requêtes, mais votre application a l'air géniale ! Vous affichez désormais des données réelles dans quatre graphiques. Vous vous souvenez des deux graphiques que vous avez ignorés parce qu’ils nécessitent des données provenant de deux sources ?
- Version A - Pages vues vs. abonnement
- Version B - Pages vues vs. abonnement
Vous devez les gérer différemment de la manière dont vous avez traité les graphiques, car NRQL n'a aucune méthode pour interroger les données à partir de plusieurs sources. Dans la prochaine leçon, vous apprendrez à fournir des données à ces deux graphiques.
Cours
Cette leçon fait partie d’un cours qui vous apprend à créer une application New Relic à partir de zéro. Passez à la leçon suivante : Personnaliser les données NRQL.