Lorsque des applications distribuées rencontrent des lenteurs ou des échecs, l'identification de la cause racine parmi des dizaines de services nécessite de corréler les spans, de filtrer par durée et de comparer les traces à grande échelle. Trace Explorer dans Application Real-Time Monitoring Service (ARMS) permet d'interroger et d'analyser en temps réel les données de trace complètes stockées. Combinez des conditions de filtre et des dimensions d'agrégation pour identifier les requêtes lentes, diagnostiquer les échecs et mettre en évidence les modèles récurrents dans les traces.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Un agent ARMS installé pour l'application
Application Monitoring propose une page de détails d'application repensée pour les utilisateurs ayant souscrit au nouveau mode de facturation. Si vous n'avez pas encore migré vers le nouveau mode de facturation, cliquez sur Switch to New Version sur la page Application List pour accéder à la nouvelle interface.
Initialisation des données
Lorsque vous ouvrez Trace Explorer pour la première fois dans une région où Application Observability n'a pas été initialisé, une notification s'affiche en haut de la page. Elle indique qu'Application Observability n'est pas encore activé pour cette région et que l'absence des ressources sous-jacentes affecte les fonctionnalités de la page.
Cliquez sur le lien d'initialisation dans la notification pour déclencher la création automatique des ressources de stockage sous-jacentes requises par Trace Explorer.
L'initialisation est un processus asynchrone. La notification reste visible pendant la création des ressources et disparaît une fois celle-ci terminée et la page chargée normalement. Les régions où Application Observability a déjà été initialisé n'affichent pas cette notification.
Ouvrir Trace Explorer
Connectez-vous à la console ARMS. Dans le volet de navigation de gauche, choisissez Application Monitoring > Application List.
-
Sur la page Application List, sélectionnez une région dans la barre de navigation supérieure et cliquez sur le nom de l'application.
RemarqueLa colonne Language indique le langage dans lequel chaque application est écrite :
: Java
: Go
: PythonTrait d'union (-) : application surveillée via Managed Service for OpenTelemetry.
Dans la barre de navigation supérieure, cliquez sur Trace Explorer.
Dans le coin supérieur droit, sélectionnez une plage de temps.
Filtrer les traces
Utilisez l'une des méthodes suivantes pour affiner les résultats :
Quick Filter : dans la section Quick Filter, filtrez par statut, durée, nom d'application, nom de span ou adresse d'hôte. Les conditions sélectionnées apparaissent dans la zone de recherche.
Zone de recherche : cliquez sur la zone de recherche pour modifier les conditions de filtre existantes ou en ajouter de nouvelles depuis la liste déroulante.
Instruction de requête : saisissez directement une requête dans la zone de recherche. Pour plus de détails sur la syntaxe, consultez la rubrique Syntaxe des requêtes Trace Explorer.
Cliquez sur l'icône
située à côté de la zone de recherche pour enregistrer les conditions de filtre.Cliquez sur Saved View pour charger des filtres précédemment enregistrés.
Agrégez les données interrogées selon des dimensions spécifiques pour une analyse plus approfondie.
Liste des traces
Après avoir appliqué des filtres, Trace Explorer affiche les résultats dans plusieurs sections : un diagramme en barres indiquant le nombre d'appels et les erreurs HTTP, une courbe chronologique pour la durée des appels, ainsi que des listes de spans et de traces. Utilisez la liste des traces pour parcourir les résultats et accéder à des traces individuelles pour une investigation plus poussée.
Légendes des statuts de span
|
Légende |
Signification |
Source |
|
|
Normal |
Spans avec |
|
|
Erreur |
Spans avec |
|
|
Exception |
Spans où |
Le diagramme en barres de la section supérieure utilise un code couleur pour les codes d'état HTTP : 2XX (vert), 3XX (jaune), 4XX (orange) et 5XX (rouge). Ces codes proviennent du champ attributes.http.status_code ou attributes.http.response.status_code. Si une span contient les deux champs, le code d'état HTTP est prioritaire sur l'indicateur d'état de la span.
Actions disponibles
Cliquez sur un ID de trace ou sur Details dans la colonne Actions pour afficher les détails de la trace et la topologie. Consultez la section Détails de la trace.
Cliquez sur Logs dans la colonne Actions pour afficher les journaux associés à la trace. Consultez la rubrique Analyse des journaux.
Cliquez sur l'icône
pour développer toutes les spans sous un ID de trace. Par défaut, seules les spans racines sont affichées par ID de trace.Cliquez sur l'icône
dans le coin supérieur droit pour afficher ou masquer les colonnes de la liste.Survolez une trace et cliquez sur l'icône
pour ajouter ses valeurs de paramètre comme condition de filtre.
Nuage de points
L'onglet Scatter plot représente chaque trace par un point, avec le temps sur l'axe X et la durée sur l'axe Y. Utilisez cette vue pour identifier les traces aberrantes présentant une latence inhabituellement élevée. Survolez un point pour afficher les informations de base de la trace, ou cliquez dessus pour ouvrir les détails de la trace. Consultez la section Détails de la trace.

