Recherche de transaction est la fonctionnalité d’Application Insights qui vous permet de rechercher et d’explorer les éléments de télémétrie, par exemple des pages vues, des exceptions ou des requêtes web. Vous pouvez également afficher les traces et événements de journaux que vous codez.
Pour des requêtes plus complexes sur vos données, utilisez Analytics.
Où voyez-vous Recherche ?
Vous trouverez Recherche dans le portail Azure ou Visual Studio.
Dans le portail Azure
Vous pouvez ouvrir une recherche de transaction à partir de l’onglet Vue d’ensemble Application Insights de votre application. Vous pouvez également sélectionner Recherche sous Examiner dans le menu de gauche.
Accédez au menu déroulant Types d’événements pour voir une liste d’éléments de télémétrie, tels que des requêtes de serveur, des pages consultées et des événements personnalisés que vous avez codés. En haut de la liste Résultats, vous verrez un graphique de synthèse montrant le nombre d’événements au fil du temps.
Cliquez sur le menu déroulant ou sélectionnez Actualiser pour obtenir de nouveaux événements.
Dans Visual Studio
Dans Visual Studio, il existe également une fenêtre Recherche Application Insights. Elle est particulièrement utile pour l’affichage des événements de télémétrie générés par l’application que vous déboguez. Mais elle peut également afficher les événements collectés à partir de votre application publiée sur le portail Azure.
Ouvrez la fenêtre Recherche Application Insights dans Visual Studio :
La fenêtre Recherche Application Insights offre des fonctionnalités similaires à celles du portail web :
L’onglet Suivre l’opération est disponible lorsque vous ouvrez un affichage de requête ou de page. Une « opération » est une séquence d’événements associée à un affichage de requête ou de page unique. Par exemple, les appels de dépendance, les exceptions, les journaux d’activité de suivi et les événements personnalisés peuvent faire partie d’une opération unique. L’onglet Suivre l’opération montre graphiquement le moment et la durée de ces événements par rapport à l’affichage de requête ou de page.
Inspecter les éléments un par un
Sélectionnez un élément de télémétrie pour afficher les champs clés et les éléments associés.
La vue des détails de la transaction de bout en bout s’ouvre.
Filtrer les types d’événement
Ouvrez le menu déroulant Types d’événements et choisissez les types d’événements que vous souhaitez voir. Si vous souhaitez restaurer les filtres ultérieurement, sélectionnez Réinitialiser.
Les types d'événements sont :
- Trace : journaux de diagnostic incluant des appels TrackTrace, log4Net, NLog et System.Diagnostic.Trace.
- Requête : requêtes HTTP reçues par votre serveur d’applications, incluant des pages, des scripts, des images, des fichiers de style et des données. Ces événements sont utilisés pour créer les graphiques de présentation de la demande et la réponse.
- Consultation de page : télémétrie envoyée par le client web, utilisée pour créer des rapports de consultation de page.
- Événement personnalisé : si vous avez inséré des appels à
TrackEvent()
pour surveiller l’utilisation, vous pouvez les rechercher ici.
- Exception : exceptions sur le serveur non interceptées, et exceptions journalisées à l’aide de
TrackException()
.
- Dépendance : appels de votre application serveur à d’autres services tels que des API REST ou des bases de données, ainsi que des appels AJAX à partir de votre code client.
- Disponibilité : résultats des tests de disponibilité
Filtrer des valeurs de propriétés
Vous pouvez filtrer les événements en fonction des valeurs de leurs propriétés. Les propriétés disponibles varient en fonction des types d’événement que vous avez sélectionnés. Select Filtrer pour démarrer.
Si vous ne choisissez aucune valeur pour une propriété, cela a le même effet que si vous sélectionniez toutes les valeurs. Cela désactive le filtrage sur cette propriété.
Notez que les nombres à droite des valeurs de filtre affichent le nombre d’occurrences dans le jeu actuellement filtré.
Rechercher des événements avec la même propriété
Pour trouver tous les éléments ayant la même valeur de propriété, entrez celle-ci dans la zone Recherche ou activez la case à cocher lorsque vous examinez les propriétés sous l’onglet Filtre.
Recherche dans les données
Notes
Pour écrire des requêtes plus complexes, ouvrez Logs (Analytics) en haut du volet Recherche.
Vous pouvez rechercher des termes dans une des valeurs des propriétés. Cette fonctionnalité est utile si vous écrivez des événements personnalisés avec des valeurs de propriété.
Vous pouvez définir un intervalle de temps, car les recherches sur un intervalle plus court sont plus rapides.
Recherchez des mots entiers, pas des sous-chaînes. Utilisez des guillemets pour délimiter les caractères spéciaux.
String |
Introuvable. |
Trouvé |
HomeController.About |
home
controller
out |
homecontroller
about
"homecontroller.about" |
États-Unis |
Uni
ted |
united
states
united AND states
"united states" |
Vous pouvez utiliser les expressions de recherche suivantes :
Exemple de requête |
Résultat |
apple |
Trouve tous les événements dans l’intervalle de temps, dont des champs contiennent le mot apple . |
apple AND banana
apple banana |
Trouve les événements qui contiennent les deux mots. Utilisez un AND capital, et non and . Forme abrégée. |
apple OR banana |
Trouve les événements qui contiennent un des deux mots. Par exemple, utilisez OR , pas or . |
apple NOT banana |
Trouve les événements qui contiennent un mot, mais pas l’autre. |
échantillonnage
Si votre application génère des données de télémétrie significatives et utilise le kit de développement logiciel (SDK) ASP.NET version 2.0.0-beta3 ou ultérieure, elle réduit automatiquement le volume envoyé au portail via l’échantillonnage adaptatif. Ce module envoie uniquement une fraction représentative des événements. Il sélectionne ou désélectionne les événements liés à la même requête qu’un groupe, ce qui vous permet de naviguer entre les événements associés.
Découvrez l’échantillonnage.
Création d’un élément de travail
Vous pouvez créer un bogue dans GitHub ou Azure DevOps avec les détails d’un élément de télémétrie.
Accédez à la vue des détails de la transaction de bout en bout en sélectionnant un élément de télémétrie. Sélectionnez ensuite Créer un élément de travail.
La première fois que vous effectuez cette étape, vous êtes invité à configurer un lien vers votre organisation et votre projet Azure DevOps. Vous pouvez également configurer le lien sous l’onglet Éléments de travail.
Envoyer plus de télémétrie à Application Insights
En plus de la télémétrie fournie par le Kit de développement logiciel (SDK) Application Insights, vous pouvez :
Capturer le suivi du journal dans votre infrastructure de journalisation favorite dans .NET ou Java. Cela signifie que vous pouvez effectuer des recherches dans le suivi du journal et les mettre en corrélation avec les pages vues, les exceptions et autres événements.
Écrire du code pour envoyer des événements personnalisés, des affichages de page et des exceptions.
Découvrez comment envoyer des journaux et une télémétrie personnalisée à Application Insights.
Forum aux questions
Lisez les réponses aux questions fréquentes.
Quelle est la quantité de données conservée ?
Voir la section Synthèse des limites.
Comment puis-je consulter les données POST dans mes demandes serveur ?
Nous n’enregistrons pas automatiquement les données POST, mais vous pouvez utiliser TrackTrace ou le journal des 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 renvoie-t-elle aucun résultat ?
Azure Functions ne journalise pas les chaînes de requête d’URL.
Les diagnostics unifiés mettent automatiquement en corrélation la télémétrie côté serveur de tous vos composants surveillés Application Insights dans une vue unique. Vous pouvez aussi avoir 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.
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 équipes d’opérations disposent d’une visibilité au niveau du code ou d’un accès à la télémétrie générée par ces composants d’application.
- Les composants sont différents des dépendances externes « observées », comme SQL et Event Hubs, auxquelles votre équipe ou organisation n’a peut-être pas accès (code ou télémétrie).
- Les composants s’exécutent sur un nombre quelconque d’instances de serveur, rôle ou conteneur.
- Les composants peuvent être distincts des clés d’instrumentation Application Insights, même si les abonnements sont différents. Les composants peuvent également être des rôles différents qui dépendent d’une seule clé d’instrumentation Application Insights. La nouvelle expérience affiche des détails sur tous les composants, quelle que soit leur configuration.
Notes
Vous ne disposez pas des liens d’éléments associés ? Toute la télémétrie connexe se trouve sur le côté gauche, dans les sections en haut et en bas.
Expériences de diagnostics de transaction
Cette vue comporte quatre parties clés :
- une liste de résultats ;
- un graphique des transactions entre composants ;
- une liste chronologique de toutes les données de télémétrie liées à cette opération ;
- un volet d’informations pour n’importe quel élément de télémétrie sélectionné.
Graphique des transactions entre composants
Ce graphique fournit une chronologie avec des barres horizontales pendant les demandes et les dépendances entre composants. Les exceptions collectées sont également marquées sur la chronologie.
- La ligne supérieure de ce graphique représente le point d’entrée. C’est la requête entrante vers le premier composant appelé dans cette transaction. La durée correspond à la durée d’exécution totale de la transaction.
- Les appels vers des dépendances externes sont représentés par des lignes non réductibles simples, avec des icônes représentant le type de dépendance.
- Les appels vers d’autres composants sont représentés par des lignes réductibles. Chaque ligne correspond à une opération spécifique appelée au niveau du composant.
- Par défaut, la requête, la dépendance ou l’exception que vous sélectionnez s’affiche sur le côté. Sélectionnez une ligne pour afficher ses détails.
Notes
Les appels à d’autres composants ont deux lignes. Une ligne représente l’appel sortant (dépendance) du composant appelant. L’autre ligne correspond à la demande entrante au niveau du composant appelé. L’icône de début et le style distinct des barres de durée permettent de les différencier.
Toutes les données de télémétrie avec cet ID d’opération
Cette section montre la liste plate dans une séquence horaire de toutes les données de télémétrie associées à cette transaction. Elle montre également les événements personnalisés, ainsi que les traces qui ne sont pas affichées dans le graphique des transactions. Vous pouvez filtrer cette liste pour n’afficher que les données de télémétrie qui ont été générées par un composant ou un appel donné. Vous pouvez sélectionner un élément de télémétrie de cette liste pour afficher les détails correspondants sur le côté.
Détails de la télémétrie sélectionnée
Ce volet réductible affiche les détails de l’élément qui a été sélectionné dans le graphique de transactions ou dans la liste. Afficher tout répertorie tous les attributs standard qui sont collectés. Tout attribut personnalisé est répertorié séparément sous le jeu standard. Sélectionnez le bouton de points de suspension (...) sous la fenêtre de la trace Pile des appels pour obtenir une option permettant de copier la trace. Les options Ouvrir les traces Profiler et Ouvrir l’instantané de débogage montrent les diagnostics au niveau du code dans les volets d’informations correspondants.
Résultats de la recherche
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.
Profiler .NET et Débogueur de capture instantanée
Le profileur .NET ou le débogueur de la capture instantanée apportent une aide avec des diagnostics au niveau du code des problèmes de performances et d’échec. Avec cette expérience, vous pouvez voir les traces du profileur .NET ou les instantanés d’un composant avec une simple sélection.
Si le profileur .NET ne fonctionne pas, contactez serviceprofilerhelp@microsoft.com.
Si le Débogueur de capture instantanée ne fonctionne pas, contactez snapshothelp@microsoft.com.
Forum aux questions
Cette section fournit des réponses aux questions fréquentes.
Pourquoi est-ce que je vois un composant unique sur le graphique et pourquoi les autres composants s’affichent uniquement en tant que dépendances externes sans aucun détail ?
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 y avez accès.
Si vous n’avez pas accès et si les composants sont instrumentés avec le dernier Kit de développement logiciel (SDK) Application Insights, prévenez-nous via le canal de commentaires en haut à droite.
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 variations d’horloges 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.
Ce comportement est normal. 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 de voir moins d’événements par transaction quand j’utilise le SDK JavaScript Application Insights ?
L’expérience des diagnostics de transaction montre 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 de visualisation de page sera généré et un seul ID d’opération sera utilisé pour toute la télémétrie générée. 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 activer enableAutoRouteTracking pour qu’une vue de page soit générée chaque fois que l’itinéraire de l’URL est mis à jour (la vue de page logique est activée). 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 de détail des transactions ne sont-elles pas ajoutées à la durée de la requête 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 profileur .NET.
Que se passe-t-il 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 ce comportement, ouvrez une fenêtre InPrivate dans le navigateur et désactivez toutes les extensions de navigateur en cours d’exécution, puis déterminez 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 le DNS ou les éventuels 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 et a besoin d’un examen plus approfondi, collectez une trace réseau du navigateur tout en reproduisant le comportement inattendu du portail, puis ouvrez un cas de support à partir du Portail Azure.