Dash0 acquires Polar Signals
Monitor Envoy proxy traffic, cluster health, access logs, and traces with OpenTelemetry in Dash0.
Envoy is a high-performance, open-source edge and service proxy used as the data plane for API gateways, ingress controllers, and service meshes such as Istio and Contour. Because it sits on the request path for the traffic it handles, its own health is a direct signal of the reliability of everything behind it.
Envoy exposes detailed Prometheus-format statistics through its admin interface, supports structured access logs, and includes a native OpenTelemetry tracer, so the Dash0 integration can collect metrics, logs, and traces without a sidecar or extra agent, using only the OpenTelemetry Collector.
Envoy collects Prometheus-format statistics through its admin interface, and can send access logs and traces directly over OTLP using its built-in OpenTelemetry access logger and tracer. This guide configures an OpenTelemetry Collector to scrape Envoy's stats and receive its native OTLP telemetry, then forwards everything to Dash0.
Before setting up Envoy monitoring, ensure:
You'll need an OpenTelemetry Collector deployed. Consider using:
Helm Chart for The OpenTelemetry Collector
Configure the collector to scrape Envoy's admin stats endpoint with the prometheus receiver:
Replace the target with the address of Envoy's admin interface. In Kubernetes, this is typically the pod IP or a headless service pointing at the admin port.
Envoy sends traces and access logs directly to a collector over gRPC, so the same collector also needs an otlp
receiver:
Add a cluster in Envoy's configuration that points at the OpenTelemetry Collector's OTLP/gRPC endpoint:
Then, on the listener's HTTP connection manager, enable the native OpenTelemetry tracer:
And the OpenTelemetry access logger:
Using a kvlist_value body produces a structured log record instead of a single formatted string, so each field stays queryable on its own. Adjust service_name and the fields in body to match your own naming and the request data you care about.
envoy_.service.name you configured to confirm access logs are arriving.ingress (or your configured operation name) appear for requests
that pass through Envoy.