Agrégation des traces
Alors que la liste des traces analyse les spans individuellement, l'agrégation des traces reconstruit des traces complètes pour offrir une vue d'ensemble. Elle interroge jusqu'à 5 000 traces distribuées selon vos conditions, récupère toutes les spans correspondantes par ID de trace et agrège les résultats tout en préservant l'intégrité des traces. Utilisez cette vue pour comprendre comment le temps et les erreurs sont répartis dans votre graphe d'appels de service.
Les requêtes d'agrégation s'exécutent sur les données de trace correspondant à vos conditions. La combinaison de plusieurs conditions peut augmenter le temps de calcul.

Paramètres d'agrégation
Paramètre | Description |
spanName | Nom de la span. |
serviceName | Application associée à la span. |
Nombre de requêtes / pourcentage de requêtes | Pourcentage du total des requêtes qui appellent cette span. Formule : requêtes appelant cette span / total des requêtes x 100 %. |
Multiplicateur span / requête | Nombre moyen de fois où chaque requête appelle cette span. Formule : total des spans / total des requêtes. |
Auto-consommation moyenne / proportion | Durée moyenne de la span excluant ses spans enfants. Formule : durée de la span - durée totale des spans enfants. Important Pour les appels asynchrones, les durées des spans enfants sont incluses. |
Durée moyenne | Durée moyenne de la span. |
Nombre d'exceptions / pourcentage d'exceptions | Pourcentage de requêtes avec des exceptions. Formule : requêtes avec exceptions / total des requêtes. Important Le nombre de requêtes avec exceptions n'est pas identique au nombre total d'exceptions. Si le multiplicateur de requête dépasse 1, une seule requête peut générer plusieurs exceptions. |
Exemple d'agrégation
Prenons l'exemple d'une trace où la span A appelle les spans B et C :
|
spanName |
serviceName |
Requêtes / pourcentage |
Multiplicateur span / requête |
Auto-consommation moyenne / proportion |
Durée moyenne |
Exceptions / pourcentage |
|
A |
demo |
10 / 100,00 % |
10 / 1,00 |
5,00 ms / 25,00 % |
20 ms |
2 / 20,00 % |
|
- B |
demo |
4 / 40,00 % |
8 / 2,00 |
16,00 ms / 100,00 % |
16 ms |
2 / 50,00 % |
|
- C |
demo |
1 / 10,00 % |
1 / 1,00 |
4,00 ms / 100,00 % |
4 ms |
1 / 100,00 % |
Comment lire ce tableau :
Répartition des requêtes : la span A compte 10 requêtes (100 %). Seules 4 de ces requêtes appellent la span B (40 %) et une seule appelle la span C (10 %). Les requêtes restantes ignorent les spans B et C en raison d'une logique conditionnelle ou d'exceptions.
Fréquence des spans : la span A est appelée une fois par requête (multiplicateur = 1,00). La span B compte 8 spans pour 4 requêtes, donc chaque requête appelle la span B deux fois en moyenne (multiplicateur = 2,00).
Répartition du temps propre : le temps propre de la span A est de 5,00 ms (25 % de la durée moyenne de 20 ms), ce qui signifie que 75 % du temps est consacré aux spans enfants. Les spans B et C affichent 100 % de temps propre car elles n'ont pas d'enfants.
Répartition des exceptions : la span A présente 2 exceptions sur 10 requêtes (20 %). La span B présente 2 exceptions sur 4 requêtes (50 %). Étant donné que le multiplicateur de requête de la span B est de 2,00, une répartition probable est la suivante : 2 des 4 requêtes rencontrent une exception lors du premier appel, tandis que le second appel réussit.
Pour afficher les détails d'une trace spécifique, survolez le nom de la span (affiché en bleu) et cliquez sur le traceId recommandé.
Topologie des traces
L'onglet Full Link Topology affiche la topologie des appels inter-applications pour les traces agrégées. Utilisez cette vue pour visualiser les dépendances entre les services et identifier les liens sujets aux erreurs ou lents entre les applications. Chaque nœud d'application affiche le nombre de requêtes, le nombre d'erreurs et le temps de réponse.

