Share via


Résoudre des problèmes Application Insights Profiler

Cet article vous présente des étapes de résolution des problèmes et des informations vous permettant d’utiliser Application Insights Profiler.

Utilisez-vous le point de terminaison Profiler approprié ?

Seules les régions Azure Government et Microsoft Azure géré par 21Vianet nécessitent actuellement des modifications de leurs points de terminaison.

Paramètre d’application Cloud US Government China Cloud
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

Votre application s’exécute-t-elle sur la bonne version ?

Profiler est pris en charge sur .NET Framework ultérieur à la version 4.6.2.

Si votre application web est une application ASP.NET Core, elle doit exécuter le runtime ASP.NET Core le plus récent.

Utilisez-vous le bon plan de service Azure ?

Pour l’instant, Profiler n’est pas pris en charge sur les plans App Service gratuits ou partagés. Effectuer une mise à niveau vers l’un des plans de base de Profiler pour commencer à travailler.

Notes

Le plan de consommation Azure Functions n’est pas pris en charge. Consultez Profiler des applications Azure Functions en production avec Application Insights.

Recherchez-vous des données Profiler dans l’intervalle de temps approprié ?

Si les données que vous essayez d’afficher datent de plus de deux semaines, essayez de limiter votre filtre de temps et réessayez. Les traces sont supprimées après sept jours.

Pouvez-vous accéder à la passerelle ?

Vérifiez qu’un pare-feu ou des proxys ne bloquent pas votre accès à cette page web.

Constatez-vous des délais d’expiration ou devez-vous vérifier si Profiler est en cours d’exécution ?

Les données de profilage sont chargées uniquement quand elles peuvent être jointes à une demande envoyée pendant l’exécution de Profiler. Profiler collecte des données pendant deux minutes toutes les heures. Vous pouvez également déclencher Profiler en démarrant une session de profilage.

Profiler écrit les messages de trace et les événements personnalisés dans votre ressource Application Insights. Vous pouvez utiliser ces événements pour voir comment Profiler s’exécute.

Recherchez des messages de trace et des événements personnalisés envoyés par Profiler à votre ressource Application Insights.

  1. Dans votre ressource Application Insights, sélectionnez Rechercher dans le menu supérieur.

    Screenshot that shows selecting the Search button from the Application Insights resource.

  2. Utilisez la chaîne de recherche suivante pour trouver les données pertinentes :

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Screenshot that shows the search results from aforementioned search string.

    Les résultats de recherche ci-dessus incluent deux exemples de recherches à partir de deux ressources IA :

    • Si l’application ne reçoit pas de requêtes pendant l’exécution de Profiler, le message explique que le chargement a été annulé en raison de l’absence d’activité.

    • Profiler a démarré et a envoyé des événements personnalisés quand il a détecté des requêtes envoyées pendant son exécution. Si l’événement personnalisé ServiceProfilerSample s’affiche, cela signifie qu’un profil a été capturé et qu’il est disponible dans le volet Performances d’Application Insights.

    Si aucun enregistrement n’est affiché, Profiler n’est pas en cours d’exécution ou a expiré. Vérifiez que vous avez activé Profiler sur votre service Azure.

Double comptage dans des threads parallèles

Lorsque deux threads parallèles ou plus sont associés à une requête, la métrique de durée totale dans la visionneuse de pile peut être supérieure à la durée de la requête. Dans ce cas, le temps total de threads est supérieur à la durée calendaire.

Par exemple, un thread peut être en attente le temps que l’autre se termine. La visionneuse tente de détecter cette situation et omet l’attente sans intérêt. Ce faisant, elle penche du côté de l’affichage excessif d’informations au lieu d’omettre ce qui peut correspondre à des informations vitales.

Quand vous voyez des threads parallèles dans vos traces, identifiez les threads en attente pour identifier le chemin chaud de la demande. Généralement, le thread qui passe rapidement à un état d’attente attend les autres threads. Concentrez-vous sur ces autres threads et ignorez le temps dans les threads en attente.

Résoudre les problèmes de Profiler sur votre service Azure spécifique

Les sections suivantes vous guident tout au long des étapes de résolution des problèmes d’utilisation de Profiler sur Azure App Service ou Azure Cloud Services.

Azure App Service

Pour que Profiler fonctionne correctement, assurez-vous que :

  • Application Insights est activé sur votre application web, avec les paramètres appropriés.

  • La tâche web ApplicationInsightsProfiler3 est en cours d’exécution. Pour vérifier le tâche web :

    1. Accédez à Kudu. Dans le portail Azure :

      1. Dans votre instance App Service, sélectionnez Outils avancés sur le menu de gauche.
      2. Sélectionnez Go.
    2. Dans le menu supérieur, sélectionnez Outils>Tableau de bord WebJobs. Le volet WebJobs s’ouvre.

      Si ApplicationInsightsProfiler3 n’apparaît pas, redémarrez votre application App Service.

      Screenshot that shows the WebJobs pane, which displays the name, status, and last runtime of jobs.

    3. Pour voir les informations de WebJob, notamment le journal, sélectionnez le lien ApplicationInsightsProfiler3. Le volet Détails de la tâche web continue s’ouvre.

      Screenshot that shows the Continuous WebJob Details pane.

Si Profiler ne fonctionne toujours pas pour vous, téléchargez le journal et envoyer un ticket de support Azure.

Vérifier la page d’état de l’extension de site Services de diagnostic

Si Profiler a été activé via le volet Application Insights du portail, il a été activé par l’extension de site Services de diagnostic. Vous pouvez consulter la page d’état de cette extension en accédant à https://{site-name}.scm.azurewebsites.net/DiagnosticServices.

Notes

