This article is available in French.
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).
My progress
Sign in to track your progress and take notes. Sign in
Recommended Articles
Canary automatisé avec Flagger et Traefik sur Kubernetes
Automatiser les déploiements canary avec Flagger et Traefik : ressource Canary, analyse des métri...
Bonnes pratiques Traefik : sécurité, haute disponibilité et observabilité
Bonnes pratiques Traefik : sécurisation du dashboard et du socket Docker, TLS moderne, middleware...
HAProxy dans Kubernetes : L'Ingress Controller Haute Performance
Découvrez en profondeur l'intégration de HAProxy dans Kubernetes. Architecture Direct-to-Pod, opt...
Gestion des certificats SSL/TLS avec Let's Encrypt et ACME
Apprenez à automatiser la génération et le renouvellement de vos certificats SSL/TLS avec Let's E...
Protocole ACME : serveur ACME, challenges http-01 et dns-01, automatisation TLS
Comprendre le protocole ACME : rôle du serveur ACME (Let's Encrypt, ZeroSSL, step-ca), challenges...
Tracing distribué : la propagation du contexte (W3C Trace Context et baggage)
Comprendre et mettre en œuvre la propagation de contexte OpenTelemetry : en-tête traceparent, tra...
Le tracing distribué avec Jaeger : concepts et architecture
Les concepts du tracing distribué (trace, span, contexte, propagation) et Jaeger : son histoire, ...
Du clic à la base de données : traces front-end vers back-end avec Faro
Relier les requêtes du navigateur aux traces du back-end : TracingInstrumentation, propagation de...
Maîtriser les ACLs dans HAProxy : Le Guide Complet
Guide complet sur les ACLs HAProxy : apprenez à configurer le routage intelligent, le contrôle d'...