Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opentelemetry-semantic-conventions causes version conflicts with older instrumentation libraries #1168

Closed
nemoshlag opened this issue Jun 28, 2022 · 9 comments

Comments

@nemoshlag
Copy link
Member

Is your feature request related to a problem?
Whenever opentelemetry-python-contrib is being released - a corresponding opentelemetry-semantic-conventions is created and released as well. For a user who wants to update a single instrumented library, this causes an overlay because the new semantic-conventions lib doesn't support the previous instrumented libraries.

Describe the solution you'd like
I wish I could update a single opentelemetry-instrumentation library without having to update all other instrumentations as well.

Describe alternatives you've considered
The current state is solved by updating all instrumentation libraries as well as exporters, sdk, and utils.

Additional context
As @aabmass mentioned in the python slack channel, in the Go implementation this is targeted by a subdirectory for each version - https://pkg.go.dev/go.opentelemetry.io/otel/semconv

@srikanthccv
Copy link
Member

@nemoshlag Is your primary concern about the backwards compatibility or version conflict that arises when you installing new package?

@nemoshlag
Copy link
Member Author

Hi @srikanthccv thanks 🙏 version conflict is indeed my main issue - I've edited the issue accordingly

@nemoshlag nemoshlag changed the title Backward compatibility for opentelemetry-semantic-conventions opentelemetry-semantic-conventions causes version conflicts with older instrumentation libraries Jun 29, 2022
@tpadr
Copy link

tpadr commented Jul 1, 2022

@srikanthccv I have same circular dependency issue:

  Because opentelemetry-instrumentation-fastapi (0.29b0) depends on opentelemetry-semantic-conventions (0.29b0)
   and opentelemetry-sdk (1.11.1) depends on opentelemetry-semantic-conventions (0.30b1), opentelemetry-instrumentation-fastapi (0.29b0) is incompatible with opentelemetry-sdk (1.11.1).
  So, because notebook-integration depends on both opentelemetry-sdk (1.11.1) and opentelemetry-instrumentation-fastapi (0.29b0), version solving failed.

Any updates on this problem?

@srikanthccv
Copy link
Member

Install opentelemetry-instrumentation-fastapi 0.30b1.

@tpadr
Copy link

tpadr commented Jul 3, 2022

@srikanthccv here is my stack of opentelemetry libs, and I want updated them to the latest versions:

opentelemetry-api = "1.10.0"
opentelemetry-sdk = "1.10.0"
opentelemetry-instrumentation-fastapi = "0.29b0"
opentelemetry-instrumentation-httpx = "0.29b0"
opentelemetry-exporter-jaeger = "1.10.0"
opentelemetry-propagator-jaeger = "1.10.0"

When I try install opentelemetry-instrumentation-fastapi==0.30b1, I've got an error:

  Because opentelemetry-instrumentation-httpx (0.29b0) depends on opentelemetry-instrumentation (0.29b0)
   and opentelemetry-instrumentation-fastapi (0.30b1) depends on opentelemetry-instrumentation (0.30b1), opentelemetry-instrumentation-httpx (0.29b0) is incompatible with opentelemetry-instrumentation-fastapi (0.30b1).
  So, because notebook-integration depends on both opentelemetry-instrumentation-fastapi (0.30b1) and opentelemetry-instrumentation-httpx (0.29b0), version solving failed.

To fix this, I've tried install opentelemetry-instrumentation-httpx==0.30b1 at first, but the process goes into infinite amount of time (freeze).


Updating dependencies
Resolving dependencies...
   1: fact: telemetry is 0.1.0
   1: derived: telemetry
   1: fact: telemetry depends on opentelemetry-instrumentation-httpx (0.30b1)
   1: selecting telemetry (0.1.0)
   1: derived: opentelemetry-instrumentation-httpx (==0.30b1)
PyPI: 1 packages found for opentelemetry-instrumentation-httpx 0.30b1
   1: fact: opentelemetry-instrumentation-httpx (0.30b1) depends on opentelemetry-api (>=1.3,<2.0)
   1: fact: opentelemetry-instrumentation-httpx (0.30b1) depends on opentelemetry-instrumentation (0.30b1)
   1: fact: opentelemetry-instrumentation-httpx (0.30b1) depends on opentelemetry-semantic-conventions (0.30b1)
   1: selecting opentelemetry-instrumentation-httpx (0.30b1)
   1: derived: opentelemetry-semantic-conventions (==0.30b1)
   1: derived: opentelemetry-instrumentation (==0.30b1)
   1: derived: opentelemetry-api (>=1.3,<2.0)
PyPI: 1 packages found for opentelemetry-semantic-conventions 0.30b1

CC @roma-glushko

@srikanthccv
Copy link
Member

@tpadr I couldn't reproduce the issue with pip, can you share which install tool you are using?

@tpadr
Copy link

tpadr commented Sep 14, 2022

@srikanthccv, the issue is not reproducible anymore. I'm using poetry as package manager

@lzchen
Copy link
Contributor

lzchen commented Sep 20, 2022

Will be closing this issue. Feel free to comment if issue comes up again.

@lzchen lzchen closed this as completed Sep 20, 2022
@Kamalsky-dev
Copy link

same error. can't fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants