Supported Runtimes
Odigos provides automatic instrumentations for the following runtimes:Go
Versions 1.17 and above are supported
Javascript
Versions 14 and above are supported
Python
Versions 3.8 and above are supported
Java
Versions 8 and above are supported
PHP
Versions 8.0.0 - 8.4.x are supported
Ruby
Versions 3.1.0 - 3.5.x are supported
.NET
Versions 4.6.2 and above are supported
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.
Go
For applications written in Go
Javascript
For applications written in JavaScript or Node.js
Python
For applications written in Python
Java
For applications written in Java or JVM-based languages
PHP
For applications written in PHP
Ruby
For applications written in Ruby
.NET
For applications written in C# or .NET
Instrumentation Flow:
- User selects a workload to auto instrument by creating a
Source
object (per workload or per namespace). - Odigos
instrumentor
component watches for changes withSource
objects, and creates a relativeInstrumentationConfig
object. - Odigos
odiglet
component watches for changes with theInstrumentationConfig
objects, and runs a runtime inspection on running pods to detect the programming language for every container. - Odigos
instrumentor
component watches for changes with theInstrumentationConfig
object, and adds a resource request into each pod spec of all relevant containers in the workload manifest. These resource requests are calledInstrumentation Devices
. - Kubernetes detects the changes in the manifest, and rollout-restarts the pods with the new
Instrumentation Devices
. - New pods are scheduled and started. Odiglet resolves the resource request by mounting the auto instrumentation code and relevant environment variables into the container.
- The auto instrumentation code starts the OpenTelemetry SDK and sends telemetry data to the odigos pipeline.
bash odigos config set rollback-disabled true
or via the helm chart autoRollback.disabled=false