RousselTMLEARNING

Observabilité

Analyser des traces dans l'interface de Jaeger

Rechercher des traces, lire une chronologie, repérer le chemin critique, comparer deux traces, utiliser le graphe de dépendances et le monitoring de performance des services (SPM).

1. Rechercher #

Trouver la bonne trace.

Critères #

CritèreExemple
Service et opérationcommandes, POST /commande
Tagserror=true, http.status_code=500, produit.id=42
DuréeMin 1s
Plage et limiteDernière heure, 20 résultats

Le nuage de points en haut des résultats place chaque trace selon sa date et sa durée : les points isolés en haut sont les requêtes lentes à examiner en priorité.

2. Lire une trace #

Chronologie et chemin critique.

La chronologie #

  • Chaque ligne est un span, indenté sous son parent ; la barre montre sa position et sa durée.
  • Un span en rouge est en erreur ; ses logs (événements) contiennent souvent l'exception.
  • Le chemin critique (mis en évidence) est la suite de spans qui détermine la durée totale : optimiser hors de ce chemin ne réduit pas la latence.
  • Des spans en escalier révèlent des appels séquentiels qui pourraient être parallélisés ; des dizaines de spans identiques révèlent un problème N+1.
Bonne Pratique : Cherchez d'abord le plus long span « feuille » (sans enfant) sur le chemin critique : c'est là que le temps est réellement passé.

Comparer deux traces #

La vue Compare superpose deux traces (une rapide, une lente) et colore les spans présents dans une seule ou de durées différentes : idéal pour comprendre pourquoi une même opération est parfois lente.

3. Vues de synthèse #

Au-delà d'une trace.

Dépendances et SPM #

VueContenu
System ArchitectureGraphe des appels entre services, construit à partir des traces
Monitor (SPM)Débit, taux d'erreurs et latence (RED) par service et opération, à partir de métriques dérivées des spans
Trace statisticsStatistiques agrégées des spans d'une trace par service et opération

Le Service Performance Monitoring s'appuie sur le connecteur spanmetrics de l'OpenTelemetry Collector, qui transforme les spans en métriques stockées dans Prometheus ; Jaeger les interroge pour l'onglet Monitor.

connectors:
  spanmetrics:
exporters:
  prometheus: { endpoint: 0.0.0.0:8889 }
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [jaeger_storage_exporter, spanmetrics]
    metrics/spanmetrics:
      receivers: [spanmetrics]
      exporters: [prometheus]

Articles liés

Le tracing distribué avec Jaeger : concepts et architecture

Les concepts du tracing distribué (trace, span, contexte, propagation) et Jaeger : son histoire, son architec…

Installer Jaeger v2 : all-in-one, configuration et stockages

Lancer Jaeger v2 en all-in-one, comprendre son fichier de configuration (extensions jaeger_storage et jaeger_…

Instrumenter ses applications pour Jaeger avec OpenTelemetry

Envoyer des traces à Jaeger avec OpenTelemetry : auto-instrumentation (Java, Python, Node.js), SDK et spans m…

Pour aller plus loin