Skip to main content

Supported Runtimes

Odigos provides automatic instrumentations for the following runtimes:

Enrich with OpenTelemetry APIs

Odigos automatically generates data for open-source libraries and frameworks. Additional trace spans, metrics datapoints and log records can be added using the OpenTelemetry APIs. Odigos will automatically capture this data and deliver it to the chosen destination alongside the automatically generated data.
No need to configure the OpenTelemetry SDK, Odigos will automatically configure it for you.
Select a language to learn how to enrich your data with OpenTelemetry APIs:

Instrumentation Flow:

  1. User selects a workload to auto instrument by creating a Source object (per workload or per namespace).
  2. Odigos instrumentor component watches for changes with Source objects, and creates a relative InstrumentationConfig object.
  3. Odigos odiglet component watches for changes with the InstrumentationConfig objects, and runs a runtime inspection on running pods to detect the programming language for every container.
  4. Odigos instrumentor component watches for changes with the InstrumentationConfig object, and adds a resource request into each pod spec of all relevant containers in the workload manifest. These resource requests are called Instrumentation Devices.
  5. Kubernetes detects the changes in the manifest, and rollout-restarts the pods with the new Instrumentation Devices.
  6. New pods are scheduled and started. Odiglet resolves the resource request by mounting the auto instrumentation code and relevant environment variables into the container.
  7. The auto instrumentation code starts the OpenTelemetry SDK and sends telemetry data to the odigos pipeline.

Auto-rollback and Recover

If pods enter CrashLoopBackOff or ImagePullBackOff after instrumentation is injected, Odigos disables the agent and restarts the workload without instrumentation. The UI may show that Odigos detected a crash and rolled back instrumentation to protect the workload. That rollback is not a Kubernetes Deployment undo. Odigos does not restore a previous ReplicaSet or Helm revision. It only removes Odigos agents from the workload. Recover (in the UI) means try instrumentation again. It clears the rollback latch and rolls the workload with agents. Clicking Recover does not remove remaining instrumentation or roll back the Deployment a second time. Disable automatic uninstrumentation with:
or Helm autoRollback.disabled=true.