Observing Ingress-NGINX with OpenTelemetry and Dash0
Blog post from Dash0
Ingress-nginx serves as a critical ingress controller in Kubernetes, acting as the entry point to a cluster by managing external requests, terminating TLS, and directing traffic to appropriate services, thus playing a vital role in maintaining system reliability and performance. Despite its importance, many teams view it as a "black box," lacking insights into its operations; however, OpenTelemetry can enhance observability by enabling distributed tracing, which helps correlate ingress spans with backend services, giving a detailed view of request flows. While ingress-nginx natively supports tracing via the OpenTelemetry Protocol, metrics and logs are exposed in Prometheus format and classic NGINX logs, respectively, requiring integration with the OpenTelemetry Collector for unified telemetry data. The Collector, deployed as both a DaemonSet and a Deployment, centralizes the collection of traces, metrics, and logs, allowing tools like Dash0 to provide a comprehensive view of ingress behavior, including performance metrics and error rates. Although the project is effectively in maintenance mode with no major new features planned, the current setup allows platform engineers to gain valuable insights into ingress-nginx's operations, helping ensure the cluster's edge is fully observable.