Rechercher et diagnostiquer des exceptions runtime avec Application Insights

Application Insights collecte la télémétrie de votre application pour identifier et diagnostiquer des exceptions runtime. Ce didacticiel vous guide dans ce processus avec votre application. Vous allez apprendre à effectuer les actions suivantes :

  • Modifiez votre projet pour activer le suivi des exceptions.
  • Identifiez des exceptions pour les différents composants de votre application.
  • Affichez les détails d’une exception.
  • Téléchargez une capture instantanée de l’exception vers Visual Studio à des fins de débogage.
  • Analysez les détails des requêtes ayant échoué à l’aide du langage de requête.
  • Créez un élément de travail pour corriger le code défectueux.

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
  • Téléchargez et installez le débogueur d'instantané de Visual Studio.
  • Activer le débogueur d’instantané Visual Studio
  • Déployer une application .NET sur Azure et activer le Kit de développement logiciel (SDK) Application Insights
  • Modifiez votre code dans votre environnement de développement ou de test pour générer une exception, car le didacticiel effectue un suivi de l’identification d’une exception dans votre application.

Connexion à Azure

Connectez-vous au portail Azure.

Analyser les échecs

Application Insights collecte toutes les défaillances dans votre application. Cela vous permet d’afficher leur fréquence dans différentes opérations pour vous aider à concentrer vos efforts sur les problèmes qui ont le plus d’impact. Vous pouvez explorer les détails de ces échecs pour en identifier la cause racine.

  1. Sélectionnez Application Insights choisissez votre abonnement.

  2. Pour ouvrir le panneau Échecs, sélectionnez Échecs dans le menu Examiner, ou cliquez sur le graphique Requêtes ayant échoué.

    Capture d’écran des requêtes ayant échoué.

  3. Le panneau Requêtes ayant échoué indique le nombre de requêtes ayant échoué et le nombre d’utilisateurs affectés pour chaque opération de l’application. En triant ces informations par utilisateur, vous pouvez identifier les échecs qui affectent le plus les utilisateurs. Dans cet exemple, les opérations GET Employees/Create et GET Customers/Details sont probablement de bons objets d’examen du fait de leur nombre important d’échecs générés et d’utilisateurs affectés. En sélectionnant une opération, vous verrez plus d’informations la concernant dans le volet droit.

    Capture d’écran du volet Requêtes ayant échoué.

  4. Réduisez la fenêtre de temps pour zoomer sur la période pendant laquelle le taux d’échec présente un pic.

    Capture d’écran de la fenêtre Requêtes ayant échoué.

  5. Consultez les exemples connexes en sélectionnant le bouton avec le nombre de résultats filtrés. Les exemples suggérés disposent de données de télémétrie associées à partir de tous les composants, même si l’échantillonnage est appliqué à l’un d’eux. Sélectionnez un résultat de recherche pour afficher les détails de l’échec.

    Capture d’écran d’exemples de requête ayant échoué.

  6. Les détails de la requête ayant échoué affichent le diagramme de Gantt qui montre qu’il y avait deux échecs de dépendance dans cette transaction, ce qui a également contribué à plus de 50 % de la durée totale de la transaction. Cette expérience présente toutes les données de télémétrie à travers les composants d’une application distribuée qui sont liés à cet ID d’opération. Vous pouvez sélectionner n’importe quels éléments pour afficher leurs détails sur le côté droit.

    Capture d’écran des détails de la requête ayant échoué.

  7. Le détail des opérations montre également une exception de format qui semble être à l’origine de l’échec. Vous pouvez voir qu’un code postal non valide en est à l’origine. Vous pouvez ouvrir la capture instantanée du débogage pour afficher des informations de débogage au niveau du code dans Visual Studio.

    Capture d’écran qui montre les détails de l’exception.

Identifier le code défaillant

Le débogueur d'instantané collecte des captures instantanées des exceptions les plus fréquentes dans votre application pour vous aider à diagnostiquer leur cause racine en production. Vous pouvez afficher les captures instantanées de débogage dans le portail pour consulter la pile des appels et inspecter les variables à chaque frame de pile des appels. Par la suite, vous pouvez déboguer le code source en téléchargeant l’instantané et en l’ouvrant dans Visual Studio 2019 Enterprise.

  1. Dans les propriétés de l’exception, sélectionnez Ouvrir l'instantané de débogage.

  2. Le panneau Déboguer l'instantané s’ouvre, affichant la pile des appels pour la requête. Sélectionnez une méthode pour afficher les valeurs de toutes les variables locales au moment de la requête. En partant de la méthode du haut dans cet exemple, vous pouvez voir les variables locales qui n’ont aucune valeur.

    Capture d’écran du volet Déboguer l’instantané.

  3. Le premier appel qui présente des valeurs valides est ValidZipCode. Vous pouvez voir qu’un code postal a été fourni avec des lettres qui ne peuvent pas être traduites en entier. Ce problème semble être une erreur de code à corriger.

    Capture d’écran d’une erreur dans le code qui doit être corrigée.

  4. Vous pouvez ensuite télécharger cet instantané dans Visual Studio où vous pouvez localiser le code réel à corriger. Pour ce faire, sélectionnez Télécharger l’instantané.

  5. L’instantané est chargé dans Visual Studio.

  6. Vous pouvez maintenant exécuter une session de débogage dans Visual Studio Enterprise, qui permet d’identifier rapidement la ligne de code ayant provoqué l’exception.

    Capture d’écran d’une exception dans le code.

Utiliser des données Analytics

Toutes les données collectées par Application Insights sont stockées dans Azure Log Analytics qui offre un langage de requête riche que vous pouvez utiliser pour analyser les données de plusieurs façons. Vous pouvez utiliser ces données pour analyser les requêtes à l’origine de l’exception que vous recherchez.

  1. Sélectionnez les informations CodeLens au-dessus du code pour afficher les données de télémétrie fournies par Application Insights.

    Capture d’écran du code dans CodeLens.

  2. Sélectionnez Analyser l’impact pour ouvrir Application Insights Analytics. Application Insights Analytics comprend plusieurs requêtes qui fournissent des détails sur les requêtes ayant échoué, tels que les utilisateurs, les navigateurs et les régions affectées.

    Capture d’écran de la fenêtre Application Insights comprenant plusieurs requêtes.

Ajouter un élément de travail

Si vous connectez Application Insights à un système de suivi, tel que Azure DevOps ou GitHub, vous pouvez créer un élément de travail directement à partir d’Application Insights.

  1. Revenez au panneau Propriétés d'exception dans Application Insights.

  2. Sélectionner Nouvel élément de travail.

  3. Le panneau Nouvel élément de travail s’ouvre, affichant les détails relatifs à l’exception. Vous pouvez ajouter des informations supplémentaires avant de les enregistrer.

    Capture d’écran du volet Nouvel élément de travail.

Étapes suivantes

Maintenant que vous avez appris à identifier les exceptions runtime, passez au didacticiel suivant pour apprendre à identifier et à diagnostiquer les problèmes de performances.