open-telemetry / open-telemetry/opentelemetry-python

opentelemetry-instrument fails very silently if no configurator is available

Open
#5,180 2 comments 0 reactions 1 assignee View on GitHub

@Manvi2402 is already working on this.

Since May 6, 2026.

bug
Dominant language
Python
Stars
2.6k
Forks
1k
Avg merge
4d 15h
Merged PRs (30d)
19

Description

Describe your environment

OS: Debian bookworm (Python 3.13-slim-bookworm docker container)
Python version: Python 3.13.13
SDK version: 1.37.0
API version: 1.37.0

I'm not exactly clear how I came by the above version numbers; at some point I ran opentelemetry-bootstrap (within the last few days) and this is what it gave me.

What happened?

The problem is that what it gave me didn't include opentelemetry-distro. I have listed below what actually went into my requirements.txt. In this state, opentelemetry-instrument fails in very difficult-to-debug ways. It basically does nothing at all. No command-line arguments are respected (eg --log_level=debug does not produce any more output). No traces are ever exported.

AFAICT, the problem is that without the distro package there is no metadata to tell the instrumenter what providers to use. At its base, this boils down to this:

$ python3 -c "from importlib.metadata import entry_points; print([ep.name for ep in entry_points(group='opentelemetry_configurator')])"
[]

instead of this after the distro package is installed:

$ python3 -c "from importlib.metadata import entry_points; print([ep.name for ep in entry_points(group='opentelemetry_configurator')])"
['configurator']

An error message explaining what went wrong in this case would have saved me about two and a half days of mucking around trying to figure it out and I'm sure would save other people considerable time in the future, too.

Steps to Reproduce

Install this set of packages:

opentelemetry-api==1.37.0
opentelemetry-exporter-otlp==1.37.0
opentelemetry-exporter-otlp-proto-common==1.37.0
opentelemetry-exporter-otlp-proto-grpc==1.37.0
opentelemetry-exporter-otlp-proto-http==1.37.0
opentelemetry-instrumentation==0.58b0
opentelemetry-instrumentation-asgi==0.58b0
opentelemetry-instrumentation-asyncio==0.58b0
opentelemetry-instrumentation-click==0.58b0
opentelemetry-instrumentation-dbapi==0.58b0
opentelemetry-instrumentation-fastapi==0.58b0
opentelemetry-instrumentation-flask==0.58b0
opentelemetry-instrumentation-grpc==0.58b0
opentelemetry-instrumentation-httpx==0.58b0
opentelemetry-instrumentation-jinja2==0.58b0
opentelemetry-instrumentation-logging==0.58b0
opentelemetry-instrumentation-pymysql==0.58b0
opentelemetry-instrumentation-redis==0.58b0
opentelemetry-instrumentation-requests==0.58b0
opentelemetry-instrumentation-sqlalchemy==0.58b0
opentelemetry-instrumentation-sqlite3==0.58b0
opentelemetry-instrumentation-starlette==0.58b0
opentelemetry-instrumentation-threading==0.58b0
opentelemetry-instrumentation-tortoiseorm==0.58b0
opentelemetry-instrumentation-urllib==0.58b0
opentelemetry-instrumentation-urllib3==0.58b0
opentelemetry-instrumentation-wsgi==0.58b0
opentelemetry-proto==1.37.0
opentelemetry-sdk==1.37.0
opentelemetry-semantic-conventions==0.58b0
opentelemetry-util-http==0.58b0

and try to use opentelemetry-instrument.

Expected Result

Some warning should be generated to point out that opentelemetry-instrument is missing vital parts.

Actual Result

Silent failure.

Additional context

No response

Would you like to implement a fix?

No

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.