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

Is it OK for stable trace SDK to have an implementation dependency on alpha artifacts (metrics, semconv)? #2914

Closed
Oberon00 opened this issue Feb 23, 2021 · 6 comments
Labels

Comments

@Oberon00
Copy link
Member

The trace SDK is stable but depends on the metric API which is in alpha: https://github.com/open-telemetry/opentelemetry-java/blob/v0.17.1/sdk/trace/build.gradle.kts#L17

It does this to support some internal metrics for the BatchSpanProcessor.

Note that the exposure of internal metrics is of course also not specified yet, see open-telemetry/opentelemetry-specification#959.

I would vote for removing any metric dependencies from the tracing SDK for now. But if not, I think at least a comment is warranted in the gradle file.

@Oberon00 Oberon00 added the SDK label Feb 23, 2021
@anuraaga
Copy link
Contributor

I was going to say it's ok since we require the bom but realized the bom doesn't help with alpha modules.

I suggested removing them before but @jkwatson and @bogdandrutu definitely wanted to keep them and I do understand they're pretty useful metrics.

@Oberon00
Copy link
Member Author

Oberon00 commented Feb 23, 2021

Tangential question: If someone uses only the release BOM but not the alpha BOM, how will gradle resolve the version of the metrics API for the tracing SDK's dependency?

@anuraaga
Copy link
Contributor

It'll be what's in the pom like any transitive dependency. But since it's not dependency management if another dependency also uses metrics transitively it can end up a different version.

@jkwatson
Copy link
Contributor

I think this is 100% acceptable. We're not exposing anything related to metrics on the APIs of the SDK. This is just like if we had a dependency on any library that didn't have the same stability guarantees as our own SDK. changing the internal usage of metrics will not break ABI or API compatibility with anything in the SDK. It is only a potential dependency management issue, which is fine, IMO.

@Oberon00
Copy link
Member Author

Since it's only an implementation dependency, I think I agree. Would it still be worth a comment in the gradle file? Like // Implementation-only dependencies on experimental APIs are OK.

@bogdandrutu bogdandrutu changed the title Is it OK for stable trace SDK to have an implementation dependency on metric API? Is it OK for stable trace SDK to have an implementation dependency on alpha artifacts (metrics, semconv)? Feb 23, 2021
@jkwatson
Copy link
Contributor

I think this ship has sailed. closing.

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

No branches or pull requests

3 participants