Rechercher et diagnostiquer les problèmes de performances à l’aide d’Application Insights

Application Insights collecte des données de télémétrie à partir de votre application pour analyser son fonctionnement et ses performances. Vous pouvez utiliser ces informations pour identifier les problèmes qui peuvent se produire ou pour identifier les améliorations apportées à l’application et qui ont le plus d’impact pour les utilisateurs. Ce didacticiel vous guide dans le processus d’analyse des performances à la fois au niveau des composants serveur de votre application et du point de vue du client.

Vous allez apprendre à effectuer les actions suivantes :

  • Identifier les performances des opérations côté serveur.
  • Analyser les opérations du serveur pour déterminer la cause de la baisse des performances.
  • Identifier les opérations les plus lentes côté client.
  • Analyser les détails des affichages de page à l’aide du langage de requête.

Prérequis

Pour suivre ce tutoriel :

  • Installez Visual Studio 2019 avec les charges de travail suivantes :
    • Développement web et ASP.NET
    • Développement Azure
  • Déployer une application .NET sur Azure et activer le Kit de développement logiciel (SDK) Application Insights
  • Activer le profileur Application Insights pour votre application.

Connexion à Azure

Connectez-vous au portail Azure.

Identifier les opérations lentes côté serveur

Application Insights collecte des informations sur les performances pour les différentes opérations de votre application. En identifiant les opérations sur la plus longue période, vous pouvez diagnostiquer les problèmes potentiels ou cibler votre développement actuel afin d’améliorer les performances globales de l’application.

  1. Sélectionnez Application Insights choisissez votre abonnement.

  2. Pour ouvrir le panneau Performances, sélectionnez Performances sous le menu Examiner ou sélectionnez le graphique Temps de réponse du serveur.

    Capture d’écran montrant la vue Performances.

  3. L’écran Performances affiche le nombre et la durée moyenne de chaque opération de l’application. Vous pouvez utiliser ces informations pour identifier les opérations qui affectent le plus les utilisateurs. Dans cet exemple, il peut être intéressant d’examiner les opérations GET Customers/Details et GET Home/Index en raison de leur durée relativement longue et du nombre d’appels. D’autres opérations peuvent avoir une durée supérieure, mais elles sont rarement appelées et leur amélioration n’apporterait qu’un résultat négligeable.

    Capture d’écran montrant le panneau Serveur de performances.

  4. Le graphique affiche actuellement la durée moyenne des opérations sélectionnées au fil du temps. Vous pouvez basculer vers le 95e centile pour rechercher les problèmes de performances. Ajoutez les opérations qui vous intéressent en les épinglant au graphique. Ce graphique indique qu’il existe des pics qui méritent un examen approfondi. Pour les isoler davantage, réduisez la fenêtre de temps du graphique.

    Capture d'écran qui montre les opérations d’épinglage.

  5. Le panneau de performances sur la droite affiche la distribution des durées pour différentes requêtes de l’opération sélectionnée. Réduisez la fenêtre pour démarrer autour du 95e centile. La carte insights des 3 principales dépendances peut vous indiquer d’un coup d’œil que les dépendances externes contribuent probablement aux transactions lentes. Sélectionnez le bouton avec le nombre d’exemples pour afficher la liste des exemples. Sélectionnez ensuite un exemple quelconque pour afficher les détails de la transaction.

  6. Vous pouvez voir d’un coup d’œil que l’appel à la Table Azure Fabrikamaccount contribue le plus à la durée totale de la transaction. Vous pouvez également voir qu’une exception a provoqué son échec. Sélectionnez n’importe quel élément dans la liste pour afficher ses détails sur le côté droit.

    Capture d’écran montrant les détails de la transaction de bout en bout pour l’opération.

  7. Le Profileur vous aide à en apprendre davantage sur les diagnostics au niveau du code en affichant le code qui s’exécutait pour l’opération et le temps nécessaire à chaque étape. Certaines opérations peuvent ne pas avoir de suivi car le profileur s’exécute périodiquement. Au fil du temps, d’autres opérations devraient avoir un suivi. Pour démarrer le profileur pour l’opération, sélectionnez Suivis du Profileur.

  8. Le suivi affiche les événements individuels pour chaque opération pour vous permettre d’identifier la cause de la durée de l’opération globale. Sélectionnez l’un des principaux exemples dont la durée est la plus longue.

  9. Sélectionnez Chemin chaud pour mettre en surbrillance le chemin d’accès spécifique aux événements qui contribuent le plus à la durée totale de l’opération. Dans cet exemple, vous pouvez remarquer que l’appel le plus lent provient de la méthode FabrikamFiberAzureStorage.GetStorageTableData. La partie qui prend le plus de temps est la méthode CloudTable.CreateIfNotExist. Si cette ligne de code est exécutée chaque fois que la fonction est appelée, les appels réseau inutiles et les ressources du processeur sont consommées. La meilleure façon de corriger votre code est de placer cette ligne dans une méthode de démarrage qui s’exécutera une seule fois.

    Capture d’écran qui montre les détails du profileur.

  10. Le conseil relatif aux performances affiché en haut de l’écran confirme l’hypothèse que la durée excessive est due à l’attente. Sélectionnez le lien en attente pour plus d’informations sur l’interprétation les différents types d’événements.

    Capture d’écran montrant un conseil relatif aux performances.

  11. Pour une analyse plus approfondie, sélectionnez Télécharger la trace afin de télécharger la trace. Vous pouvez afficher ces données à l’aide de PerfView.

