Comments (7)
DiagnosticSource latest version is needed in OTel, and that is by-design.
https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/Directory.Packages.props#L46-L55
from opentelemetry-dotnet.
DiagnosticSource latest version is needed in OTel, and that is by-design. https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/Directory.Packages.props#L46-L55
Could you explain the design decision here. This makes working with package when you don't have the latest version of the api very difficult.
It also means that bumping between versions is much harder.
Is there a policy around this? It seems like a breaking change to the API and should at a minimum rev the version of OpenTelemetry. Otherwise this is a poison pill to anyone who has compatibility issues.
There seem to be multiple issues in which users are dismissed without a policy or understanding just that "it is the way":
#3448
#4047
#2824
It seems like a good policy would be to at a minimum maintain compatibility with the latest LTS which is .NET 6
https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core
from opentelemetry-dotnet.
The design decision is already explained here:
https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/Directory.Packages.props#L46-L55
OTel needs latest version of DS. Its independent on the actual .NET version the app is running. DS is shipped as out-of-band.
Also adding to docs as well. Some are added: https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/metrics#package-version, more coming.
It seems like a breaking change to the API
Sorry, I don't follow this.. What is the breaking change here?
from opentelemetry-dotnet.
The design decision is already explained here:
https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/Directory.Packages.props#L46-L55
It seems like a breaking change to the API
Sorry, I don't follow this.. What is the breaking change here?
This would be the type of breaking change mentioned.
https://learn.microsoft.com/en-my/dotnet/standard/library-guidance/breaking-changes#behavior-breaking-change
Adding features and improving bad behaviors is a good thing, but without care it can make it very hard for existing users to upgrade. One approach to helping developers deal with behavior breaking changes is to hide them behind settings. Settings let developers update to the latest version of your library while at the same time choosing to opt in or opt out of breaking changes. This strategy lets developers stay up to date while letting their consuming code adapt over time.
Currently you're forcing an update to a library which is a breaking change 6->7->8 of a transitive dependency. That dependency is used for other things and doing this forces code changes across a large code base before being able to take advantage of incremental improvements in your library.
from opentelemetry-dotnet.
@hdost Its not clear what is the breaking change you are referring to?
- Can you give a concrete example?
- And what is your proposal instead of depending on latest version of DS?
from opentelemetry-dotnet.
I noticed that OTEL also forces Microsoft.Extensions.*
8.0.0+. We don't plan to use these nugets before migrating to .NET 8. Is that a requirement for OTEL to work? I would expect these nugets to match the target framework version.
from opentelemetry-dotnet.
@cijothomas i think what may be a bit more confidence building is actual policies around how these policies are defined
Because as @verdie-g mentioned above there's more than just a single library at issue.
- Since version 3.1.0, the .NET runtime team is holding a high bar for backward compatibility on these packages even during major version bumps, so compatibility is not a concern here.
This is a statement in this repo, but there's no link to a public commitment on these. Our hesitancy towards this is that we just spent a significant amount of effort to upgrade to past 3.1 and it was painful to say the least. We're dealing with thousands of modules across hundreds of repositories. So you'll have to excuse us for not taking the word of a comment in a properties file.
Is there some sort of policy for public view? Most google searches lead me to nothing of the sort.
I have seen this similar "high bar language" but aside from a github comment or a line in a config file I'm not seeing anything.
EDIT: I have since found dotnet/docs#31974 but it's still unresolved.
from opentelemetry-dotnet.
Related Issues (20)
- Migrate `/docs` content that is end-user facing to OpenTelemetry Website HOT 4
- Add stress tests with validation too
- Console Exporter use YAML by default HOT 7
- Add ActivitySource to SamplingParameters HOT 4
- HttpProtobuf protocol not working HOT 3
- How can I connect the output to Jaeger with AddOtlpExporter?
- Application Insights shows 400-499 response codes even though failed requests have been filtered in a processor HOT 2
- OTLP Exporter Default impl doesn't match docs HOT 4
- Guidance for instrumentation authors of libraries built upon other instrumented libraries
- Improve memory efficiency in Dispose
- [OTLP] Determine specific conditions to consider when retrying export without a response from server.
- Shared files are out of sync between `opentelemetry-dotnet` and `opentelemetry-dotnet-contrib`
- [otlp grpc] Handle retry in case of `DEADLINE_EXCEEDED` response code
- [OpenTelemetry.Instrumentation.AspNetCore] Implement gRPC server instrumentation with use of Interceptor instead or extend ResolveSpanStatusForGrpcStatusCode method
- Using TracerShim results in ConditionalWeakTable ArgumentException: "An item with the same key has already been added."
- Promote LoggerProvider from experimental to stable
- Promote MetricPoint reclaim feature for delta aggregation from experimental to stable HOT 2
- Promote cardinality limit view API from experimental to stable
- Add simpler DI-enabled `AddDetector<TResourceDetector>()` overload HOT 6
- OTLP Exporter Enhancements
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opentelemetry-dotnet.