Simplifying multi-cluster Kubernetes monitoring with EDOT
Observability in complex, multi-cluster Kubernetes environments often presents significant challenges, leading to an observability stack that itself requires constant monitoring. The NetEye blog addresses this by introducing EDOT, the Elastic Distribution of OpenTelemetry, designed to simplify this intricate process. EDOT is not a fork of the OpenTelemetry Collector but rather a carefully curated build by Elastic, maintaining the same codebase, configuration model, and a wide array of receivers and processors as the upstream OpenTelemetry project.
What sets EDOT apart are its opinionated defaults and pre-built integrations, which enable users to get up and running quickly without sacrificing the flexibility inherent in OpenTelemetry. The solution is deployed via a Helm chart, providing out-of-the-box collection of essential telemetry data, including logs, Kubernetes events, node and pod metrics, and control-plane signals. This foundational setup significantly reduces the initial configuration burden often associated with observability deployments.
A key advantage of EDOT is its ability to leverage the full power of a standard OpenTelemetry Collector. This means it can function as a drop-in Prometheus scraper, utilizing existing `/metrics` endpoints and even ServiceMonitor resources via the OTel Operator's target allocator, directing data straight into Elastic. Furthermore, its OTLP receiver seamlessly ingests OpenTelemetry-native data—be it traces from Go services, custom metrics from Python applications, or structured logs from Node.js applications—all flowing into a unified pipeline.
For multi-cluster scenarios, EDOT offers significant benefits. Traces from services spanning different clusters are automatically stitched together due to shared OTLP-native trace IDs, eliminating the need for complex manual configuration. Dashboards can filter by cluster automatically, and alert rules can be scoped to individual clusters or applied fleet-wide, simplifying management. The architecture typically involves a three-tier deployment: a cluster collector for cluster-wide metrics and events, node collectors (as a DaemonSet) for host-level metrics and logs, and a central gateway collector for aggregation, batching, filtering, and routing data to Elasticsearch. This tiered approach optimizes scaling and data processing, making multi-cluster Kubernetes monitoring more efficient and manageable.
Read original source