Analyser les traces lentes et échouées
Trace Explorer met en évidence les modèles récurrents dans les traces lentes et échouées pour aider à localiser les causes racines. Affinez votre investigation par hôte, interface ou conditions combinées telles que serviceName="arms-demo" AND ip="192.168.1.1". Cette analyse vous permet également d'identifier les interfaces lentes pour une optimisation ciblée.
Analyse des traces lentes
ARMS analyse les 1 000 traces ayant la durée la plus longue et met en évidence les cinq dimensions les plus corrélées avec la lenteur.
Détails des traces lentes
ARMS sélectionne les 1 000 traces les plus longues dépassant le seuil configuré, échantillonne 1 000 traces inférieures au seuil, les compare et identifie les trois caractéristiques les plus corrélées avec les appels lents.
Définissez le seuil en fonction de vos besoins. Par exemple, pour trouver les caractéristiques des traces dépassant 1 minute, définissez le seuil à 60 000 millisecondes.
Dans les résultats d'analyse, l'IP 10.219.154.56 représente 21,8 % des échantillons de traces lentes mais seulement 10,2 % des traces normales ; le spanName /eventCenter représente 71,9 % des échantillons de traces lentes mais seulement 64,5 % des traces normales.
Analyse des traces échouées
ARMS échantillonne aléatoirement 1 000 traces échouées et met en évidence les cinq dimensions les plus corrélées avec les échecs.
Détails des traces échouées
ARMS compare les traces échouées aux traces normales et identifie les trois caractéristiques les plus corrélées avec les échecs.
Détails de la trace
La vue des détails de la trace comporte quatre sections, numérotées de 1 à 4 dans la figure suivante.

Étiquettes de composant (1)
Les étiquettes représentent les types d'appel et le nombre de spans. Les types d'appel sont déterminés par le champ attributes.component.name. Cliquez sur une étiquette pour afficher ou masquer les spans associées.
Diagramme en barres de la trace (2)
Le diagramme en barres horizontal offre une vue d'ensemble de la trace et de la répartition de ses spans. Utilisez-le pour identifier rapidement où le temps est consommé dans la trace.
Chaque barre représente une span. Seules les spans dont la durée dépasse 1 % de la durée totale de la trace sont affichées.
Les couleurs distinguent les différentes applications. Dans la figure précédente, le bleu représente l'application opentelemetry-demo-adservice.
Une ligne noire dans chaque barre représente le temps propre : la durée totale de la span moins le temps passé dans les spans enfants. Par exemple, si la span A prend 10 ms et que sa span enfant B prend 8 ms, le temps propre de la span A est de 2 ms.
La chronologie affiche la plage de temps complète de la trace.
Focus et filtrage des spans (3)
Chaque ligne représente une span avec sa hiérarchie parent-enfant. Les spans parentes affichent un nombre indiquant le nombre de leurs spans enfants. Opérations disponibles :
Réduire/Développer : cliquez sur l'icône
pour réduire ou développer une span et ses enfants.Focus : sélectionnez une span et cliquez sur l'icône
pour afficher uniquement cette span et ses spans descendantes.Annuler le focus : cliquez sur l'icône
pour quitter le mode focus.Filtrer : saisissez un nom de span, un nom d'application ou un attribut dans la zone de recherche pour filtrer la trace afin de ne conserver que les spans correspondantes et leur chemin vers la span d'entrée. Effacez la zone de recherche et cliquez sur l'icône de recherche pour supprimer le filtre.
Zoom : cliquez sur l'icône
pour zoomer et masquer le diagramme en barres. Cliquez sur l'icône
pour le restaurer.
Détails de la span (4)
Le panneau des détails de la span affiche les attributs, les métriques, les journaux et les données d'exception pour la span sélectionnée.
Additional Information : affiche les attributs de la span, les ressources, les détails et les événements, regroupés par type. Pour les descriptions des champs, consultez la rubrique Paramètres Trace Explorer.
-
Metrics : affiche les métriques liées à la span.

