Understanding OpenTelemetry Support in Traefik
Blog post from Dash0
Traefik serves as a prominent ingress controller and edge router in the Kubernetes ecosystem, distinguished by its dynamic configuration, protocol support, and community engagement. Unlike many ingress controllers built on Envoy, Traefik is implemented in Go and offers a unique approach to request handling and telemetry. Its integration with OpenTelemetry is crucial for operational visibility, especially as Kubernetes teams reassess ingress options following the retirement of ingress-nginx. Traefik's OpenTelemetry integration uses a proposed maturity model to evaluate how telemetry is produced and processed, emphasizing an OpenTelemetry-native approach for tracing, logging, and metrics. The maturity model assesses dimensions such as integration surface, semantic conventions, and multi-signal observability, highlighting Traefik’s strengths and areas for improvement. Tracing is well-integrated, preserving trace context and emphasizing synchronous request flows, while logs and metrics are exported via OTLP, showing a commitment to interoperability and simplicity in observability pipelines. Although Traefik's telemetry is not yet fully optimized to OpenTelemetry standards, it provides valuable insights for platform teams managing shared ingress controllers. The evaluation underscores the role of the OpenTelemetry Collector in enriching and routing telemetry, demonstrating Traefik’s potential for flexible and future-proof observability with low operational complexity.