Utiliser les données de journaux pour le serveur

Logs fournit un langage de requête enrichi que vous pouvez utiliser pour analyser toutes les données collectées par Application Insights. Vous pouvez utiliser cette fonctionnalité pour effectuer une analyse approfondie des données concernant les requêtes et les performances.

  1. Retournez au panneau des détails de l’opération et sélectionnez l’icône LogsAfficher dans Logs (Analytics).

  2. L’écran Logs s’ouvre et affiche une requête pour chacune des vues dans le panneau. Vous pouvez exécuter ces requêtes en tant que telles ou les modifier selon vos besoins. La première requête indique la durée de cette opération au fil du temps.

    Capture d’écran montrant une requête de journal.

Identifier les opérations lentes côté client

En plus d’identifier les processus côté serveur à optimiser, Application Insights peut effectuer une analyse du point de vue des navigateurs clients. Ces informations peuvent vous aider à identifier les améliorations potentielles des composants clients et même identifier les problèmes avec différents navigateurs ou emplacements.

  1. Sélectionnez Navigateur sous Examiner, puis Performances du navigateur. Vous pouvez également sélectionner Performances sous Examiner et passer à l’onglet Navigateur en sélectionnant le bouton bascule Serveur/Navigateur dans le coin supérieur droit pour ouvrir le résumé des performances du navigateur. Cette vue fournit un résumé visuel des différentes données de télémétrie de votre application du point de vue du navigateur.

    Capture d’écran montrant la page Résumé.

  2. Sélectionnez l’un des noms d’opération puis, le bouton d’exemples dans le coin inférieur droit et enfin, une opération. Les détails de transaction de bout en bout s’ouvrent du côté droit, où vous pouvez consulter les Propriétés des consultations de page. Vous pouvez afficher les détails du client qui demande la page, y compris le type de navigateur et son emplacement. Ces informations peuvent vous aider à déterminer certains types de clients rencontrent des problèmes de performances.

    Capture d’écran montrant les propriétés de l’affichage de page.

Utiliser les données de journaux pour le client

Comme avec les données collectées pour les performances du serveur, Application Insights rend toutes les données du client disponibles pour une analyse approfondie à l’aide des journaux.

  1. Retournez au résumé du navigateur, puis sélectionnez l’icône LogsAfficher dans Logs (Analytics).

  2. L’écran Logs s’ouvre et affiche une requête pour chacune des vues dans le panneau. La première requête indique la durée de différents affichages de page au fil du temps.

    Capture de l’écran Journaux.