Activer la surveillance des applications dans les applications Azure App Service pour .NET, Node.js, Python et Java
Article
L’instrumentation automatique, également appelée supervision du runtime, est le moyen le plus simple d’activer Application Insights pour Azure App Service sans modifications de code ou de configurations avancées. Selon votre scénario spécifique, évaluez si avez besoin d’une supervision plus avancée via une instrumentation manuelle.
Notes
Le support de l’ingestion de clé d’instrumentation prendra fin le 31 mars 2025. L’ingestion de clé d’instrumentation continuera de fonctionner, mais nous ne fournirons plus de mises à jour ni de support pour la fonctionnalité. Passez aux chaînes de connexion pour tirer parti des nouvelles fonctionnalités.
Si la supervision par instrumentation automatique et l’instrumentation manuelle basée sur un kit de développement logiciel (SDK) sont détectées, seuls les paramètres de l’instrumentation manuelle sont appliqués. Cette organisation empêche l’envoi de données en double. Pour en savoir plus, consultez Résolution des problèmes.
Notes
Seules les versions de support à long terme (LTS) .NET Core sont prises en charge.
Sélectionnez Application Insights dans le menu de navigation de gauche de votre service d’application, puis Activer.
Créez une ressource ou sélectionnez une ressource Application Insights existante pour cette application.
Notes
Quand vous sélectionnez OK pour créer une ressource, vous êtes invité à Appliquer les paramètres de supervision. Si vous sélectionnez Continuer, votre nouvelle ressource Application Insights est liée à votre service d’application. Votre service d’application redémarre.
Après avoir spécifié la ressource à utiliser, vous pouvez choisir la façon dont Application Insights doit collecter les données par plateforme pour votre application. Les options de collecte d’ASP.NET Core sont Recommandé ou Désactivé.
Important
Si la supervision par instrumentation automatique et l’instrumentation manuelle basée sur un kit de développement logiciel (SDK) sont détectées, seuls les paramètres de l’instrumentation manuelle sont appliqués. Cette organisation empêche l’envoi de données en double. Pour en savoir plus, consultez Résolution des problèmes.
Notes
La combinaison de APPINSIGHTS_JAVASCRIPT_ENABLED et urlCompression n’est pas prise en charge. Pour plus d’informations, consultez la page Dépannage.
Instrumentation automatique dans le portail Azure
Sélectionnez Application Insights dans le menu de navigation de gauche de votre service d’application, puis Activer.
Créez une ressource ou sélectionnez une ressource Application Insights existante pour cette application.
Notes
Quand vous sélectionnez OK pour créer une ressource, vous êtes invité à Appliquer les paramètres de supervision. Si vous sélectionnez Continuer, votre nouvelle ressource Application Insights est liée à votre service d’application. Votre service d’application redémarre.
Après avoir spécifié la ressource à utiliser, vous pouvez choisir la façon dont Application Insights doit collecter les données par plateforme pour votre application. La supervision d’applications ASP.NET est activée par défaut avec deux niveaux de collecte différents, Recommandé et De base.
Le tableau suivant récapitule les données collectées de chaque gamme.
Données
Recommandé
De base
Ajoute les tendances d’utilisation de l’UC, de la mémoire et des E/S
Oui
Non
Collecte les tendances d’utilisation et permet la mise en corrélation des résultats de la disponibilité avec les transactions
Oui
Oui
Collecte les exceptions non gérées par le processus hôte
Oui
Oui
Améliore la précision des métriques APM avec charge, quand l’échantillonnage est utilisé
Oui
Oui
Met en corrélation les microservices dans les limites de requête/dépendance
Oui
Non (fonctionnalités APM à instance unique uniquement)
Sélectionnez Application Insights dans le menu de navigation de gauche de votre service d’application, puis Activer.
Créez une ressource ou sélectionnez une ressource Application Insights existante pour cette application.
Notes
Quand vous sélectionnez OK pour créer une ressource, vous êtes invité à Appliquer les paramètres de supervision. Si vous sélectionnez Continuer, votre nouvelle ressource Application Insights est liée à votre service d’application. Votre service d’application redémarre.
Important
Si la supervision par instrumentation automatique et l’instrumentation manuelle basée sur un kit de développement logiciel (SDK) sont détectées, seuls les paramètres de l’instrumentation manuelle sont appliqués. Cette organisation empêche l’envoi de données en double. Pour plus d’informations, consultez la section Résolution des problèmes.
Notes
Vous pouvez configurer l’agent attaché automatiquement à l’aide de la variable d’environnement APPLICATIONINSIGHTS_CONFIGURATION_CONTENT dans le panneau de la variable App Service Environment. Pour plus d’informations sur les options de configuration qui peuvent être transmises via cette variable d’environnement, consultez Configuration node.js.
Application Insights pour Node.js est intégré à Azure App Service sur Linux (conteneurs basés sur du code et conteneurs personnalisés) et à App Service sur Windows (applications basées sur du code). L’intégration est en préversion publique.
Instrumentation automatique dans le portail Azure
Sélectionnez Application Insights dans le menu de navigation de gauche de votre service d’application, puis Activer.
Créez une ressource ou sélectionnez une ressource Application Insights existante pour cette application.
Notes
Quand vous sélectionnez OK pour créer une ressource, vous êtes invité à Appliquer les paramètres de supervision. Si vous sélectionnez Continuer, votre nouvelle ressource Application Insights est liée à votre service d’application. Votre service d’application redémarre.
Une fois la ressource à utiliser spécifiée, vous êtes prêt à vous lancer.
Application Insights pour Python s’intègre à Linux Azure App Service basé sur le code. L’intégration est en préversion publique et ajoute le kit de développement logiciel (SDK) Python, qui est en disponibilité générale. Elle met en place des bibliothèques Python populaires dans votre code, ce qui vous permet de collecter et de mettre en corrélation automatiquement des dépendances, des journaux et des mesures. Pour voir quels appels et mesures sont collectés, consultez les bibliothèques Python
La télémétrie de journalisation est collectée au niveau de l’enregistreur d’événements racine. Pour en savoir plus sur la hiérarchie de journalisation native de Python, consultez la documentation de journalisation Python.
Prérequis
Python version 3.11 ou ultérieure.
App Service doit être déployé en tant que code. Les conteneurs personnalisés ne sont pas pris en charge.
Instrumentation automatique dans le portail Azure
Sélectionnez Application Insights dans le menu de navigation de gauche de votre service d’application, puis Activer.
Créez une ressource ou sélectionnez une ressource Application Insights existante pour cette application.
Notes
Quand vous sélectionnez OK pour créer une ressource, vous êtes invité à Appliquer les paramètres de supervision. Si vous sélectionnez Continuer, votre nouvelle ressource Application Insights est liée à votre service d’application. Votre service d’application redémarre.
Vous spécifiez la ressource et elle est prête à être utilisée.
Bibliothèques Python
Après l’instrumentation, vous collectez des appels et des métriques à partir de ces bibliothèques Python :
Pour utiliser l’instrumentation Django d’OpenTelemetry, vous devez définir la variable d’environnement DJANGO_SETTINGS_MODULE dans les paramètres App Service pour qu’elle pointe de votre dossier d’application vers votre module de paramètres.
Pour plus d’informations, consultez la documentation Django.
Ajouter une bibliothèque d’instrumentation de communauté
Vous pouvez collecter automatiquement davantage de données lorsque vous incluez des bibliothèques d’instrumentation de la communauté OpenTelemetry.
Attention
Nous ne prenons pas en charge et ne garantissons la qualité des bibliothèques d’instrumentation de la communauté. Pour en suggérer une pour notre distribution, publier ou voter dans nos commentaires de la communauté. N’oubliez pas que certaines sont basées sur des spécifications OpenTelemetry expérimentales et peuvent introduire des changements cassants futurs.
Pour ajouter la bibliothèque communautaire d'instrumentation OpenTelemetry, installez-la dans le fichier requirements.txt de votre application. L’auto- instrumentation OpenTelemetry récupère et instrumente automatiquement toutes les bibliothèques installées. Recherchez la liste des bibliothèques de communauté ici.
Mettre à niveau manuellement l’extension/agent de supervision
Mise à niveau à partir des versions 2.8.9 et ultérieures
La mise à niveau à partir de la version 2.8.9 s’effectue automatiquement, sans aucune action supplémentaire de votre part. Les nouveaux BITS de supervision sont fournis en arrière-plan au service d’application cible et récupérés au redémarrage de l’application.
Pour connaître la version de votre extension, accédez à l’adresse https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Mise à niveau à partir des versions 1.0.0 - 2.6.5
Depuis la version 2.8.9, l’extension de site préinstallée est utilisée. Si vous avez une version antérieure, vous pouvez la mettre à jour de deux façons :
Mettre à niveau en activant via le portail Azure : même si vous avez installé l’extension Application Insights pour App Service, l’interface utilisateur affiche uniquement le bouton Activer. En arrière-plan, l’ancienne extension de site privée est supprimée.
Définissez les paramètres de l’application pour activer l’extension de site préinstallée ApplicationInsightsAgent. Pour plus d’informations, consultez Activer via PowerShell.
Supprimez manuellement l’extension de site privée nommée extension Application Insights pour Azure App Service.
Si la mise à niveau est effectuée à partir d’une version antérieure à 2.5.1, vérifiez que les DLL ApplicationInsights sont supprimées du dossier corbeille de l’application. Pour plus d’informations, consultez la page Dépannage.
Mise à niveau à partir des versions 2.8.9 et ultérieures
La mise à niveau à partir de la version 2.8.9 s’effectue automatiquement, sans aucune action supplémentaire de votre part. Les nouveaux BITS de supervision sont fournis en arrière-plan au service d’application cible et récupérés au redémarrage de l’application.
Pour connaître la version de votre extension, accédez à l’adresse https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Mise à niveau à partir des versions 1.0.0 - 2.6.5
Depuis la version 2.8.9, l’extension de site préinstallée est utilisée. Si vous avez une version antérieure, vous pouvez la mettre à jour de deux façons :
Mettre à niveau en activant via le portail Azure : même si vous avez installé l’extension Application Insights pour App Service, l’interface utilisateur affiche uniquement le bouton Activer. En arrière-plan, l’ancienne extension de site privée est supprimée.
Définissez les paramètres de l’application pour activer l’extension de site préinstallée ApplicationInsightsAgent. Pour plus d’informations, consultez Activer via PowerShell.
Supprimez manuellement l’extension de site privée nommée extension Application Insights pour Azure App Service.
Si la mise à niveau est effectuée à partir d’une version antérieure à 2.5.1, vérifiez que les DLL ApplicationInsights sont supprimées du dossier corbeille de l’application. Pour plus d’informations, consultez la page Dépannage.
La version Java d’Application Insights est mise à jour automatiquement dans le cadre des mises à jour App Services. Si vous rencontrez un problème qui a été résolu dans la dernière version de l’agent Java d’Application Insights, vous pouvez le mettre à jour manuellement.
Charger le fichier jar de l’agent Java sur App Service.
a. En premier lieu, procurez-vous la dernière version d’Azure CLI en suivant les instructions fournies ici.
b. Ensuite, récupérez la dernière version de l’agent Application Insights Java en suivant les instructions fournies ici.
c. Enfin, déployez le fichier jar de l’agent Java sur App Service au moyen de la commande suivante : az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME}. Vous pouvez également utiliser ce guide pour déployer l’agent via le plug-in Maven.
Désactivez Application Insights via l’onglet Application Insights dans le Portail Azure.
Une fois le fichier jar de l’agent chargé, accédez aux configurations App Service. Si vous devez utiliser la commande de démarrage de Linux, incluez les arguments JVM :
La commande de démarrage n’est pas adaptée JAVA_OPTS à JavaSE ou CATALINA_OPTS à Tomcat.
Si vous n’utilisez pas la commande de démarrage, créez une variable d’environnement, JAVA_OPTS pour JavaSE ou CATALINA_OPTS pour Tomcat avec la valeur -javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar.
Pour appliquer les changements, redémarrez l’application.
Notes
Si vous avez défini la variable d’environnement Tomcat JAVA_OPTS pour JavaSE ou CATALINA_OPTS pour Tomcat, vous devez désactiver Application Insights dans le portail Azure. Si vous préférez activer Application Insights à partir du portail Azure, vérifiez que vous n’avez pas défini la variable JAVA_OPTS pour JavaSE ou CATALINA_OPTS pour Tomcat dans les paramètres de configuration d’App Service.
La version Node.js d’Application Insights est mise à jour automatiquement dans le cadre des mises à jour App Services et ne peut pas être mise à jour manuellement.
Si vous rencontrez un problème qui a été résolu dans la dernière version du kit de développement logiciel (SDK) Application Insights, vous pouvez supprimer l’instrumentation automatique et instrumenter manuellement votre application avec la version la plus récente du kit de développement logiciel (SDK).
La version Python d’Application Insights est mise à jour automatiquement dans le cadre des mises à jour App Services et ne peut pas être mise à jour manuellement.
Si vous rencontrez un problème qui a été résolu dans la dernière version du kit de développement logiciel (SDK) Application Insights, vous pouvez supprimer l’instrumentation automatique et instrumenter manuellement votre application avec la version la plus récente du kit de développement logiciel (SDK).
Actuellement, nous n’offrons pas d’options pour configurer l’extension de supervision d’ASP.NET Core.
Pour configurer l’échantillonnage, que vous pouviez auparavant contrôler au moyen du fichier applicationinsights.config, vous pouvez maintenant interagir avec l’échantillonnage en définissant des paramètres d’application avec le préfixe correspondant MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor.
Par exemple, pour changer le pourcentage d’échantillonnage initial, créez un paramètre d’application MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage avec la valeur 100.
Pour désactiver l’échantillonnage, affectez à MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage la valeur 100.
Pour obtenir la liste des paramètres et définition du processeur de télémétrie pris en charge pour l’échantillonnage adaptatif, consultez le code et la documentation sur l’échantillonnage.
Après avoir spécifié la ressource à utiliser, vous pouvez configurer l’agent Java. Si vous ne configurez pas l’agent Java, les configurations par défaut s’appliquent.
L’ensemble complet des configurations est disponible. Vous devez simplement coller un fichier json valide. Excluez la chaîne de connexion et les configurations en préversion ; vous pouvez ajouter les éléments qui se trouvent actuellement en préversion à mesure qu’ils sont mis à la disposition générale.
Une fois les configurations modifiées via le portail Azure, la variable d’environnement APPLICATIONINSIGHTS_CONFIGURATION_FILE est remplie automatiquement et s’affiche dans le panneau des paramètres d’App Service. Cette variable contient le contenu complet du fichier json que vous avez collé dans la zone de texte de la configuration du portail Azure pour votre application Java.
L’agent Node.js peut être configuré à l’aide de JSON. Définissez la variable d’environnement APPLICATIONINSIGHTS_CONFIGURATION_CONTENT sur la chaîne JSON ou définissez la variable d’environnement APPLICATIONINSIGHTS_CONFIGURATION_FILE sur le chemin d’accès du fichier contenant le code JSON.
Si la valeur est None, désactive la collecte et l’exportation de la télémétrie de journalisation.
OTEL_METRICS_EXPORTER
Si la valeur est None, désactive la collecte et l’exportation de données de télémétrie de métriques.
OTEL_TRACES_EXPORTER
Si la valeur est définie sur None, désactive la collecte et l’exportation des données de télémétrie de suivi distribuées.
OTEL_BLRP_SCHEDULE_DELAY
Spécifie l’intervalle d’exportation de journalisation en millisecondes. La valeur par défaut est 5 000.
OTEL_BSP_SCHEDULE_DELAY
Spécifie l’intervalle d’exportation de suivi distribué en millisecondes. La valeur par défaut est 5 000.
OTEL_TRACES_SAMPLER_ARG
Spécifie le ratio de télémétrie de suivi distribué à échantillonné. Les valeurs acceptées sont comprises entre 0 et 1. La valeur par défaut est 1.0, ce qui signifie qu’aucune télémétrie n’est échantillonnées.
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
Spécifie les instrumentations OpenTelemetry à désactiver. En cas de désactivation, les instrumentations ne sont pas exécutées dans le cadre de l’auto-instrumentation. Accepte une liste séparée par des virgules de noms de bibliothèques en minuscules. Par exemple, définissez-le sur "psycopg2,fastapi" pour désactiver les instrumentations Psycopg2 et FastAPI. Il est défini par défaut sur une liste vide, ce qui active toutes les instrumentations prises en charge.
La supervision côté client est activée par défaut pour les applications ASP.NET Core avec le niveau de collecte Recommandé, que le paramètre d’application APPINSIGHTS_JAVASCRIPT_ENABLED soit présent ou non.
Si vous voulez désactiver la supervision côté client :
Sélectionnez Paramètres>Configuration.
Sous Paramètres de l’application, créez un Nouveau paramètre d’application avec les informations suivantes :
Nom : APPINSIGHTS_JAVASCRIPT_ENABLED
Valeur : false
Enregistrez les paramètres. Redémarrez votre application.
La supervision côté client est activée pour ASP.NET. Pour activer la supervision côté client :
Sélectionnez Paramètres>Configuration.
Sous Paramètres d’application, cliquez sur Nouveau paramètre d’application :
Nom : Entrez APPINSIGHTS_JAVASCRIPT_ENABLED.
Valeur : Entrez true.
Enregistrez les paramètres, puis redémarrez votre application.
Pour désactiver la supervision côté client, supprimez la paire clé-valeur associée dans les paramètres de l’application, ou définissez la valeur sur false.
Extension principale, qui contrôle la supervision runtime.
~2 pour Windows ou ~3 pour Linux
XDT_MicrosoftApplicationInsights_Mode
Dans le mode par défaut, seules les fonctionnalités essentielles sont activées afin de garantir des performances optimales.
disabled ou recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk
Pour les applications ASP.NET Core uniquement. Active la technologie interop (interopérabilité) avec le kit SDK Application Insights. Charge l’extension côte à côte avec le kit SDK et l’utilise pour envoyer les données de télémétrie. (Désactive le kit SDK Application Insights.)
1
Définitions des paramètres d’application
Nom du paramètre d’application
Définition
Valeur
ApplicationInsightsAgent_EXTENSION_VERSION
Extension principale, qui contrôle la supervision runtime.
~2
XDT_MicrosoftApplicationInsights_Mode
Dans le mode par défaut, seules les fonctionnalités essentielles sont activées afin de garantir des performances optimales.
default ou recommended
InstrumentationEngine_EXTENSION_VERSION
Contrôle si le moteur de réécriture binaire InstrumentationEngine est activé. Ce paramètre impacte les performances ainsi que les temps de démarrage/démarrage à froid.
~1
XDT_MicrosoftApplicationInsights_BaseExtensions
Contrôle si les textes des tables SQL et Azure, ainsi que les appels de dépendances sont capturés. Avertissement de performance : le temps de démarrage à froid de l’application est affecté. Ce paramètre requiert InstrumentationEngine.
~1
Définitions des paramètres d’application
Nom du paramètre d’application
Définition
Valeur
ApplicationInsightsAgent_EXTENSION_VERSION
Extension principale, qui contrôle la supervision runtime.
~2 sous Windows ou ~3 sous Linux.
XDT_MicrosoftApplicationInsights_Java
Indicateur pour contrôler si l’agent Java est inclus.
0 ou 1 (applicable uniquement sous Windows).
Notes
Le débogueur de capture instantanée n’est pas disponible pour les applications Java.
Définitions des paramètres d’application
Nom du paramètre d’application
Définition
Valeur
ApplicationInsightsAgent_EXTENSION_VERSION
Extension principale, qui contrôle la supervision runtime.
~2 sous Windows ou ~3 sous Linux.
XDT_MicrosoftApplicationInsights_NodeJS
Indicateur pour contrôler si l’agent Node.js est inclus.
0 ou 1 (applicable uniquement sous Windows).
Notes
Le débogueur de capture instantanée n’est pas disponible pour les applications Node.js.
Définitions des paramètres d’application
Nom du paramètre d’application
Définition
Valeur
APPLICATIONINSIGHTS_CONNECTION_STRING
Chaîne de connexions de votre ressource Application Insights.
Exemple : abcd1234-ab12-cd34-abcd1234abcd
ApplicationInsightsAgent_EXTENSION_VERSION
Extension principale, qui contrôle la supervision runtime.
~3
Notes
Le débogueur de capture instantanée n’est pas disponible pour les applications Python.
Paramètres d’application App Service avec Azure Resource Manager
Les paramètres d’application pour Azure App Services peuvent être gérés et configurés à l’aide de modèles Azure Resource Manager. Vous pouvez utiliser cette méthode au moment de déployer de nouvelles ressources App Service avec l’automatisation Resource Manager ou modifiez les paramètres des ressources existantes.
La structure de base des paramètres d’application JSON pour une ressource App Service :
Pour obtenir un exemple de modèle Resource Manager où les paramètres d’application sont configurés pour Application Insights, consultez ce modèle. Plus précisément, consultez la section qui commence à la ligne 238.
Automatisez la création d’une ressource Application Insights et créez un lien vers votre nouvelle ressource App Service
Pour créer un modèle Resource Manager avec les paramètres Application Insights par défaut, commencez le processus comme si vous alliez créer une nouvelle application web avec Application Insights activé.
Créez une ressource App Service avec les informations d’application web souhaitées. Activez Application Insights sous l’onglet Supervision.
Sélectionnez Revoir + créer. Sélectionnez ensuite Télécharger un modèle pour automation.
Cette option génère le dernier modèle Resource Manager configuré avec tous les paramètres nécessaires.
Dans l’exemple suivant, remplacez toutes les instances de AppMonitoredSite par le nom de votre site :
Notes
Si vous travaillez sous Windows, définissez ApplicationInsightsAgent_EXTENSION_VERSION sur ~2. Si vous travaillez sous Linux, définissez ApplicationInsightsAgent_EXTENSION_VERSION sur ~3.
Pour activer la supervision d’application via PowerShell, seuls les paramètres d’application sous-jacents doivent être modifiés. L’exemple suivant active la supervision d’application pour un site web appelé AppMonitoredSite dans le groupe de ressources AppMonitoredRG. Il configure les données à envoyer à la clé d’instrumentation 012345678-abcd-ef01-2345-6789abcd.
Si vous travaillez sous Windows, définissez ApplicationInsightsAgent_EXTENSION_VERSION sur ~2. Si vous travaillez sous Linux, définissez ApplicationInsightsAgent_EXTENSION_VERSION sur ~3.
Cette section fournit des réponses aux questions fréquentes.
Que modifie Application Insights dans mon projet ?
Cela dépend du type de projet. La liste suivante est un exemple d’application web.
Ajoute des fichiers à votre projet :
ApplicationInsights.config
ai.js
Installe des packages NuGet :
API Application Insights : API de base
API Application Insights pour les applications web : permet d’envoyer des données de télémétrie à partir du serveur
API Application Insights pour les applications JavaScript : permet d’envoyer des données de télémétrie à partir du client
Inclut des assemblys dans des packages :
Microsoft.ApplicationInsights
Microsoft.ApplicationInsights.Platform
Insère des éléments dans :
Web.config
packages.config
Insère des extraits de code dans le code du client et du serveur, afin de les initialiser avec l'ID de la ressource Application Insights. Par exemple, dans une application MVC, le code est inséré dans la page principale Views/Shared/_Layout.cshtml. Pour les nouveaux projets uniquement, vous ajoutez manuellement Application Insights à un projet existant.
Quelles sont les différences entre les métriques standard d’Application Insights et les métriques d’Azure App Service ?
Application Insights collecte des données de télémétrie pour les requêtes qui les ont transmises à l’application. Si l'échec se produit dans WebApps/WebServer et que la requête n'a pas atteint l'application utilisateur, Application Insights n'a aucune télémétrie à ce sujet.
La durée calculée pour serverresponsetime par Application Insights ne correspond pas nécessairement au temps de réponse du serveur observé par Web Apps. Ce comportement est dû au fait qu’Application Insights compte uniquement la durée nécessaire à la requête pour atteindre l’application utilisateur. Si la requête est bloquée ou mise en file d'attente dans WebServer, le temps d'attente est inclus dans les indicateurs de performance Web Apps mais pas dans les métriques Application Insights.
Dépannage
Tester la connectivité entre votre hôte d’application et le service d’ingestion
Les SDK et les agents Application Insights envoient de la télémétrie à ingérer en tant qu’appels REST à nos points de terminaison d’ingestion. Vous pouvez tester la connectivité de votre serveur web ou de votre machine hôte d’application vers les points de terminaison de service d’ingestion en utilisant des clients du Representational State Transfer (REST) bruts à partir de commandes PowerShell ou curl. Consultez Résoudre les problèmes de télémétrie d’application manquante dans Azure Monitor Application Insights.
Quand vous créez une application web avec les runtime ASP.NET Core dans App Service, elle déploie une seule page HTML statique en tant que site web de démarrage. Nous vous déconseillons de résoudre un problème avec le modèle par défaut. Déployez une application avant de résoudre un problème.
Données de télémétrie manquantes
Windows
Vérifiez que le paramètre d’application ApplicationInsightsAgent_EXTENSION_VERSION défini a la valeur ~2.
Accédez à https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Vérifiez que l’État de l’extension Application Insights est Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Vérifiez que la source d’état existe et qu’elle ressemble à Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
S’il n’y en a pas, cela signifie que l’application n’est pas en cours d’exécution ou n’est pas prise en charge. Pour vous assurer que l’application est en cours d’exécution, essayez d’accéder manuellement à l’URL/aux points de terminaison de l’application, pour rendre disponibles les informations de runtime.
Vérifiez que IKeyExists a la valeur True. Si la valeur est False, ajoutez APPINSIGHTS_INSTRUMENTATIONKEY et APPLICATIONINSIGHTS_CONNECTION_STRING avec votre GUID iKey aux paramètres de votre application.
Si votre application fait référence à des packages Application Insights, l’activation de l’intégration d’App Service peut ne pas prendre effet et les données ne pas apparaître dans Application Insights. C’est le cas par exemple si vous avez déjà instrumenté ou tenté d’instrumenter votre application avec le kit de développement logiciel (SDK) ASP.NET Core. Pour résoudre le problème, dans le portail Azure, activez Interopérabilité avec le kit de développement logiciel (SDK) Application Insights.
Important
Cette fonctionnalité n’existe qu’en version préliminaire.
Les données sont envoyées en utilisant une approche sans code, même si le kit de développement logiciel (SDK) Application Insights a été initialement utilisé ou a fait l’objet d’une tentative d’utilisation.
Important
Si l’application a utilisé le SDK Application Insights pour envoyer des données de télémétrie, la télémétrie est désactivée. En d’autres termes, la télémétrie personnalisée (par exemple, les méthodes Track*()) et les paramètres personnalisés (comme l’échantillonnage) sont désactivés.
Linux
Vérifiez que le paramètre d’application ApplicationInsightsAgent_EXTENSION_VERSION défini a la valeur ~3.
Accédez à https://your site name.scm.azurewebsites.net/ApplicationInsights.
Dans ce site, vérifiez ce qui suit :
La source d’état existe et ressemble à Status source /var/log/applicationinsights/status_abcde1234567_89_0.json.
La valeur Auto-Instrumentation enabled successfully est affichée. Si une valeur similaire n’est pas présente, cela signifie que l’application n’est pas en cours d’exécution ou n’est pas prise en charge. Pour vous assurer que l’application est en cours d’exécution, essayez d’accéder manuellement à l’URL/aux points de terminaison de l’application, pour rendre disponibles les informations de runtime.
IKeyExists a la valeur True. Si la valeur est False, ajoutez APPINSIGHTS_INSTRUMENTATIONKEY et APPLICATIONINSIGHTS_CONNECTION_STRING avec votre GUID iKey aux paramètres de votre application.
Le site web par défaut déployé avec les applications web ne prend pas en charge le monitoring automatique côté client
Quand vous créez une application web avec les runtimes ASP.NET dans App Service, elle déploie une seule page HTML statique en tant que site web de démarrage. La page web statique charge aussi un composant web managé ASP.NET dans IIS. Ce comportement permet de tester la supervision côté serveur sans code, mais ne prend pas en charge la supervision automatique côté client.
Si vous souhaitez tester la supervision côté client et côté serveur sans coded’ASP.NET Core dans une application web App Service, nous vous recommandons de suivre les guides officiels de Création d’une application web ASP.NET Core. Utilisez ensuite les instructions de cet article pour activer la supervision.
PHP et WordPress ne sont pas pris en charge
Les sites PHP et WordPress ne sont pas pris en charge. Il n’existe actuellement aucun SDK/agent officiellement pris en charge pour la surveillance côté serveur de ces charges de travail. Pour suivre des transactions côté client sur un site PHP ou WordPress, ajoutez le JavaScript côté client à vos pages web à l’aide du kit de développement logiciel (SDK) JavaScript.
Le tableau suivant explique la signification de ces valeurs d’erreur, leurs causes sous-jacentes et les corrections conseillées.
Valeur du problème
Explication
Fix
AppAlreadyInstrumented:true
Cette valeur indique que l’extension a détecté que certains éléments du kit de développement logiciel (SDK) sont déjà présents dans l’application et sont en attente. Une référence à Microsoft.ApplicationInsights.AspNetCore ou à Microsoft.ApplicationInsights peut entraîner cette valeur.
Supprimez la référence. Certaines de ces références sont ajoutées par défaut à partir de certains modèles Visual Studio. Versions plus ancienne de la référence Visual Studio Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true
La présence de la DLL Microsoft.ApplicationsInsights issue d’un déploiement précédent dans le dossier de l’application peut également entraîner cette valeur.
Supprimez ces DLL du dossier de l’application. Vérifiez le répertoire bin de votre application locale et le répertoire wwwroot sur l’App Service. (Pour vérifier le répertoire wwwroot de votre application web App Service, sélectionnez Outils avancés (Kudu) >Console de débogage>CMD>home\site\wwwroot).
IKeyExists:false
Cette valeur indique que la clé d’instrumentation n’est pas présente dans le paramètre d’application APPINSIGHTS_INSTRUMENTATIONKEY. Cela peut s’expliquer par la suppression accidentelle des valeurs ou par l’oubli de définition des valeurs dans le script d’automatisation.
Vérifiez que le paramètre est défini dans les paramètres d’application App Service.
Notes
Quand vous créez une application web avec les runtime ASP.NET dans App Service, elle déploie une seule page HTML statique en tant que site web de démarrage. Nous vous déconseillons de résoudre un problème avec un modèle par défaut. Déployez une application avant de résoudre un problème.
Données de télémétrie manquantes
Vérifiez que le paramètre d’application ApplicationInsightsAgent_EXTENSION_VERSION défini a la valeur ~2.
Accédez à https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Vérifiez que est Application Insights Extension Status et Pre-Installed Site Extension, version 2.8.x.xxxx est en cours d’exécution.
Vérifiez que la source d’état existe et qu’elle ressemble à Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
S’il n’y en a pas, cela signifie que l’application n’est pas en cours d’exécution ou n’est pas prise en charge. Pour vous assurer que l’application est en cours d’exécution, essayez d’accéder manuellement à l’URL/aux points de terminaison de l’application, pour rendre disponibles les informations de runtime.
Vérifiez que IKeyExists a la valeur true.
Si ce n’est pas le cas, ajoutez APPINSIGHTS_INSTRUMENTATIONKEY et APPLICATIONINSIGHTS_CONNECTION_STRING avec votre GUID de clé d'instrumentation aux paramètres de votre application.
Vérifiez qu’il n’y a pas d’entrées AppAlreadyInstrumented, AppContainsDiagnosticSourceAssembly et AppContainsAspNetTelemetryCorrelationAssembly.
S’il y en a, supprimez les packages suivants de votre application : Microsoft.ApplicationInsights, System.Diagnostics.DiagnosticSource et Microsoft.AspNet.TelemetryCorrelation.
Le site web par défaut déployé avec les applications web ne prend pas en charge le monitoring automatique côté client
Quand vous créez une application web avec les runtimes ASP.NET dans App Service, elle déploie une seule page HTML statique en tant que site web de démarrage. La page web statique charge aussi un composant web managé ASP.NET dans IIS. Cette page permet de tester la surveillance côté serveur sans code, mais ne prend pas en charge la surveillance automatique côté client.
Si vous souhaitez tester la supervision côté client et côté serveur sans code pour ASP.NET dans une application web App Service, nous vous recommandons de suivre les guides officiels de Création d’une application web ASP.NET Framework. Utilisez ensuite les instructions de cet article pour activer la supervision.
APPINSIGHTS_JAVASCRIPT_ENABLED et urlCompression ne sont pas pris en charge
Si vous utilisez APPINSIGHTS_JAVASCRIPT_ENABLED=true là où du contenu est encodé, vous pouvez voir ce type d’erreur :
Erreur de réécriture d’URL 500.
Erreur du module de réécriture d’URL 500.53 avec un message indiquant que les règles de réécriture sortantes ne peuvent pas être appliquées quand le contenu de la réponse HTTP est encodé (« gzip »).
Une erreur se produit parce que le paramètre d’application APPINSIGHTS_JAVASCRIPT_ENABLED est défini sur true et que l’encodage de contenu est présent en même temps. Ce scénario n’est pas encore pris en charge. La solution de contournement consiste à supprimer APPINSIGHTS_JAVASCRIPT_ENABLED de vos paramètres d’application. Malheureusement, si l’instrumentation JavaScript côté client/navigateur est toujours requise, des références manuelles au SDK sont nécessaires pour vos pages web. Suivez les instructions pour activer l’instrumentation manuelle avec le kit de développement logiciel (SDK) JavaScript.
Pour avoir les toutes dernières informations sur l’extension/agent Application Insights, consultez les notes de publication.
PHP et WordPress ne sont pas pris en charge
Les sites PHP et WordPress ne sont pas pris en charge. Il n’existe actuellement aucun SDK/agent officiellement pris en charge pour la surveillance côté serveur de ces charges de travail. Pour suivre des transactions côté client sur un site PHP ou WordPress, ajoutez le JavaScript côté client à vos pages web à l’aide du kit de développement logiciel (SDK) JavaScript.
Le tableau suivant explique la signification de ces valeurs d’erreur, leurs causes sous-jacentes et les corrections conseillées.
Valeur du problème
Explication
Fix
AppAlreadyInstrumented:true
Cette valeur indique que l’extension a détecté que certains éléments du kit de développement logiciel (SDK) sont déjà présents dans l’application et sont en attente. Une référence à System.Diagnostics.DiagnosticSource, Microsoft.AspNet.TelemetryCorrelation, ou Microsoft.ApplicationInsights peut entraîner cette valeur.
Supprimez la référence. Certaines de ces références sont ajoutées par défaut à partir de certains modèles Visual Studio. Les versions antérieures de Visual Studio peuvent ajouter des références à Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true
La présence des DLL issues d’un déploiement précédent dans le dossier de l’application peut également entraîner cette valeur.
Supprimez ces DLL du dossier de l’application. Vérifiez le répertoire bin de votre application locale et le répertoire wwwroot sur la ressource App Service. (Pour vérifier le répertoire wwwroot de votre application web App Service, sélectionnez Outils avancés (Kudu)>Console de débogage>CMD>home\site\wwwroot).
Cette valeur indique que l’extension a détecté des références à Microsoft.AspNet.TelemetryCorrelation dans l’application et qu’elle est mise en attente.
Supprimez la référence.
AppContainsDiagnosticSourceAssembly**:true
Cette valeur indique que l’extension a détecté des références à System.Diagnostics.DiagnosticSource dans l’application et qu’elle est mise en attente.
Pour ASP.NET, supprimez la référence.
IKeyExists:false
Cette valeur indique que la clé d’instrumentation n’est pas présente dans le paramètre d’application APPINSIGHTS_INSTRUMENTATIONKEY. Les causes possibles peuvent être que les valeurs ont été supprimées accidentellement ou que vous avez oublié de définir les valeurs dans le script d’automatisation.
Vérifiez que le paramètre est défini dans les paramètres d’application App Service.
System.IO.FileNotFoundException après la mise à niveau 2.8.44
La version 2.8.44 de l’instrumentation automatique met à niveau le kit de développement logiciel (SDK) Application Insights vers la version 2.20.0. Le SDK Application Insights a une référence indirecte à System.Runtime.CompilerServices.Unsafe.dll via System.Diagnostics.DiagnosticSource.dll. Si l’application a une redirection de liaison pour System.Runtime.CompilerServices.Unsafe.dll et si cette bibliothèque n’est pas présente dans le dossier d’application, elle peut lever une exception System.IO.FileNotFoundException.
Pour résoudre ce problème, supprimez l’entrée de redirection de liaison pour System.Runtime.CompilerServices.Unsafe.dll dans le fichier web.config. Si l’application voulait utiliser System.Runtime.CompilerServices.Unsafe.dll, définissez la redirection de liaison comme présenté ici :
Comme solution de contournement temporaire, vous pouvez définir le paramètre d’application ApplicationInsightsAgent_EXTENSION_VERSION sur une valeur de 2.8.37. Ce paramètre déclenche l’utilisation de l’ancienne extension Application Insights par App Service. Les résolutions temporaires ne doivent être utilisées que comme des solutions intermédiaires.
Données de télémétrie manquantes
Vérifiez que le paramètre d’application ApplicationInsightsAgent_EXTENSION_VERSION est défini sur une valeur de ~2 sous Windows, de ~3 sous Linux
Examinez le fichier journal pour vérifier que l’agent a bien démarré : accédez à https://yoursitename.scm.azurewebsites.net/, sous SSH, passez au répertoire racine, le fichier journal est situé sous LogFiles/ApplicationInsights.
Après l’activation de la supervision des applications pour votre application Java, vous pouvez vérifier que l’agent fonctionne en regardant les métriques en direct. Avant même de déployer une application sur App Service, vous verrez des requêtes de l’environnement. N’oubliez pas que l’ensemble complet des données de télémétrie n’est disponible qu’après avoir déployé et exécuté votre application.
Définissez la variable d’environnement APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL sur debug si vous ne voyez aucune erreur et qu’il n’y a pas de données de télémétrie.
Données de télémétrie manquantes
Windows
Vérifiez que le paramètre d’application ApplicationInsightsAgent_EXTENSION_VERSION est défini sur une valeur ~2.
Accédez à https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Vérifiez que l’extension est en cours d’exécution (Application Insights Extension Status affiche Pre-Installed Site Extension, version 2.8.x.xxxx, is running.)
Accédez à D:\local\Temp\status.json et ouvrez status.json.
Vérifiez que la valeur SDKPresent est définie sur false, la valeur AgentInitializedSuccessfully sur true et que la valeur IKey dispose d’une iKey valide.
Si la valeur SDKPresent est définie sur VRAI, cela indique que l’extension a détecté que certains éléments du kit de développement logiciel (SDK) sont déjà présents dans l’application et qu’elle va se mettre en attente.
Linux
Vérifiez que le paramètre d’application ApplicationInsightsAgent_EXTENSION_VERSION est défini sur une valeur ~3.
Accédez à /var/log/applicationinsights/ et ouvrez status.json.
Vérifiez que la valeur SDKPresent est définie sur false, la valeur AgentInitializedSuccessfully sur true et que la valeur IKey dispose d’une iKey valide.
Si la valeur SDKPresent est définie sur VRAI, cela indique que l’extension a détecté que certains éléments du kit de développement logiciel (SDK) sont déjà présents dans l’application et qu’elle va se mettre en attente.
L’utilisation de l’auto-instrumentation au-dessus de l’instrumentation manuelle peut entraîner des données de télémétrie en double et augmenter votre coût. Pour utiliser l’auto-instrumentation d’App Service OpenTelemetry, commencez par supprimer l’instrumentation manuelle d’OpenTelemetry de votre code.
Données de télémétrie manquantes
Si vous ne disposez pas de données de télémétrie, procédez comme suit pour vérifier que l’auto-instrumentation est activée correctement.
Confirmez que l’instrumentation automatique est activée dans l’expérience Application Insights de votre ressource App Service.
Vérifiez que le paramètre d’application ApplicationInsightsAgent_EXTENSION_VERSION est défini sur une valeur de ~3 et que votre APPLICATIONINSIGHTS_CONNECTION_STRING pointe vers la ressource Application Insights appropriée.
Vérifiez les diagnostics d’instrumentation automatique et les journaux d’état.
a. Accédez à /var/log/applicationinsights/ et ouvrez status_*.json.
b. Vérifiez que AgentInitializedSuccessfully a la valeur true et IKey avoir une clé iKey valide.
Le fichier applicationinsights-extension.log dans le même dossier peut afficher d’autres diagnostics utiles.
Applications Django
Si votre application utilise Django et ne parvient pas à démarrer ou à utiliser des paramètres incorrects, veillez à définir la variable d’environnement DJANGO_SETTINGS_MODULE. Pour plus d’informations, consultez la section Instrumentation Django.
Cette section contient les notes de publication de la version d’Azure App Service basée sur ANT de l’instrumentation du runtime avec Application Insights.
Pour connaître la version de l’extension que vous utilisez actuellement, accédez à l’adresse https://<yoursitename>.scm.azurewebsites.net/ApplicationInsights.
Séparer des packages .NET/.NET Core, Java et Node.js dans différentes extensions de site Windows d’App Service.
2.8.42
Ajout de déploiements autonomes et prise en charge de .NET 6.0 à l’aide d’un Crochet de démarrage .NET.
2.8.41
Suppression des versions hors support (2.1). Les versions prises en charge sont les versions 3.1 et 5.0.
2.8.39
Ajout de la prise en charge de .NET Core 5.0.
2.8.38
Suppression des versions hors support (2.0, 2.2, 3.0). Les versions prises en charge sont les versions 2.1 et 3.1.
2.8.37
Extension Windows AppSvc : .NET Core rendu opérationnel avec tout version de System.Diagnostics.DiagnosticSource.dll.
2.8.36
Extension Windows AppSvc : activation d’inter-op avec le Kit de développement logiciel (SDK) IA dans .NET Core.
2.8.35
Extension Windows AppSvc : Ajout de la prise en charge de .NET Core 3.1.
2.8.33
Les agents .NET, .NET core, Java et Node.js, ainsi que l’extension Windows : Prise en charge des clouds souverains. Les chaînes de connexion peuvent être utilisées pour envoyer des données à des clouds souverains.
2.8.31
L’agent ASP.NET Core a résolu un problème avec le Kit de développement logiciel (SDK) Application Insights. Si le runtime a chargé la version incorrecte de System.Diagnostics.DiagnosticSource.dll, l’extension sans code ne bloque pas l’application et s’interrompt. Pour résoudre le problème, les clients doivent supprimer System.Diagnostics.DiagnosticSource.dll du dossier classe ou utiliser l’ancienne version de l’extension en définissant ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24. Si ce n’est pas le cas, la surveillance des applications n’est pas activée.
2.8.26
Correction du problème lié à la mise à jour du kit de développement logiciel Application Insights. L’agent ne tente pas de charger AiHostingStartup si le fichier ApplicationInsights.dll est déjà présent dans le dossier classe. Cela résout les problèmes liés à la réflexion via Assembly<AiHostingStartup>.GetTypes().
Problèmes connus : Une exception System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' peut être levée si une autre version de DiagnosticSource dll est chargée. Cela peut se produire, par exemple, si System.Diagnostics.DiagnosticSource.dll est présent dans le dossier de publication. Pour atténuer les risques, utilisez la version précédente de l’extension en définissant les paramètres de l’application dans services d’application : ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24.
2.8.24
Version repackagée de 2.8.21.
2.8.23
Ajout de la prise en charge de l’analyse du code ASP.NET Core 3.0.
Mise à jour de ASP.NET Core SDK vers 2.8.0 pour les versions du runtime 2.1, 2.2 et 3.0. Les applications ciblant .NET Core 2.0 continuent à utiliser le 2.1.1 du kit de développement logiciel (SDK).
2.8.14
Mise à jour d’ASP.NET Core de la version du kit de développement logiciel (SDK) de 2.3.0 vers la dernière version (2.6.1) pour les applications ciblant .NET Core 2.1, 2.2. Les applications ciblant .NET Core 2.0 continuent à utiliser le 2.1.1 du kit de développement logiciel (SDK).
2.8.12
Prise en charge des applications ASP.NET Core 2.2.
Correction d’un bogue dans ASP.NET Core extension provoquant l’injection du SDK même lorsque l’application est déjà instrumentée avec le kit de développement logiciel (SDK). Pour les applications 2.1 et 2.2, la présence de ApplicationInsights.dll dans le dossier de l’application entraîne désormais l’interruption de l’extension. Pour les applications 2.0, l’extension est désactivée uniquement si ApplicationInsights est activé avec un appel de UseApplicationInsights().
Correction permanente de la réponse HTML incomplète pour les applications ASP.NET Core. Ce correctif est maintenant étendu pour fonctionner avec les applications .NET Core 2.2.
Ajout de la prise en charge de la désactivation de l’injection JavaScript pour les applications ASP.NET Core (APPINSIGHTS_JAVASCRIPT_ENABLED=false appsetting). Pour ASP.NET Core, l’injection JavaScript est en mode « désactivation » par défaut, sauf si elle est explicitement désactivée. (Le paramètre par défaut est utilisé pour conserver le comportement actuel.)
Correction du bogue de l’extension ASP.NET Core qui a provoqué l’injection même si ikey n’était pas présent.
Correction d’un bogue dans la logique de préfixe de la version du SDK qui provoquait une version incorrecte du kit de développement logiciel (SDK).
Ajout du préfixe de version du SDK pour les applications ASP.NET Core pour identifier la façon dont la télémétrie a été collectée.
Correction de la page SCM - ApplicationInsights pour afficher correctement la version de l’extension préinstallée.
2.8.10
Correction de la réponse HTML incomplète pour les applications ASP.NET Core.
Séparer des packages .NET/.NET Core, Java et Node.js dans différentes extensions de site Windows d’App Service.
2.8.33
Les agents .NET, .NET core, Java et Node.js, ainsi que l’extension Windows : Prise en charge des clouds souverains. Les chaînes de connexion peuvent être utilisées pour envoyer des données à des clouds souverains.
2.8.24
Version repackagée de 2.8.21.
2.8.43
Séparer des packages .NET/.NET Core, Java et Node.js dans différentes extensions de site Windows d’App Service.
2.8.42
Mise à niveau vers l’Agent Java 3.2.0 à partir de la version 2.5.1.
Les agents .NET, .NET core, Java et Node.js, ainsi que l’extension Windows : Prise en charge des clouds souverains. Les chaînes de connexion peuvent être utilisées pour envoyer des données à des clouds souverains.
2.8.24
Version repackagée de 2.8.21.
2.8.43
Séparer des packages .NET/.NET Core, Java et Node.js dans différentes extensions de site Windows d’App Service.
2.8.42
Mise à jour du kit de développement logiciel (SDK) IA de la version 2.1.7 à la version 2.1.8. Ajout de la prise en charge des identités managées Microsoft Entra affectées par l’utilisateur et le système.
2.8.41
Mise à jour du kit de développement logiciel (SDK) IA de la version 2.1.3 à la version 2.1.7.
2.8.40
Mise à jour du kit de développement logiciel (SDK) IA de la version 1.8.8 à la version 2.1.3.
2.8.38
Mise à jour du kit de développement logiciel (SDK) IA de la version 1.8.7 à la version 1.8.8.
2.8.33
Les agents .NET, .NET core, Java et Node.js, ainsi que l’extension Windows : Prise en charge des clouds souverains. Les chaînes de connexion peuvent être utilisées pour envoyer des données à des clouds souverains.
2.8.24
Version repackagée de 2.8.21.
Les notes de publication pour Python s’affichent ici.