open-telemetry / open-telemetry/opentelemetry-python
opentelemetry-instrument fails very silently if no configurator is available
@Manvi2402 is already working on this.
Since May 6, 2026.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.