RousselTMLEARNING

Proxy & réseau

Traefik : les métriques avec Prometheus et OpenTelemetry

Exposer les métriques de Traefik (Prometheus ou OTLP), comprendre les séries par entrypoint, routeur et service, écrire les requêtes PromQL utiles et les alertes indispensables.

1. Activer les métriques #

Prometheus ou OTLP.

Configuration #

entryPoints:
  metrics:
    address: ":8082"
metrics:
  prometheus:
    entryPoint: metrics            # point d'exposition séparé du trafic public
    addRoutersLabels: true         # séries par routeur (attention à la cardinalité)
    addServicesLabels: true
    buckets: [0.05, 0.1, 0.3, 1.2, 5.0]
# ou : metrics.otlp.grpc.endpoint: otel-collector:4317

Collecter #

scrape_configs:
  - job_name: traefik
    static_configs: [{ targets: ['traefik:8082'] }]

2. Les métriques et requêtes utiles #

Méthode RED.

Requêtes PromQL #

Méthode RED
Débit, erreurs, durée : de quoi détecter la plupart des incidents.
# Débit par service
sum by (service) (rate(traefik_service_requests_total[5m]))
# Taux d'erreurs 5xx par service
sum by (service) (rate(traefik_service_requests_total{code=~"5.."}[5m]))
  / sum by (service) (rate(traefik_service_requests_total[5m]))
# Latence p95 par service
histogram_quantile(0.95, sum by (le, service) (rate(traefik_service_request_duration_seconds_bucket[5m])))
# Backends déclarés indisponibles par le health check
traefik_service_server_up == 0
# Jours avant expiration des certificats
(traefik_tls_certs_not_after - time()) / 86400

Familles de métriques #

PréfixeNiveau
traefik_entrypoint_*Point d'entrée (trafic global par port)
traefik_router_*Routeur (par règle de routage)
traefik_service_*Service (par backend) : le plus utile
traefik_config_*, traefik_tls_certs_*Rechargements de configuration, certificats

3. Alertes #

Peu, mais utiles.

Exemples #

groups:
  - name: traefik
    rules:
      - alert: TraefikTauxErreurs5xx
        expr: |
          sum by (service) (rate(traefik_service_requests_total{code=~"5.."}[5m]))
            / sum by (service) (rate(traefik_service_requests_total[5m])) > 0.05
        for: 10m
        labels: { severity: page }
      - alert: TraefikCertificatBientotExpire
        expr: (traefik_tls_certs_not_after - time()) / 86400 < 14
        labels: { severity: ticket }
Bonne Pratique : Importez le tableau de bord Grafana officiel de Traefik comme point de départ, puis gardez seulement les panneaux qui servent à vos diagnostics.

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 !