Pour les applications Java surveillées par ARMS : métriques JVM et hôte.
Pour les traces provenant d'agents open source : métriques de la méthode RED (taux, erreurs, durée).
Logs : affiche les journaux métier liés à la trace. Si un Logstore Simple Log Service (SLS) est configuré pour l'application, interrogez les journaux métier par ID de trace dans le Logstore.
Exceptions : affiche les informations d'exception pour la span, le cas échéant.
Event Config : configurez des événements d'interaction pour un ou plusieurs attributs de trace afin d'accéder à des détails de trace supplémentaires ou aux journaux et métriques associés. Consultez la rubrique Configurer un événement d'interaction personnalisé pour une trace.
Accéder aux données de trace par programmation
Les données de trace sont stockées dans Simple Log Service (SLS). Accédez-y par programmation pour une analyse personnalisée :
Projet SLS :
proj-xtrace-<encode>-<region-id>(par exemple, si la région estcn-hangzhou)Logstore :
logstore-tracing
Pour plus de détails sur le format des données, consultez la rubrique Paramètres Trace Explorer. Pour des exemples d'analyse, consultez la rubrique Analyser les données de trace en temps réel.
FAQ
Pourquoi les instructions SQL sont-elles tronquées dans les traces ?
ARMS limite par défaut les instructions SQL à 1 024 caractères. Pour augmenter cette limite, accédez à l'onglet Custom Configurations de votre application et modifiez Maximum retention length for SQL collection dans la section Database call configuration.
Éléments de configuration des appels de base de données dans l'onglet Custom Configurations :
Slow SQL Threshold : par défaut 500 ms. Les requêtes SQL dépassant ce seuil sont marquées comme SQL lentes.
Maximum Retention Length for SQL Collection : par défaut 1 024 caractères. Les instructions SQL dépassant cette longueur sont tronquées.
Display Variable Binding Values in SQL : lorsqu'il est activé, capture les valeurs de liaison des paramètres PrepareStatement. Pris en charge uniquement pour MySQL.
Display Constant Values in SQL : activez cette option pour afficher les valeurs constantes dans les instructions SQL.
Record MySQL Query Return Value Size : activez cette option pour enregistrer la taille des valeurs de retour des requêtes MySQL.
Après la configuration, cliquez sur Save, ou sur Save and Batch Copy to Other Applications pour synchroniser la configuration avec d'autres applications.
Pourquoi des spans Nacos avec des durées de 30 secondes apparaissent-elles après la mise à niveau vers l'agent ARMS V4.x ?
L'agent ARMS 4.x instrumente les requêtes HTTP de sondage long que Nacos utilise pour les mises à jour de configuration et la découverte de services. Ces spans ne sont pas capturées dans la version 3.x. Pour plus de détails, consultez l'annonce Annonce de la mise à niveau de l'agent ARMS V4.x.
Pour exclure ces spans, ajoutez une règle de filtre dans la section Interface call configuration de l'onglet Custom Configurations de votre application.
Cette fonctionnalité nécessite l'agent ARMS V4.2.x ou ultérieur.
Dans la section Interface Call Configuration de l'onglet Custom Configurations, saisissez les chemins d'interface que vous souhaitez exclure dans la zone de texte Invalid Interface Call Filter pour supprimer ces spans. La section inclut également Slow Call Threshold (par défaut 500 ms), Exception Allowlist, HTTP Status Code Allowlist et plusieurs commutateurs d'enregistrement de métriques.


