Introduction
Odigos automatically instruments applications running in Kubernetes to produce distributed traces, metrics, and logs without any code changes. It uses eBPF and OpenTelemetry auto-instrumentation to detect running services and generate telemetry, then routes data to your preferred observability backend.
What Odigos Does
- Auto-detects applications running in Kubernetes pods and their programming languages
- Instruments services using eBPF and OpenTelemetry with zero code modifications
- Generates distributed traces, metrics, and logs from instrumented workloads
- Routes telemetry to backends like Jaeger, Datadog, Grafana, New Relic, and others
- Manages the full OpenTelemetry Collector pipeline within the cluster
Architecture Overview
Odigos deploys as a set of Kubernetes controllers. An instrumentor component detects running pods and their languages, then injects the appropriate OpenTelemetry auto-instrumentation (eBPF for compiled languages, language agents for interpreted ones). A scheduler manages OpenTelemetry Collectors as a pipeline, handling sampling, batching, and export to configured destinations.
Self-Hosting & Configuration
- Install via CLI (brew or curl) and deploy to any Kubernetes cluster
- Select which namespaces and workloads to instrument through the UI or CRDs
- Configure observability destinations (Jaeger, Datadog, Grafana, etc.) via the dashboard
- Adjust sampling rates and collection pipelines through Odigos CRDs
- Supports both managed Kubernetes (EKS, GKE, AKS) and self-hosted clusters
Key Features
- Zero-code instrumentation requiring no application changes or SDK integration
- eBPF-based instrumentation for Go, C++, and other compiled languages
- Multi-destination routing to send telemetry to multiple backends simultaneously
- Language auto-detection for Python, Java, Node.js, .NET, Go, and more
- OpenTelemetry-native pipeline managed entirely within the cluster
Comparison with Similar Tools
- OpenTelemetry Operator — Requires manual configuration per service; Odigos automates detection and instrumentation
- Pixie — eBPF-based but stores data in-cluster; Odigos exports to external backends
- Datadog Agent — Vendor-specific; Odigos is vendor-neutral and OpenTelemetry-native
- Jaeger — A tracing backend only; Odigos handles instrumentation and collection
FAQ
Q: Does Odigos add performance overhead? A: eBPF instrumentation adds minimal overhead. Language-agent instrumentation has typical OpenTelemetry auto-instrumentation costs.
Q: Which languages does Odigos support? A: Python, Java, Node.js, .NET, Go, and C++ via eBPF, with the list expanding.
Q: Can I use Odigos outside Kubernetes? A: Currently Odigos is designed for Kubernetes environments and relies on pod-level detection.
Q: Is Odigos free? A: The open-source edition is free. An enterprise edition adds advanced features like pipeline management and SSO.