Hub
Web & Access

Traefik Access Logs

Traefik reverse proxy and Kubernetes ingress — access logs with the dual-latency breakdown (origin duration versus proxy overhead), upstream status, retry attempts, and router/service routing across a dynamic backend catalogue. Operational telemetry for latency SLOs and error budgets, not audit.

Quick Start

uv tool install eventum-generator
git clone https://github.com/eventum-generator/content-packs.git
cd content-packs
eventum generate \
  --path generators/proxy-traefik/generator.yml \
  --id traefik \
  --live-mode true

Event Types

Event IDDescriptionFrequencyCategory
access-success2xx/3xx responses; http->https 308 redirects~90%web
access-client-error4xx — backend 4xx and Traefik rateLimit 429~7%web
access-upstream-error5xx Traefik generates on backend failure (502/503/504)~3%web

Realism Features

  • Dual-latency model — event.duration equals traefik.access.origin.duration plus traefik.access.overhead, always consistent
  • Per-route latency classes — fast / normal / slow services draw from distinct log-normal distributions (median ~4 ms / ~35 ms / ~220 ms) with a heavy tail; gateway timeouts reach ~30 s
  • Routing table from samples — requests are matched to routers and forwarded to backend services modelling an e-commerce Kubernetes platform
  • Correlated failure modes — 5xx errors carry origin status 0, zero origin content size, and retry attempts that match the failure type
  • Monotonic request counter — traefik.access.request_count increases per event, as a Traefik process does

Sample Output

{
  "@timestamp": "2026-02-21T14:32:07.123456+00:00",
  "destination": {
    "address": "10.1.10.36:8080",
    "ip": "10.1.10.36",
    "port": 8080
  },
  "ecs": {
    "version": "8.11.0"
  },
  "event": {
    "category": [
      "web"
    ],
    "duration": 29956413,
    "kind": "event",
    "outcome": "success",
    "type": [
      "access"
    ]
  },
  "http": {
    "request": {
      "body": {
        "bytes": 0
      },
      "method": "GET"
    },
    "response": {
      "body": {
        "bytes": 1397
      },
      "status_code": 200
    },
    "version": "2.0"
  },
  "log": {
    "level": "info"
  },
  "network": {
    "community_id": "1:YPIKJmLuQRcy3BDjhM84xxtnl2g=",
    "transport": "tcp"
  },
  "observer": {
    "egress": {
      "interface": {
        "name": "shop-cart-api-8080@kubernetes"
      }
    },
    "ingress": {
      "interface": {
        "name": "websecure"
      }
    },
    "product": "traefik",
    "type": "proxy",
    "vendor": "traefik"
  },
  "source": {
    "address": "192.0.1.60:53566",
    "ip": "192.0.1.60",
    "port": 53566
  },
  "traefik": {
    "access": {
      "origin": {
        "content_size": 1397,
        "duration": 29847534,
        "status_code": 200
      },
      "overhead": 108879,
      "request_count": 57,
      "retry_attempts": 0,
      "router": {
        "name": "shop-cart-api-example-com-cart@kubernetes"
      },
      "service": {
        "url": {
          "domain": "10.1.10.36:8080"
        }
      }
    }
  },
  "url": {
    "domain": "api.example.com",
    "original": "/cart/v1/items/add",
    "scheme": "https"
  },
  "user": {
    "name": "-"
  }
}

Parameters

ParameterDefaultDescription
traefik_providerkubernetesProvider suffix on router and service names (@kubernetes, @docker, @file, @kubernetescrd)

Related Generators