-
Notifications
You must be signed in to change notification settings - Fork 562
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
feat(attributes) bump semconv to 1.26.0 #6172
feat(attributes) bump semconv to 1.26.0 #6172
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #6172 +/- ##
=======================================
+ Coverage 67.4% 67.6% +0.1%
=======================================
Files 206 207 +1
Lines 13220 13279 +59
=======================================
+ Hits 8922 8983 +61
+ Misses 3996 3995 -1
+ Partials 302 301 -1
|
…try-go-contrib into otelmongo#6171
Updating semconv is definitely not just a chore, especially since, as you mention, there are field name changes (which can cause issues with users, since they need to change their queries and dashboards). We should either mark these breaking changes explicitely in a changelog entry, or follow a similar migration path as the otelhttp instrumentation is doing: #5132 |
@open-telemetry/specs-semconv-maintainers, @open-telemetry/semconv-db-approvers, do you have some recommendations or feedback regarding changes of database semantic conventions? Are we supposed to do some migrations in instrumentation libraries like for HTTP instrumentations? CC @XSAM as you are the maintainer of https://github.com/XSAM/otelsql which AFAIK is the most popular instrumentation library for |
|
…try-go-contrib into otelmongo#6171
Co-authored-by: Damien Mathieu <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would rather first have a PR which bumps semconv to v1.24.0
@pellared Could you clarify this? |
…try-go-contrib into otelmongo#6171
would this go against the semconv recommendation?
|
I thought that breaking changes started since v1.25.0. But I need to double check it later |
ah, if that's the case then no problem, since that guidance was just to recommend limiting to a single (large) breaking change, instead of multiple smaller breaking changes |
@pellared Do you have an action item for this PR? |
Let's first just bump semconv to In next PRs we can add support for Notice also that the OTel Semantic Conventions only defines following values for
|
IIUC this pattern is misguided and doesn't know how to deal with multiple experimental bumps within a major version. Nor does it explain why that would never happen. See the PR description for more info on the proposed design. |
@prestonvasquez
|
@trask Would you mind reading the PR description and letting me know if the proposal is in line with the spirit of this requirement? |
You would need to address it in https://github.com/open-telemetry/semantic-conventions. This does not prevent bumping semconv to |
my recommendation would be to stick to what's defined in the semantic conventions if you're interested, there was a lot of discussion around the
I'm happy to discuss if you open an issue in https://github.com/open-telemetry/semantic-conventions describing the limitations you are running into with the existing |
What is the purpose of doing this? It seems like this will maintain the existing behavior. |
|
Yes, this would be a noop change. It would (a bit virtually) reduce the scope of the upgrade to 1.26 though, as a single version bump would then be required. |
@dmathieu In this case, should we just close this PR and leave the semconv dependency as-is for now? |
Sure, if you think there's still too much work for this PR. Maybe document the outcome from the discussion that happened here in #6171? |
@dmathieu I think we should maintain 1.17.0 since upgrading to 1.24.0 has no obvious benefit. However, I'm happy to open a separate PR for 1.24.0 if you want. I would suggest not using the pattern for a non-breaking upgrade, though. |
Like bumping a dependency - we are closer to the latest version. |
Also, folks using the package will have less surprises seeing a newer version in their dependency tree rather than something older that looks like it's not being cared for. |
Resolves #6171, #2165
See issue for migration table.
The specifications for maintaining multiple semantic convention versions is documented here: https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md. This pattern does not account for > 2 semantic version update within the lifetime of a major version. Suggest using a registry of attributes upto semconv version. This is a very flexible, lightweight pattern that is easy to update and maintain. If this comes up again, suggest abstracting it.
To use a non-default version:
To include multiple versions:
To include all versions:
To include the default (v1.17.0) version:
AFAICT the only use-case of this pattern within
open-telemetry/opentelemetry-go-contrib
is otelhttp/internal/semconv. The pattern used is rather heavy-handed for otelmongo, requiring entirely separate structures to manage attribute propagation.Benchmarking
The original solution is more performant, with about half the runtime.
Benchmark for new:
Benchmark for old: