Au jour le jour, la gestion d’une entreprise de logiciels consiste en grande partie à poser des questions, à y répondre et à essayer de prendre les bonnes décisions en fonction de celles-ci..
Certaines des questions sont techniques, telles que "Quel est le navigateur Web le plus populaire parmi nos clients bien rémunérés cette semaine?" D'autres, telles que "Quelles sont les fonctionnalités les plus populaires de notre application?", Vous guident lorsque vous essayez de planifier où vos ressources de développeur font la plus grande différence.
Parfois, il n’ya pas de bonne réponse, mais le plus souvent, ce qui vous sépare d’une décision éclairée est tout simplement le manque de données de qualité..
New Relic Insights est un Analyse de performance avancée (APA) conçu pour vous aider à répondre à ces questions (et à bien d’autres) liées aux affaires. Pour cela, il combine des mesures de performance avec des paramètres métier et applicatifs pertinents, le rendant ainsi disponible pour interroger, combiner et visualiser de manière élégante..
Dans le passé, des spécialistes de la recherche sur les données ont effectué des recherches de ce type au moyen de requêtes et de scripts complexes utilisant des données historiques. Maintenant, avec Insights, vous peut exploiter des transactions proches du temps réel en utilisant des données réelles provenant de visiteurs réels.
Ce tutoriel est une introduction pratique à l'utilisation de New Relic Insights dans un environnement d'application réel. La meilleure façon de faire l'expérience et d'apprendre Insights est de l'essayer vous-même et d'expérimenter. Donc, au lieu de passer beaucoup de temps à la théorie, nous allons directement explorer l'outil, étape par étape, pour en apprendre davantage au fur et à mesure..
Nous allons commencer par examiner brièvement l’installation de New Relic Insights. Ensuite, nous allons creuser dans les données: comment les interroger, comment les visualiser et comment instrumenter votre code pour transmettre certains paramètres spécifiques à l'application. Enfin, nous utiliserons ce que nous avons appris et créerons un tableau de bord du support client que vous pourrez utiliser pour identifier rapidement les problèmes et aider vos clients à résoudre leurs problèmes avec votre application..
Une fois le didacticiel terminé, vous pourrez explorer les données dans New Relic Insights et les utiliser pour créer des tableaux de bord permettant de présenter des informations pertinentes pour les différents acteurs de votre organisation, de la gestion à l'ingénierie..
Une compréhension de base du développement logiciel, PHP et SQL vous aidera à parcourir ce didacticiel. Je vais utiliser une application personnelle à titre d'exemple, mais la plupart de ce que nous ferons s'appliquera à peu près à n'importe quelle entreprise basée sur le Web. Donc, pour tirer le meilleur parti du didacticiel, je vous suggère de choisir votre propre application et de l’utiliser pour tester les requêtes et les configurations de tableau de bord au fur et à mesure de leur exécution..
Si vous utilisez déjà les outils de surveillance de New Relic, Commencer avec Insights est simple. L'application collecte ses données à partir d'autres produits New Relic tels que APM et Browser. Aucune autre installation n'est donc nécessaire. Cliquez simplement sur le Insights élément de menu dans la barre de menu Nouvelle relique et commencez à l'utiliser pour explorer vos données.
Si vous êtes un nouvel utilisateur, commencez par vous inscrire à un compte utilisateur New Relic. Insights n’est pas disponible en version gratuite, mais la période d’essai gratuite de 14 jours est parfaite pour l’essayer..
Après avoir créé votre compte, vous devez installer l'outil de surveillance APM sur votre serveur. J'ai décrit en détail les étapes d'installation de l'outil dans un précédent tutoriel sur les nouvelles alertes de relique. Suivez les instructions d'installation de ce tutoriel puis, avec New Relic collectant les informations de votre application, revenez à ce tutoriel et passez à l'étape suivante..
La première chose que vous voyez lorsque vous commencez à utiliser New Relic Insights est le Question page.
Au début, avec une boîte de recherche vous regardant en haut de la page, cette page peut sembler un peu intimidante. Cependant, une fois que vous savez par où commencer, vous serez au courant en un rien de temps.
Pour vous donner une idée des données disponibles dans Insights, commençons par exécuter votre première requête..
Dans la zone de requête en haut de la page, écrivez la requête suivante:
SELECT count (*) FROM PageView SINCE il y a 1 jour
Cette requête vous indique le nombre de PageView événements enregistrés au cours des dernières 24 heures.
Comme vous pouvez le constater à partir de la requête ci-dessus, NRQL est très similaire à SQL, avec quelques limitations, ainsi que de nombreuses fonctions et mots-clés spécifiques à New Relic. Dans la suite de ce didacticiel, vous verrez un certain nombre de requêtes différentes, mais si, à tout moment, vous devez rechercher les spécificités du langage de requête, vous pouvez également consulter la référence NRQL..
Cliquez sur Courir exécuter la requête et voir ses résultats.
Vous avez maintenant exécuté votre première requête NRQL. Ensuite, vous voudrez probablement vous familiariser avec les données que New Relic met à votre disposition pour vos requêtes..
Une solution consiste simplement à essayer d’écrire une autre requête. La boîte de requête est fournie avec la saisie semi-automatique. Il s'agit donc d'un moyen pratique de fouiller et de voir quels types de résultats découlent de vos requêtes..
Une autre option consiste à explorer les données brutes.
L'exploration des données stockées dans Insights est un bon moyen de connaître les champs de données disponibles pour vos requêtes et de mieux comprendre leurs valeurs possibles..
Pour cela, cliquez sur Explorateur de données dans le menu de gauche.
Dans l'écran suivant, vous aurez à choisir le type de données que vous souhaitez parcourir.
La liste affiche uniquement les types d'événements pour lesquels des données sont disponibles dans votre compte. Dans ce cas,, Transaction et PageView.
Voici une liste complète des types d'événements fournis par Insights:
Comme beaucoup de ces types d'événements dépendent de fonctionnalités plus avancées de New Relic, nous ne les étudierons pas dans ce tutoriel. Au lieu de cela, nous allons continuer avec les deux premiers: Transaction et PageView.
Cliquer sur PageView.
le PageView Explorer vous montre une liste de récents PageView les événements de votre application. Chaque ligne représente la vue d'une seule page d'un utilisateur réel. N'oubliez pas de faire défiler la page vers la droite; à moins que vous n'ayez un très grand écran, vous constaterez qu'il y a plus de champs disponibles que ne peuvent en contenir l'écran.
Regardez aussi le Transaction Les données.
Ensuite, grâce à une compréhension générale des données disponibles dans Insights, utilisons cet outil pour créer un tableau de bord efficace permettant un accès facile aux informations permettant de rendre votre travail de support client plus rapide et plus facile..
Lorsque vous recevez un rapport de bogue ou une demande d'aide d'un client, le plus souvent, la première chose à faire est de demander plus d'informations. Le navigateur utilisé, les messages d'erreur possibles et les actions à l'origine de l'erreur sont tous des morceaux du casse-tête que les utilisateurs pensent rarement à inclure dans leurs e-mails..
Avec l'aide de New Relic Insights, vous pouvez utiliser les données de votre serveur pour ignorer cette étape et fournir une meilleure expérience client tout en rendant votre travail de développeur moins frustrant.!
Dans le reste du didacticiel, nous construirons un tableau de bord simple pour le support client qui vous permettra de le faire, sans fouiller dans les journaux du serveur..
UNE Tableau de bord dans Insights est un ensemble de widgets ou de graphiques contenant des informations personnalisées sur les performances de votre application, les actions de vos utilisateurs ou une combinaison de celles-ci. Leur construction nécessite une certaine compréhension de la technologie sous-jacente, mais une fois prête, elles peuvent être facilement utilisées par des personnes non techniques, telles que des responsables, pour explorer les métriques du produit..
Pour des collections plus complexes de graphiques et de widgets, vous pouvez créer un Application de données, une collection de tableaux de bord liés les uns aux autres pour former une expérience semblable à celle d'une application.
Un tableau de bord de support client est susceptible de s'agrandir à l'avenir, à mesure que vous y ajoutez de plus en plus d'éléments. C'est pourquoi il est judicieux de commencer à créer le tableau de bord directement à l'intérieur de celui-ci..
D'abord, cliquez sur Applications de données sur le menu de gauche. Comme aucune application de données n'est encore configurée, l'écran suivant apparaît:
Cliquer sur Créer une application de données pour créer votre application de données.
Une fenêtre contextuelle permettant de saisir les informations de l'application s'ouvre au milieu de la page:
Remplissez les informations sur votre nouvelle application: Icône, Titre (par exemple "Assistance clientèle"), et La description.
N'oubliez pas qu'il s'agit du niveau supérieur: dans l'application, vous pourrez créer un nombre quelconque de tableaux de bord. Vous pourrez également modifier ces paramètres ultérieurement, ne vous inquiétez donc pas trop à ce stade..
Une fois que vous avez rempli les champs de données, cliquez sur Créer.
Vous avez maintenant créé une application. Insights a également ajouté automatiquement un tableau de bord vide. Donnez un nom au tableau de bord (par exemple, "Vue d'ensemble") en modifiant le champ de texte de gauche qui dit maintenant Sans titre. Vous pouvez également choisir une icône descriptive dans le menu déroulant situé à gauche si vous le souhaitez..
Le tableau de bord semble vide, ajoutons-y du contenu..
Remplir un nouveau tableau de bord avec des informations utiles sur les utilisateurs et leur comportement lorsqu'ils interagissent avec vos applications commence par l'écriture d'une requête NRQL. Demandez-vous ce que vous (ou la personne utilisant ce tableau de bord) voudrez savoir sur les performances de l'application. Puis écrivez une requête pour collecter ces informations.
Commençons par une ventilation des navigateurs Web utilisés par vos visiteurs..
Tapez la requête suivante dans la zone de requête en haut de la page:
SELECT uniqueCount (session) de PageView FACET userAgentName SINCE Il y a 1 semaine
Cette requête:
session
est l'attribut de la clé de session New Relic d'un utilisateur, qui dure jusqu'à ce que l'utilisateur ferme la fenêtre du navigateur.. uniqueCount
est une fonction NRQL qui peut être utilisée pour obtenir le nombre de valeurs uniques enregistrées pour un attribut.FACETTE
mot-clé, qui prend un seul paramètre, le nom de l'attribut pour regrouper les données par (userAgentName
). PUISQUE
mot-clé définit le début d'une plage horaire et accepte la date spécifiée dans un large éventail de formats différents, par exemple, Il y a 5 minutes
, il y a 6 heures
, ou HIER
.Cliquez sur Courir pour exécuter la requête. Les résultats apparaissent juste en dessous de la boîte de recherche:
Cela reste similaire à ce que nous avons vu en première page lorsque nous avons lancé notre première requête. Maintenant, cependant, nous allons stocker la requête sur le tableau de bord pour nous épargner le problème de l'exécuter manuellement chaque fois que nous voulons connaître ses résultats..
En haut des résultats, vous trouverez trois onglets pour choisir la présentation des résultats..
Cliquez sur le second pour afficher la ventilation du navigateur sous forme d'histogramme..
Type A Titre pour le graphique, et une description dans le Remarques terrain si vous aimez.
Puis clique Ajouter à ce tableau de bord.
Voilà, le premier widget de ce tableau de bord.
Vous pouvez redimensionner le widget en le faisant glisser depuis le triangle bleu situé dans le coin inférieur droit de la zone, ou le déplacer sur le canevas en le faisant glisser..
Nous approfondirons bientôt votre application et apporterons des données spécifiques à cette application dans notre tableau de bord Insights. Mais avant d’y aller, jouons un peu plus avec les données que nous avons, en ajoutant quelques widgets de tableau de bord supplémentaires.
En haut à droite de la Panne du navigateur widget que vous venez d'ajouter, vous trouverez trois icônes.
Cliquez sur celui du milieu pour ouvrir la requête du widget à modifier.
Outre la modification de la requête d'un widget, il s'agit d'un bon moyen de passer d'une requête à son suivi naturel. Par exemple, maintenant que vous savez que Safari est le navigateur le plus populaire parmi les visiteurs du site, vous pouvez consulter la version du navigateur utilisée par les visiteurs..
Pour récupérer ces informations, éditez la requête NRQL:
SELECT uniqueCount (session) de PageView FACET userAgentVersion WHERE userAgentName = 'Safari' SINCE il y a 1 semaine
Dans cette requête, au lieu de grouper (FACETTE
) les résultats par le nom du navigateur (userAgentName
), nous les regroupons par version du navigateur (userAgentVersion
).
Nous avons également ajouté un SQL-like OÙ
clause pour filtrer les données afin d'inclure uniquement les événements où l'agent utilisateur est Safari
.
Cliquez sur Courir voir les résultats.
Si vous éditez le widget existant, vous devez maintenant cliquer sur Sauvegarder les modifications appliquer les modifications apportées à la requête.
Ne fais pas ça cette fois, cependant.
Au lieu de cela, éditez le prénom et Remarques. Puis clique Ajouter une copie à. Dans le menu déroulant qui apparaît, choisissez Tableau de bord actuel enregistrer les résultats sous la forme d'un nouveau widget sur le tableau de bord actuel.
Comme vous pouvez le constater à partir des exemples ci-dessus, la création d'un tableau de bord est un peu comme une recherche de l'or: lorsque vous exécutez une requête, vous trouvez quelque chose d'intéressant qui vous fait penser à une nouvelle question. Ensuite, vous écrivez une requête pour cela, qui vous amène à nouveau à de nouvelles idées.
Toutes vos requêtes risquent de ne pas figurer dans le tableau de bord et vous pouvez en supprimer certaines après un certain temps, mais elles vous donnent toutes de nouvelles idées sur la manière dont votre application est utilisée..
Voici quelques requêtes supplémentaires pour essayer de jouer avec:
SELECT uniqueCount (session) FROM PageView SINCE il y a 1 semaine FACET userAgentOS
Cette requête compte les sessions des visiteurs, en les regroupant selon le système d'exploitation utilisé..
SELECT uniqueCount (session) FROM PageView SINCE il y a 1 semaine FACET deviceType
Cette requête compte les sessions des visiteurs en les regroupant par type d'appareil utilisé (Mobile / Desktop)..
SELECT uniqueCount (session) FROM PageView FACET countryCode SINCE il y a 1 semaine
Cette requête compte les sessions des visiteurs, en les regroupant par pays depuis lequel ils accèdent à votre site..
SELECT count (*) FROM PageView FACET pageUrl SINCE il y a 1 semaine
Cette requête répertorie les pages les plus populaires de votre site. Notez que cette fois nous utilisons compter(*)
au lieu de uniqueCount (session)
même le même visiteur visitant encore la même page est une pépite d'information intéressante.
SELECT count (*) / uniqueCount (session) AS 'Pages vues par session' FROM PageView SINCE il y a 1 semaine FACET deviceType
En explorant les données de mes requêtes, je me suis interrogé sur les habitudes de navigation des utilisateurs de portables et de postes de travail et sur les différences entre eux. Donc, j'ai créé cette requête.
La requête calcule la fraction de pages vues par session en la nommant "Pages vues par session"
. Ensuite, il les regroupe par type d’appareil (type d'appareil
) pour la comparaison que j'avais en tête.
SELECT errorMessage, errorType FROM Transaction O error errorMessage N'EST PAS NUL DEPUIS 1 semaine
Cette requête crée une simple liste de messages d'erreur et de types apparus récemment sur votre serveur. Si la requête renvoie une liste vide, tant mieux! Si non, vous avez trouvé quelque chose à réparer.
SELECT count (*) FROM Transaction SINCE il y a 1 semaine FACET httpResponseCode
Cette requête compte les transactions en les regroupant par code de réponse HTTP.
Lorsque vous avez terminé avec votre tableau de bord, cliquez sur le bouton Finis d'éditer bouton en haut à droite de la page.
Après avoir ajouté ces requêtes en tant que widgets (et supprimé le widget de la version Safari), voici à quoi ressemble mon tableau de bord:
Maintenant, disons que regarder le Vues de page par session Widget, vous commencez à vous demander s’il existe encore plus de différences entre les visiteurs de Desktop et Mobile sur votre site..
La création d'une requête distincte pour chaque comparaison nécessiterait beaucoup de travail et ne conduirait qu'à un tableau de bord encombré affichant les informations dont vous avez besoin uniquement à l'occasion. C’est là que la fonctionnalité de New Relic Insights pour filtrer les données du tableau de bord est utile.
Essayons.
Clique le modifier bouton en haut à droite pour revenir en mode édition. Juste au-dessus des cartes, un élément qui dit Filtre désactivé apparaît.
Cliquez sur l'icône d'engrenage pour configurer votre filtre.
Dans le menu qui apparaît:
Les deux Types d'événements et Les attributs les menus déroulants vous permettent de sélectionner plusieurs options. Ainsi, si, à tout moment, vous souhaitez ajouter plus de filtres à votre tableau de bord, vous pouvez le faire en choisissant simplement plus d'attributs..
Maintenant, cliquez sur le Finis d'éditer bouton pour parcourir les données et tester le filtre.
En haut de la page, vous verrez maintenant une zone de recherche qui indique Rechercher deviceType. Cliquez sur la case et choisissez l'option Mobile.
Ensuite, explorez les données pour voir si vous remarquerez des différences entre les utilisateurs mobiles et les utilisateurs de bureau. Par exemple, dans mes données, l'utilisation du mobile, principalement sur les appareils Apple, explique le pourcentage élevé d'utilisateurs Safari: sur les ordinateurs de bureau, Google Chrome est beaucoup plus populaire..
Jusqu'à présent, dans ce didacticiel, nous avons utilisé des données prédéfinies fournies par les outils Navigateur et APM. Avec ces données, nous avons construit un tableau de bord qui fournit des informations utiles sur l’application dans son ensemble..
Toutefois, s’agissant de la recherche de données pour vous aider à répondre aux questions du support client d’un utilisateur spécifique, cela ne suffit pas. Donc, pour pouvoir explorer les données d'un utilisateur donné, continuons en faisant en sorte que l'application surveillée transmette certains paramètres spécifiques à l'application à Insights..
L’application utilisée comme exemple dans ce didacticiel est un site de commerce électronique propulsé par WordPress. Cependant, l’instrumentation est très simple et vous pouvez appliquer l’idée à pratiquement n’importe quel type d’application de votre choix..
L'API de l'agent PHP de New Relic fournit de nombreuses fonctions permettant de manipuler les données telles qu'elles sont stockées pour les utiliser dans Insights et les autres outils de New Relic..
Maintenant, nous allons nous concentrer sur l'un d'entre eux, newrelic_add_custom_parameter
, qui peut être utilisé pour ajouter un paramètre personnalisé à votre Transaction événements. Si vous utilisez un autre langage de programmation, consultez la documentation de New Relic pour connaître la fonction à utiliser..
La fonction prend deux paramètres: a chaîne
clé et une valeur qui peut être de chaîne
ou flotte
type.
Maintenant, créons une fonction pour injecter des données sur l'utilisateur.
Ajoutez le code ci-dessous à la base de code de votre application, à un endroit où il peut être appelé facilement à chaque demande. Dans une application basée sur WordPress, ce serait à l'intérieur d'un plugin.
utilisateur_email); newrelic_add_custom_parameter ('user_id', $ user-> ID); newrelic_add_custom_parameter ('member_since', $ user-> user_registered); newrelic_add_custom_parameter ('request_uri', $ _SERVER ['REQUEST_URI']);
Tout d’abord, à la ligne 7, la fonction vérifie que l’extension New Relic a été chargée. Ensuite, si les fonctions de rapport sont disponibles, il continue en ajoutant quelques paramètres à l'aide de l'objet utilisateur WordPress par défaut., WP_User
:
email
: L’adresse électronique est souvent le moyen le plus simple d’identifier un utilisateur spécifique. Cependant, lorsque vous travaillez avec des emails, vous devez veiller à ce que les informations restent sécurisées..identifiant d'utilisateur
Remarque: Si vous ne savez pas utiliser les adresses électroniques pour identifier vos utilisateurs dans Insights, l’ID utilisateur numérique est une autre option. Connaître l'identifiant d'un utilisateur avant de rechercher les données est une étape supplémentaire, bien que… membre depuis
: Bien que cela ne soit pas nécessaire pour identifier un utilisateur, le moment où un utilisateur est enregistré peut constituer une donnée intéressante pour les futures requêtes sur le comportement de vos utilisateurs..request_uri
: Par défaut, les données de transaction ne possèdent pas de paramètre permettant de déterminer la page consultée. J'ai donc décidé d'en ajouter un à utiliser pour interroger des pages avec 404
les erreurs.Avec la fonction en place, vous devrez ensuite l'appeler. Assurez-vous d'appeler la fonction suffisamment tôt pour que tous vos événements de transaction contiennent les informations utilisateur que nous venons d'ajouter..
Dans un plugin WordPress, le meilleur moyen de le faire est d’attacher la fonction à une action telle que init
, cela s'appelle tôt, mais seulement après que les données de l'utilisateur aient été initialisées.
Faites cela en ajoutant le code suivant juste en dessous de la fonction:
add_action ('init', 'inject_new_relic_user_information');
Vous avez maintenant ajouté quelques paramètres personnalisés à votre Transaction événements.
Cependant, comme la plupart de nos widgets de tableau de bord sont basés sur des requêtes PageView événements, pour les rendre plus utiles, vous devez également mettre ces informations à leur disposition. Pour ce faire, vous devrez configurer les paramètres de l'agent PHPgs.
Tout d’abord, trouvez le fichier de configuration New Relic, newrelic.ini
, sur votre serveur. L'emplacement exact dépend de votre installation de PHP. Sur mon serveur Amazon Linux, j'ai trouvé le fichier à l'adresse /etc/php-5.5.d/newrelic.ini
.
Dans le fichier de configuration, trouvez la ligne qui ressemble à ceci:
; newrelic.browser_monitoring.attributes.enabled = false
Remplacez-le par ce qui suit:
newrelic.browser_monitoring.attributes.enabled = true
Enregistrez ensuite vos modifications et redémarrez votre serveur Web..
Votre Transaction les attributs sont maintenant automatiquement inclus aussi dans le PageView événements collectés par New Relic Browser. Les données supplémentaires ne seront disponibles que dans les événements collectés après les modifications. Vous devrez donc donner à New Relic le temps de collecter certains événements avant de poursuivre..
Maintenant que les événements Transaction et PageView incluent les variables personnalisées avec les informations utilisateur, nous pouvons créer de nouvelles requêtes encore plus intéressantes..
Comme il s’agit d’un tableau de bord de support client que nous construisons, commençons par une liste des erreurs de serveur regroupées par l’adresse e-mail de l’utilisateur connecté..
Tapez la requête suivante dans la zone de requête:
SELECT count (*) AS 'Transactions avec des erreurs' FROM Transaction WHERE errorType IS NOT NULL SINCE 1 semaine Il y a FAC email
Semblable à la liste générale des erreurs PHP que nous avons créées précédemment, la requête compte le Transaction événements où errorType
est défini et les regroupe en fonction de l'adresse électronique de l'utilisateur connecté (email
).
Cliquez sur Courir pour tester la requête (vous recevrez probablement une liste vide). Ensuite, donnez un nom au widget et ajoutez-le à votre Vue d'ensemble tableau de bord.
Maintenant, si vous le souhaitez, vous pouvez tester le widget en cassant le code de votre serveur pendant un moment et, en tant qu'utilisateur connecté, en visitant la page avec l'erreur..
Les résultats devraient ressembler à ceci:
Désormais, chaque fois qu'un client connecté est confronté à une erreur de serveur, vous le remarquerez en consultant cette liste et pourrez ensuite utiliser l'adresse électronique pour obtenir plus d'informations..
Maintenant que nous connaissons l'adresse électronique de l'utilisateur, nous pouvons l'utiliser pour filtrer les données du tableau de bord de la même manière que nous le faisions avec type d'appareil
plus tôt dans le tutoriel.
Ce n’est pas optimal,