1. Pourquoi tracer le proxy #
Le premier maillon de la requête.
Principe #
Traefik voit chaque requête en premier. En créant le span racine et en transmettant l'en-tête traceparent (W3C Trace Context), il permet de suivre une requête depuis l'entrée jusqu'à la base de données et de distinguer le temps passé dans le proxy de celui passé dans les applications.
2. Configuration (Traefik v3) #
OpenTelemetry natif.
Configuration statique #
tracing:
serviceName: traefik
sampleRate: 0.2 # 20 % des requêtes
addInternals: false # ne pas tracer le tableau de bord ni /ping
otlp:
grpc:
endpoint: otel-collector:4317
insecure: trueChangement en v3 : Traefik v3 n'exporte plus directement vers Jaeger, Zipkin ou Datadog : il émet en OTLP, et le Collector OpenTelemetry route vers le backend de votre choix.
Vérifier #
curl -s -H 'traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01' https://app.exemple.fr/ -o /dev/null
# puis rechercher la trace 4bf92f3577b34da6a3ce929d0e0e4736 dans Jaeger ou Tempo3. Lire et exploiter les traces #
Ce que montrent les spans Traefik.
Analyse #
- Le span de Traefik contient le routeur, le service, le statut et l'adresse du backend.
- Un écart important entre la durée du span Traefik et celle du span applicatif révèle une attente côté proxy ou réseau (connexions, TLS, file d'attente).
- Le
TraceIdfigure aussi dans les access logs : on passe du log à la trace.
Bonne Pratique : Échantillonnez en tête dans Traefik à un taux raisonnable et conservez 100 % des erreurs grâce à l'échantillonnage en queue du Collector (tail sampling).
