Aller au contenu principal

Votre première trace

Ce guide vous fait passer de « c'est installé » à « je sais lire une trace distribuée ». Il utilise l'application de démo HotROD (un exemple multi-service de VTC) pour avoir du vrai trafic à observer.

1. Démarrer le bac à sable

Le moyen le plus rapide d'obtenir du trafic est le bac à sable Docker local, qui inclut l'application de démo :

git clone https://github.com/avuruvision/avuru-obs && cd avuru-obs
make dev

Cela démarre ClickHouse, le gateway, le hub, l'UI et la démo HotROD. L'UI est sur http://localhost:8080.

:::note Déjà sur Kubernetes ? Si vous avez installé avec Helm, déployez n'importe quelle charge applicative qui fait des appels service-à-service — le sensor eBPF la cartographiera automatiquement. La suite du guide est identique. :::

2. Générer de la charge

Ouvrez l'application HotROD et cliquez sur quelques boutons « demander une course », ou pilotez la charge depuis le terminal :

for i in $(seq 1 20); do curl -s localhost:8080/dispatch?customer=123 >/dev/null; done

3. Regarder la carte

Dans l'UI avuru, ouvrez Service Map. Vous devriez voir les services de la démo reliés entre eux — frontend → driver → route, avec des arêtes pondérées par le débit. Cette carte vient entièrement d'eBPF : aucun SDK n'a été ajouté à la démo.

4. Ouvrir une trace

  1. Allez dans Traces.
  2. Triez par durée pour trouver une requête lente.
  3. Cliquez dessus pour ouvrir le waterfall — chaque span est un saut, imbriqué sous son parent.

Lisez-le de haut en bas : la latence totale à la racine, puis où le temps est réellement passé.

5. Corréler

Depuis la trace ouverte, pivotez :

  • Logs pour le même trace_id — ce que le service a journalisé pendant la requête.
  • Métriques — les métriques RED (débit, erreurs, durée) de cet endpoint.
  • Profilage — quelles fonctions ont consommé du CPU pendant que le span était ouvert.

Ce pivot — rester dans le contexte d'une seule requête à travers les quatre signaux — c'est tout l'intérêt d'un moteur de stockage unique.

Dépannage

SymptômeCause probableCorrectif
Carte des services videPas encore de traficGénérez de la charge (étape 2)
Carte mais pas de tracesLe noyau n'a pas BTFUtilisez les SDK OTLP, ou montez le noyau (≥ 5.8)
Rien du toutPods pas prêtskubectl -n avuruobs get pods

Et après