Odigos Documentation

repository·main·Indexed 25 days ago

https://github.com/odigos-io/odigos

An open-source distributed tracing solution providing instant observability for Kubernetes and Virtual Machines via eBPF-based, language-agnostic auto-instrumentation. Fully compatible with the OpenTelemetry standard, Odigos includes components such as Odiglet, Instrumentor, Scheduler, Autoscaler, and a Service Graph Connector for visualizing system topology in Grafana.

Tokens
208.1K
Snippets
535
Records
1.3K
Agent score
83%

What's inside Odigos

  1. Overview of the Odigos Kubernetes Device Plugin

    main

    The deviceplugin module is a standalone, pluggable Kubernetes device plugin designed specifically for the Odigos observability platform. It exposes instrumentation-related virtual devices to Kubernetes nodes. These virtual devices facilitate automatic runtime configuration of applications by:

    1. Mounting required files into containers.
    2. Injecting OpenTelemetry environment variables.

    This allows Odigos to automate the instrumentation process at the Kubernetes level.

  2. Overview of Odigos VM Agent

    main
    The Odigos VM Agent instruments Linux processes and systemd services using eBPF. Because instrumentation runs in the kernel, the impact on applications is negligible. It provides automatic OpenTelemetry instrumentation without code changes, distributed traces with seamless context propagation, and continuous CPU profiling (eBPF) that can export to Pyroscope or other OTLP Profiles backends. Telemetry is exported to any supported destination.
  3. Overview of Odigos Observability Control Plane

    main

    Odigos is an observability control plane that uses OpenTelemetry and eBPF to provide automatic application instrumentation. It eliminates the need for manual code changes and manual collector management by automatically deploying and scaling collectors based on application traffic.

    Key capabilities include:

    • Automatic instrumentation: Produces distributed traces and metrics without requiring code changes.
    • Collector management: Automatically handles the deployment and scaling of collectors according to traffic demands.
    • Vendor flexibility: Produces data in the OpenTelemetry format (OTLP), allowing you to use any observability tool that supports OTLP and switch vendors easily.
  4. Overview of Odigos distributed tracing

    main
    Odigos is an open-source distributed tracing solution designed for Kubernetes environments and Virtual Machines. It provides instant tracing capabilities without requiring manual code modifications to your applications. It is built by maintainers of OpenTelemetry, ensuring industry-standard alignment and OpenTelemetry compatibility.
  5. Overview of Odigos Central

    main

    Odigos Central is a centralized management layer designed for multi-cluster observability. It provides a single UI to manage observability configurations across multiple Kubernetes clusters, replacing the need to configure instrumentation, sampling rules, and destinations individually in each cluster.

    Note: This feature is exclusive to the Odigos Enterprise tier. Access requires contacting the Odigos team.

  6. Overview of Continuous CPU Profiling in Odigos

    main

    Odigos provides continuous CPU profiling using an eBPF kernel agent. This allows you to capture snapshots of running thread call stacks to generate flame graphs, helping you identify exactly which code paths or library calls are consuming CPU cycles.

    Key benefits include:

    • Zero-code changes: No SDKs, agent libraries, or application restarts are required.
    • Language-agnostic: Profiles processes regardless of runtime (e.g., Java, Python, Ruby, Node.js, Go, C/C++, Rust, etc.) because collection happens at the OS level.
    • Unified Pipeline: Profiles are emitted as OTLP Profiles signals and travel through your existing Odigos collector pipeline.
    • Efficient Resource Usage: Profiling works by dynamically enabling in-memory buffers for workloads you are actively investigating.
  7. Overview of Service Graph Connector

    main

    The Service Graph Connector builds a map of interrelationships between services by analyzing trace data and generating metrics. These metrics can be used by visualization tools like Grafana to draw service graphs, helping you infer system topology, monitor system health (error rates, latencies), and view historical changes in topology.

    It works by inspecting traces for parent-child span relationships that represent requests, supporting:

    • Direct requests: span.kind is client (outgoing) and server (incoming).
    • Messaging systems: span.kind is producer and consumer.
    • Database requests: span.kind is client and contains db.name.

    To ensure reliable pairing of spans across multiple collector instances, it is recommended to use a load balancing exporter in front of your collector instances.

  8. Understand the Odigos Pipeline Architecture

    main

    The Odigos Pipeline is a multi-stage system designed to collect, process, and export OpenTelemetry signals. It consists of three main segments:

    1. Instrumentation: Injects OpenTelemetry agents (native or eBPF) into workloads to record signals and export them from the process boundary.
    2. Pipeline: Consists of a Node Collector (DaemonSet) that receives data from agents, enriches it with node-level attributes, and forwards it to the Cluster Gateway Collector (Deployment), which performs heavy processing, applies Odigos Actions, and exports data to final destinations.
    3. Odigos Management: Orchestrates the entire system via Kubernetes Operators and provides a UI for configuration and monitoring.
  9. Understand Odigos patches for the Service Graph Connector

    main

    The servicegraphconnector package in Odigos is a patched version of the opentelemetry-collector-contrib module. Odigos modifies the connector to ensure that all configured peer attributes are captured and correctly mapped to metric labels, which is essential for the Odigos UI to display server_* labels for virtual-node and database peers.

    If you upgrade the vendored upstream tree, you must re-apply these specific behavioral changes to maintain observability functionality.

  10. Supported Telemetry Types in Odigos

    main

    Odigos supports the production and correlation of three primary telemetry types: Traces, Metrics, and Logs.

    To collect any telemetry type, you must satisfy two requirements:

    1. Configure a destination that accepts that specific telemetry type.
    2. Ensure the telemetry type is enabled for the target application (users can enable or disable collection on a per-application basis). If no applications are configured to collect a specific type, Odigos will not collect it.
  11. Understand what Odigos telemetry reports

    main

    Odigos collects non-sensitive, non-personally identifiable information to help maintainers improve the project. The following anonymous data points are collected:

    • Whether traces, metrics, or logs are enabled
    • The types of selected destinations (e.g., Jaeger, Prometheus, etc.)
    • The number of instrumented applications categorized by programming language
    • The number of unrecognized applications
    • The number of nodes