Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Application Insights collecte les données de télémétrie de votre application pour faciliter le diagnostic des défaillances et l’examen des transactions lentes. Il comprend quatre outils essentiels :
Vues Échecs : permet d’effectuer le suivi des erreurs, des exceptions et des défaillances, en offrant des insights clairs pour une résolution rapide des problèmes et une stabilité améliorée.
Vue performances : identifie et aide rapidement à résoudre les goulots d’étranglement des applications en affichant les temps de réponse et les nombres d’opérations.
Affichage de recherche : permet aux utilisateurs de localiser et d’examiner des éléments de télémétrie individuels tels que les affichages de page, les exceptions et les événements personnalisés.
Diagnostics de transaction : identifiez rapidement les problèmes dans les composants via des aperçus complets sur les détails de transaction de bout en bout.
Ensemble, ces outils garantissent l’intégrité et l’efficacité continues des applications web. Vous pouvez les utiliser pour identifier les problèmes ou les améliorations qui auraient le plus d’impact sur les utilisateurs.
Pour accéder à l’affichage Échecs dans Application Insights, sélectionnez le graphique demandes ayant échoué dans le volet Vue d’ensemble , ou Échecs sous la catégorie Examiner dans le menu de ressources.
Vous pouvez également accéder à l’affichage des échecs à partir de la carte d’application en sélectionnant une ressource, puis examiner les échecs de la section triage.
Remarque
Vous pouvez accéder à Diagnostics des transactions via l'une des trois autres expériences. Pour plus d’informations, consultez Examiner les données de télémétrie.
Aperçu
La vue Échecs affiche la liste de toutes les opérations ayant échoué collectées pour votre application, avec l’option permettant d’explorer chacune d’elles. Il vous permet d’afficher leur fréquence et le nombre d’utilisateurs affectés pour vous aider à concentrer vos efforts sur les problèmes ayant un impact le plus élevé.
Remarque
Outre les données de télémétrie prêtes à l’emploi envoyées par le kit de distribution OpenTelemetry Azure Monitor ou le Kit de développement logiciel (SDK) JavaScript, vous pouvez ajouter et modifier des données de télémétrie (par exemple, des événements personnalisés).
Pour plus d’informations, consultez Ajoutez et modifiez Azure Monitor OpenTelemetry pour les applications .NET, Java, Node.js et Python.
Filtrer les données de télémétrie
Filtres par défaut
Toutes les expériences vous permettent de filtrer les données de télémétrie par intervalle de temps. En outre, chaque expérience est fournie avec son propre filtre par défaut :
Vous pouvez sélectionner le service (Nom du rôle cloud) ou l’ordinateur/conteneur (Instance de rôle cloud) à afficher dans le menu filtre Rôles . Cette action vous permet d’isoler les problèmes ou les tendances de performances dans des parties spécifiques de votre application.
Pour savoir comment définir le nom du rôle Cloud et l’instance de rôle Cloud, consultez Configure Azure Monitor OpenTelemetry.
Ajouter des filtres
Vous pouvez filtrer les événements en fonction des valeurs de leurs propriétés. Les propriétés disponibles dépendent des types d’événements ou de télémétrie que vous avez sélectionnés. Pour ajouter un filtre :
Sélectionnez
pour ajouter un filtre.
Dans la liste déroulante gauche, sélectionnez une propriété.
Dans la liste déroulante centrale, sélectionnez l’un des opérateurs suivants :
=, ,!=containsounot contains.Dans la liste déroulante de droite, sélectionnez toutes les valeurs de propriété sur lesquelles vous souhaitez filtrer.
Remarque
Notez que les nombres à droite des valeurs de filtre affichent le nombre d’occurrences dans le jeu actuellement filtré.
Pour ajouter un autre filtre, sélectionnez à nouveau
.
Télémétrie de recherche
Vous pouvez rechercher des opérations spécifiques à l’aide de la recherche pour filtrer les éléments... champ au-dessus de la liste des opérations.
Utiliser des données analytiques
Toutes les données collectées par Application Insights sont stockées dans Log Analytics. Il fournit un langage de requête riche pour analyser les requêtes qui ont généré l’exception que vous examinez.
Conseil / Astuce
Le mode simple dans Log Analytics offre une interface de point et de clic intuitive pour l’analyse et la visualisation des données de journal.
Dans les performances, les échecs ou l’affichage de recherche, sélectionnez Afficher dans les journaux dans la barre de navigation supérieure et sélectionnez une requête dans le menu déroulant.
Cette action vous permet d’accéder à la vue Journaux , où vous pouvez modifier davantage la requête ou en sélectionner une autre dans la barre latérale.
Examiner les données de télémétrie
Pour examiner la cause racine d’une erreur ou d’une exception, vous pouvez explorer l’opération problématique pour une vue détaillée des détails de transaction de bout en bout qui inclut les dépendances et les détails d’exception.
Sélectionnez une opération pour afficher les 3 principaux codes de réponse, les 3 principaux types d’exceptions et les 3 principales dépendances ayant échoué pour cette opération.
Sous Explorer, sélectionnez le bouton avec le nombre de résultats filtrés pour afficher une liste d’exemples d’opérations.
Sélectionnez un exemple d’opération pour ouvrir la vue des détails de la transaction de bout en bout .
Remarque
Les exemples suggérés contiennent des données de télémétrie connexes de tous les composants, même si l’échantillonnage est en vigueur dans l’un d’eux.
Conseil / Astuce
Si vous avez besoin de la pile d’appels associée à un échec, ouvrez l’exception correspondante dans les détails de la transaction de bout en bout ou dans l’onglet Exceptions. Les traces de pile ne sont visibles que si la télémétrie des exceptions a été collectée pour cette opération.
Analyser les performances et les échecs côté client
Si vous instrumentez vos pages web avec Application Insights, vous pouvez obtenir une visibilité sur les affichages de pages, les opérations de navigateur et les dépendances. La collecte de ces données de navigateur nécessite l’ajout d’un script à vos pages web.
Après avoir ajouté le script, vous pouvez accéder aux vues de page et leurs métriques de performance associées en sélectionnant l'option Browser dans l'affichage Performance ou Failures.
Cette vue fournit un résumé visuel des différentes télémétries de votre application du point de vue du navigateur.
Conseil / Astuce
Pour les applications monopage (SPA), activez enableAutoRouteTracking ou appelez trackPageView() sur les modifications d’itinéraire afin que chaque page logique crée son propre affichage de page et son opération. Sinon, plusieurs modifications de routage peuvent être corrélées à une seule opération et certaines durées d’affichage de page peuvent apparaître sous la forme
0.Pour les opérations de navigateur, l’affichage détails de la transaction de bout en bout affiche les propriétés d’affichage de page du client demandant la page, y compris le type de navigateur et son emplacement. Ces informations peuvent vous aider à déterminer s’il existe des problèmes de performances liés à des types particuliers de clients.
Remarque
À l’instar des données collectées pour les performances du serveur, Application Insights met à disposition toutes les données client pour une analyse approfondie à l’aide de journaux.
Expériences de diagnostics de transaction
L’expérience de diagnostic des transactions , également appelée vue des détails de transaction de bout en bout , affiche un diagramme de Gantt de la transaction, qui répertorie tous les événements avec leur code de durée et de réponse.
Cette expérience de diagnostic met automatiquement en corrélation les données de télémétrie côté serveur de tous vos composants surveillés Application Insights en une seule vue et prend en charge plusieurs ressources. Application Insights détecte la relation sous-jacente et permet de diagnostiquer facilement le composant d’application, la dépendance ou l’exception à l’origine du ralentissement ou de l’échec de la transaction.
La sélection d’un événement spécifique révèle ses propriétés, notamment des informations supplémentaires telles que la commande sous-jacente ou la pile des appels.
Cette vue comporte quatre parties clés :
Ce volet réductible affiche les autres résultats qui correspondent aux critères de filtrage. Sélectionnez un résultat pour mettre à jour les détails respectifs des trois sections précédentes. Nous avons tenté de trouver les exemples qui sont les plus susceptibles d’avoir des informations disponibles pour tous les composants, même si l’échantillonnage est appliqué dans l’un d’eux. Ces exemples sont présentés sous forme de suggestions.
Remarque
L’expérience de diagnostic des transactions offre désormais une vue simple, qui montre les étapes de l’agent de façon claire et sous forme de récit. Pour plus d’informations, consultez Surveiller les agents IA avec Application Insights.
Annotations de version
Les annotations de publication marquent les déploiements et d’autres événements significatifs sur les graphiques Application Insights, ce qui permet la corrélation des modifications avec les performances, les échecs et l’utilisation.
Annotations automatiques avec Azure Pipelines
Azure Pipelines crée une annotation de version pendant le déploiement lorsque toutes les conditions suivantes sont remplies :
- La ressource cible est liée à Application Insights via le paramètre d’application
APPLICATIONINSIGHTS_CONNECTION_STRING. - La ressource Application Insights se trouve dans le même abonnement que la ressource cible.
- Le déploiement utilise l’une des tâches Azure Pipelines suivantes :
| Code de tâche | Nom de la tâche | Versions |
|---|---|---|
| AzureAppServiceSettings | paramètres de Azure App Service | N'importe lequel |
| AzureRmWebAppDeployment | Azure App Service | V3+ |
| AzureFunctionApp | Azure Functions | N'importe lequel |
| AzureFunctionAppContainer | Azure Functions pour le conteneur | N'importe lequel |
| AzureWebAppContainer | Azure Web App pour conteneurs | N'importe lequel |
| AzureWebApp | Application web Azure | N'importe lequel |
Remarque
Si vous utilisez toujours l’ancienne tâche de déploiement d’annotation Application Insights, supprimez-la.
Configurer des annotations dans un pipeline à l’aide d’un script inline
Si vous n’utilisez pas les tâches de la section précédente, ajoutez un script inline à l’étape de déploiement.
Ouvrez un pipeline existant ou créez-en un, puis sélectionnez une tâche sous Étapes.
Ajoutez une nouvelle tâche Azure CLI.
Sélectionnez l’abonnement Azure. Définissez le type de script sur PowerShell et définissez l’emplacement du scriptsur Inline.
Ajoutez le script PowerShell de l’étape 2 dans Créer des annotations de version avec l'interface CLI d'Azure dans Script Inline.
Ajoutez des arguments de script. Remplacez les espaces réservés entre crochets angle.
-aiResourceId "<aiResourceId>" ` -releaseName "<releaseName>" ` -releaseProperties @{"ReleaseDescription"="<a description>"; "TriggerBy"="<Your name>" }L’exemple suivant montre les métadonnées que vous pouvez définir dans l’argument facultatif
releasePropertiesà l’aide de variables de génération et de mise en production. Cliquez sur Enregistrer.-releaseProperties @{ "BuildNumber"="$(Build.BuildNumber)"; "BuildRepositoryName"="$(Build.Repository.Name)"; "BuildRepositoryProvider"="$(Build.Repository.Provider)"; "ReleaseDefinitionName"="$(Build.DefinitionName)"; "ReleaseDescription"="Triggered by $(Build.DefinitionName) $(Build.BuildNumber)"; "ReleaseEnvironmentName"="$(Release.EnvironmentName)"; "ReleaseId"="$(Release.ReleaseId)"; "ReleaseName"="$(Release.ReleaseName)"; "ReleaseRequestedFor"="$(Release.RequestedFor)"; "ReleaseWebUrl"="$(Release.ReleaseWebUrl)"; "SourceBranch"="$(Build.SourceBranch)"; "TeamFoundationCollectionUri"="$(System.TeamFoundationCollectionUri)" }
Créer des annotations de mise en production avec le Azure CLI
Utilisez le script PowerShell suivant pour créer une annotation de mise en production à partir d’un processus, sans Azure DevOps.
Connectez-vous au Azure CLI.
Enregistrez le script suivant sous
CreateReleaseAnnotation.ps1.param( [parameter(Mandatory = $true)][string]$aiResourceId, [parameter(Mandatory = $true)][string]$releaseName, [parameter(Mandatory = $false)]$releaseProperties = @() ) # Function to ensure all Unicode characters in a JSON string are properly escaped function Convert-UnicodeToEscapeHex { param ( [parameter(Mandatory = $true)][string]$JsonString ) $JsonObject = ConvertFrom-Json -InputObject $JsonString foreach ($property in $JsonObject.PSObject.Properties) { $name = $property.Name $value = $property.Value if ($value -is [string]) { $value = [regex]::Unescape($value) $OutputString = "" foreach ($char in $value.ToCharArray()) { $dec = [int]$char if ($dec -gt 127) { $hex = [convert]::ToString($dec, 16) $hex = $hex.PadLeft(4, '0') $OutputString += "\u$hex" } else { $OutputString += $char } } $JsonObject.$name = $OutputString } } return ConvertTo-Json -InputObject $JsonObject -Compress } $annotation = @{ Id = [GUID]::NewGuid(); AnnotationName = $releaseName; EventTime = (Get-Date).ToUniversalTime().GetDateTimeFormats("s")[0]; Category = "Deployment"; #Application Insights only displays annotations from the "Deployment" Category Properties = ConvertTo-Json $releaseProperties -Compress } $annotation = ConvertTo-Json $annotation -Compress $annotation = Convert-UnicodeToEscapeHex -JsonString $annotation $accessToken = (az account get-access-token | ConvertFrom-Json).accessToken $headers = @{ "Authorization" = "Bearer $accessToken" "Accept" = "application/json" "Content-Type" = "application/json" } $params = @{ Headers = $headers Method = "Put" Uri = "https://management.azure.com$($aiResourceId)/Annotations?api-version=2015-05-01" Body = $annotation } Invoke-RestMethod @params
Remarque
Définissez Category sur Deployment ou les annotations n'apparaissent pas dans le Azure portal.
Appelez le script et transmettez des valeurs pour les paramètres. Le -releaseProperties paramètre est facultatif.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
| Argument | Definition | Remarque |
|---|---|---|
aiResourceId |
ID de ressource de la ressource Application Insights cible. | Exemple : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
Nom de la nouvelle annotation de mise en production. | |
releaseProperties |
Métadonnées personnalisées à attacher à l’annotation. | Optional |
Afficher les annotations
Remarque
Les annotations de mise en production ne sont pas disponibles dans le volet Mesures.
Application Insights affiche les annotations de publication dans les expériences suivantes :
- Performances et échecs
- Usage
- Classeurs (pour toute visualisation de série chronologique)
Les annotations sont visualisées en tant que marqueurs en haut des graphiques.
Pour activer les annotations dans un classeur, ouvrez Paramètres avancés, puis sélectionnez Afficher les annotations. Sélectionnez n’importe quel marqueur d’annotation pour ouvrir des détails de mise en production tels que le demandeur, la branche de contrôle de code source, le pipeline de mise en production et l’environnement.
Questions fréquentes
Cette section fournit des réponses aux questions courantes.
Affichage de recherche
Qu’est-ce qu’un composant ?
Les composants sont des parties pouvant être déployées de manière indépendante de votre application distribuée ou de microservice. Les développeurs et les équipes d’exploitation ont une visibilité au niveau du code et un accès aux données de télémétrie générées par ces composants applicatifs.
- Les composants sont différents des dépendances externes « observées », telles que SQL et event Hubs, que votre équipe ou votre organisation n’ont peut-être pas access à (code ou télémétrie).
- Les composants s’exécutent sur n’importe quel nombre de serveurs, de rôles ou de container instances.
- Les composants peuvent être des chaînes de connexion Application Insights distinctes, même si les abonnements sont différents. Les composants peuvent également être différents rôles qui se rapportent à une seule chaîne de connexion Application Insights. La nouvelle expérience affiche des détails sur tous les composants, quelle que soit leur configuration.
Combien de données sont conservées ?
Consultez le résumé des limites.
Comment puis-je voir les données POST dans mes demandes de serveur ?
Nous ne journalisons pas automatiquement les données POST, mais vous pouvez utiliser TrackTrace ou journaliser les appels. Placez les données POST dans le paramètre de message. Vous ne pouvez pas filtrer les messages comme vous le feriez pour les propriétés, mais la limite de taille est plus importante.
Pourquoi ma recherche Azure Function ne retourne-t-elle aucun résultat ?
Azure Functions ne journalise pas les chaînes de requête d'URL.
Diagnostics de transaction
Pourquoi voir un composant unique sur le graphique et les autres composants s’affichent-ils uniquement en tant que dépendances externes sans détails ?
Raisons possibles :
- Les autres composants sont-ils instrumentés avec Application Insights ?
- Utilisent-ils le dernier Kit de développement logiciel (SDK) d’Application Insights stable ?
- Si ces composants sont des ressources Application Insights distinctes, vérifiez que vous avez access. Si vous avez accès et que les composants sont instrumentés avec les derniers SDK Application Insights, faites-le-nous savoir via le canal de rétroaction dans le coin supérieur droit.
Je vois des lignes en double pour les dépendances. Ce comportement est-il attendu ?
Actuellement, nous présentons l’appel de dépendance sortant séparément de la demande entrante. En règle générale, les deux appels semblent identiques, seule la valeur de durée est différente en raison de l’aller-retour réseau. L’icône de début et le style distinct des barres de durée permettent de les différencier. Cette présentation des données porte-t-elle à confusion ? Faites-nous part de vos commentaires !
Qu’en est-il des asymétries d’horloge entre différentes instances de composant ?
Les chronologies sont ajustées pour les variations d’horloges dans le graphique de transaction. Vous pouvez voir les timestamps exacts dans le volet d’informations ou à l’aide de Log Analytics.
Pourquoi la nouvelle expérience manque-t-elle la plupart des requêtes d’éléments connexes ?
Ce comportement est voulu. Tous les éléments associés, sur tous les composants, sont déjà disponibles sur le côté gauche dans les sections supérieure et inférieure. La nouvelle expérience comporte deux éléments associés non couverts par le côté gauche : l’ensemble de la télémétrie cinq minutes avant et après cet événement et la chronologie utilisateur.
Existe-t-il un moyen d’afficher moins d’événements par transaction lorsque j’utilise le Kit de développement logiciel (SDK) JavaScript Application Insights ?
L’expérience de diagnostic des transactions affiche toutes les données de télémétrie dans une seule opération qui partage un ID d’opération. Par défaut, le SDK Application Insights pour JavaScript crée une opération pour chaque vue de page unique. Dans une application monopage (SPA), un seul événement d’affichage de page est créé et un ID d’opération unique est utilisé pour toutes les données de télémétrie générées. Par conséquent, de nombreux événements peuvent être corrélés à la même opération.
Dans ces scénarios, vous pouvez utiliser le suivi automatique des itinéraires pour créer automatiquement de nouvelles opérations pour la navigation dans votre application monopage. Vous devez activerAutoRouteTracking pour que le système crée un affichage de page chaque fois que l’itinéraire d’URL est mis à jour (affichage de page logique). Si vous voulez actualiser manuellement l’ID de l’opération, appelez appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId(). Le déclenchement manuel d’un événement PageView réinitialise également l’ID d’opération.
Pourquoi les durées des détails des transactions ne s’ajoutent-elles pas à la durée de la demande supérieure ?
Le temps non expliqué dans le diagramme de Gantt, est le temps qui n’est pas couvert par une dépendance suivie. Ce problème peut se produire car les appels externes n’ont pas été instrumentés, automatiquement ou manuellement. Cela peut également se produire parce que le traitement a pris du temps plutôt qu’en raison d’un appel externe.
Si tous les appels ont été instrumentés, dans le processus, il s’agit de la cause racine probable du temps passé. Un outil utile pour diagnostiquer le processus est le .NET Profiler.
Que faire si je vois le message « Erreur lors de la récupération des données » lors de la navigation dans Application Insights dans le portail Azure ?
Cette erreur indique que le navigateur n’a pas pu appeler une API requise ou que l’API a retourné une réponse d’échec. Pour résoudre les problèmes de comportement, ouvrez une fenêtre InPrivate du navigateur et désactivez les extensions de navigateur en cours d’exécution, puis identifiez si vous pouvez toujours reproduire le comportement du portail. Si l’erreur du portail se produit toujours, essayez de tester avec d’autres navigateurs ou d’autres ordinateurs, examinez dns (Domain Name System) ou d’autres problèmes liés au réseau à partir de l’ordinateur client où les appels d’API échouent. Si l’erreur du portail se poursuit, collectez une trace réseau de navigateur lors de la reproduction du comportement inattendu. Ouvrez ensuite un cas de support à partir du Azure portal.
Étapes suivantes
- En savoir plus sur l’utilisation de la Cartographie d’une application pour identifier les baisses de performances et les points de défaillances de l’ensemble des composants de votre application.
- En savoir plus sur l’utilisation de l’Affichage de la disponibilité afin de configurer des tests périodiques pour surveiller la disponibilité et la réactivité de votre application.
- Découvrez comment utiliser Log Analytics et écrire des requêtes complexes pour obtenir des insights plus approfondis à partir de vos données de télémétrie.
- Découvrez l’envoi de journaux et de données de télémétrie personnalisées à Application Insights afin d’assurer un monitoring plus approfondi.
- Pour une présentation de la surveillance du temps d’activité et de la réactivité, consultez la vue d’ensemble de la disponibilité.