Le domaine du lien de la page d’état varie en fonction du cloud. Ce domaine est le même que le site de gestion Kudu pour App Service.

Cette page d’état indique l’état d’installation des agents Profiler et Débogueur de capture instantanée. En cas d’erreur inattendue, elle s’affiche, ainsi que les étapes à suivre pour la corriger.

Vous pouvez utiliser le site de gestion Kudu pour App Service pour obtenir l’URL de base de cette page d’état :

  1. Ouvrez votre application App Service dans le portail Azure.
  2. Sélectionnez Outils avancés.
  3. Sélectionnez Go.
  4. Sur le site de gestion Kudu :
    1. Ajoutez /DiagnosticServices à l’URL.
    2. Sélectionnez Entrée.

Il se termine comme https://<kudu-url>/DiagnosticServices.

Une page d’état s’affiche semblable à l’exemple suivant.

Screenshot that shows the Diagnostic Services status page.

Remarque

L’installation sans code d’Application Insights Profiler suit la politique de support .NET Core. Si vous souhaitez obtenir plus d’informations sur les runtimes pris en charge, consultez Politique de support .NET Core.

Installation manuelle

Lorsque vous configurez Profiler, des mises à jour sont appliquées aux paramètres de l’application web. Si nécessaire, vous pouvez appliquer les mises à jour manuellement.

Trop de sessions de profilage actives

Vous pouvez activer Profiler sur un maximum de quatre applications web qui s’exécutent dans le même plan de service. Si vous en avez plus de quatre, il est possible que Profiler génère l’erreur suivante :

Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException

Pour résoudre ce problème, déplacez certaines applications web vers un autre plan de service.

Erreur de déploiement : Répertoire non vide « D:\home\site\wwwroot\App_Data\jobs »

Si vous redéployez votre application web sur une ressource Web Apps avec Profiler activé, vous pouvez voir le message suivant :

« Directory Not Empty 'D:\home\site\wwwroot\App_Data\jobs' »

Cette erreur se produit si vous exécutez Web Deploy à partir de scripts ou d’Azure Pipelines. Résolvez-la en ajoutant les paramètres de déploiement suivants à la tâche Web Deploy :

-skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$'  -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'

Ces paramètres suppriment le dossier utilisé par Application Insights Profiler et débloquent le processus de redéploiement. Ils n’affectent pas l’instance de Profiler qui est en cours d’exécution.

L’outil Application Insights Profiler est-il en cours d’exécution ?

Profiler s’exécute comme une tâche web continue dans l’application web. Vous pouvez ouvrir la ressource de l’application web dans le portail Azure. Dans le volet WebJobs, vérifiez l’état de ApplicationInsightsProfiler. S’il n’est pas en cours d’exécution, ouvrez les Journaux d’activité pour en savoir plus.

Machines virtuelles et Azure Cloud Services

Pour voir si Profiler est correctement configuré par Diagnostics Azure :

  1. Vérifiez que le contenu de la configuration déployée de Diagnostics Azure correspond à ce que vous attendez.

  2. Vérifiez que Diagnostics Azure passe l’iKey appropriée sur la ligne de commande de Profiler.

  3. Consultez le fichier journal de Profiler pour voir s’il s’est exécuté et a retourné une erreur.

Pour vérifier les paramètres qui ont été utilisés pour configurer Diagnostics Azure :

  1. Se connecter à la machine virtuelle (VM).

  2. Ouvrir le fichier journal à cet emplacement. La version du plug-in peut être plus récente sur votre machine.

    Pour les machines virtuelles :

    c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    

    Pour Azure Cloud Services :

    c:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    
  3. Dans ce fichier, rechercher la chaîne WadCfg pour voir les paramètres qui ont été passés à la machine virtuelle pour configurer Diagnostics Azure.

  4. Vérifier si l’iKey utilisée par le récepteur de Profiler est correcte.

  5. Vérifiez la ligne de commande qui permet de démarrer Profiler. Les arguments utilisés pour lancer Profiler se trouvent dans le fichier suivant (le lecteur peut être c: ou d: et il est possible que le répertoire soit masqué) :

    Pour les machines virtuelles :

    C:\ProgramData\ApplicationInsightsProfiler\config.json
    

    Pour Azure Cloud Services :

    D:\ProgramData\ApplicationInsightsProfiler\config.json
    
  6. Vérifiez que l’ikey sur la ligne de commande de Profiler est correcte.

  7. En tirant parti du chemin d’accès trouvé dans le fichier config.json précédent, consultez le fichier journal de Profiler, appelé BootstrapN.log. Il affiche :

    • Les informations de débogage qui indiquent les paramètres utilisés par Profiler.
    • Des messages d’état et d’erreur de Profiler.

    Vous pouvez trouver le fichier :

    Pour les machines virtuelles :

    C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    

    Pour Azure Cloud Services :

    C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    
  8. Si Profiler s’exécute pendant que votre application reçoit des requêtes, le message suivant s’affiche : « Activité de l’iKey détectée ».

  9. Quand la trace est en cours de chargement, le message suivant s’affiche : « Démarrage du chargement de la trace. »

Modifier les règles de pare-feu ou de proxy réseau

Si votre application se connecte à Internet via un proxy ou un pare-feu, il est possible que vous deviez mettre à jour les règles pour communiquer avec Profiler.

Les adresses IP utilisées par Application Insights Profiler sont incluses dans la balise de service Azure Monitor. Si vous souhaitez obtenir plus d’informations, consultez la Documentation relative aux étiquettes de service.

Support

Si vous avez toujours besoin d’aide, envoyez un ticket de support dans le Portail Azure. Indiquez également l’ID de corrélation du message d’erreur.