Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.odigos.io/llms.txt

Use this file to discover all available pages before exploring further.

Odigos can run OpenTelemetry eBPF Instrumentation (OBI) for workloads where the opentelemetry-ebpf-instrumentation distro is selected.

OpenTelemetry OBI

Upstream concepts, requirements, and capabilities.

OBI on GitHub

Source, releases, and issues.

OBI Support

OBI can be enabled by selecting it as a container override for specific workloads. This can be configured either from the Odigos UI or directly on a Source object.

Enabling OBI from the UI

1

Open the source drawer and edit the detected container

Select the source you want to instrument. In the source drawer, click the edit (pencil) icon next to the detected container.
Edit detected container in the source drawer
2

Choose the opentelemetry-ebpf-instrumentation distro

In the Otel Distro Name drop-down, choose opentelemetry-ebpf-instrumentation and click the check mark to save.
Select opentelemetry-ebpf-instrumentation as the Otel distro
3

Verify the source is instrumented with OBI

After refreshing, the detected container should report that it is instrumented with opentelemetry-ebpf-instrumentation.
Source instrumented with OBI
4

Remove OBI instrumentation

To remove OBI instrumentation, open the runtime override config again and click the delete (trash) icon next to the Otel Distro Name field.
Remove OBI override from runtime config
By default, OBI does not need to restart your containers to begin instrumenting them. Because of this, choosing OBI as your container override will not trigger a pod restart. In some cases, however, your specific application may still require a pod restart (for example, when switching from a pre-existing instrumentation to OBI or vice-versa). You can trigger a pod restart using the Restart button in the source drawer.

Enabling OBI from a Source object

If editing a Source object directly, OBI is enabled through the containerOverrides field. For example:
apiVersion: odigos.io/v1alpha1
kind: Source
metadata:
  name: my-workload
  namespace: default
spec:
  workload:
    kind: DaemonSet
    name: sample-app
    namespace: default
  containerOverrides:
    - containerName: foo
      otelDistroName: opentelemetry-ebpf-instrumentation
In this case, containerName is the name of the container to instrument in this workload, and the required otelDistroName is opentelemetry-ebpf-instrumentation.

Limitations

OBI’s instrumentation is based on HTTP header propagation. For encrypted traffic, context propagation will not work unless both workloads (client and server) are instrumented with OBI as explained in the official OBI docs.