RousselTMLEARNING

Proxy & réseau

Traefik : le tracing distribué avec OpenTelemetry

Activer le tracing de Traefik v3 avec OpenTelemetry (OTLP), propager le contexte W3C vers les applications, échantillonner, et analyser les spans de Traefik dans Jaeger ou Grafana Tempo.

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.

Traefik et le tracing distribué
Les applications doivent elles aussi être instrumentées et lire le contexte reçu.

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: true
Changement 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 Tempo

3. 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 TraceId figure 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).

Articles liés

Traefik : sécuriser et transformer les requêtes avec les middlewares (BasicAuth, ForwardAuth…)

Les middlewares Traefik modifient les requêtes et réponses entre le routeur et le service : authentification …

Traefik : les providers (Docker, Kubernetes, Nomad, Consul, fichiers, clés-valeurs)

Les providers alimentent la configuration dynamique de Traefik : découverte des services Docker, Swarm, Kuber…

Traefik comme Ingress Controller pour Kubernetes (Helm, IngressRoute, Gateway API)

Installer Traefik dans Kubernetes avec Helm et publier des applications avec Ingress, les CRD IngressRoute et…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !