Troubleshooting
If you selected a workload to auto-instrument and you don’t see any data, use the checklist below to troubleshoot the issue.
It is recommended to use the odigos describe
command to get detailed information in one command.
Check is Source Created?
A Source
object is required for Odigos to instrument the workload or namespace, such as:
If you expect to see data from a workload but don’t, check if the Source
object exists:
Check is Language Detected?
After a Source
object is created, Odigos will attempt to detect the programming language of the containers in the workload pods, and write the detected language to an InstrumentationConfig
object in the same namespace.
The resulting language is used to determine which instrumentation to apply.
If a Source
object exists, verify that the InstrumentationConfig
also exists:
If an InstrumentationConfig
object exists, verify that the status.runtimeDetailsByContainer
array contains the expected languages, for example:
Check is Device Instrumented?
Once an InstrumentationConfig
object is created, and the supported language is detected, Odigos will wait until a destination is added, and OpenTelemetry Collectors are deployed to the cluster (which will receive the telemetry data).
To inject the instrumentation agents into the pods, Odigos will patch the workload template containers with a resource based on the detected language.
If an InstrumentationConfig
object exists, and the languages are detected, verify that the Deployment
object contains the expected instrumentation devices:
It should look something like this:
The instrumentation.odigos.io/go-ebpf-community
resource-limit instructs Odigos on how to mount the relevant OpenTelemetry agents and environment variables into the container, and which processes should be instrumented with eBPF.
Getting Help
If you have any issues, or require our assistance, please open an issue in GitHub, or reach out to us in Odigos Slack