-
Notifications
You must be signed in to change notification settings - Fork 8
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
Don't bundle instrumentation packages in distro #250
Conversation
8af215d
to
3e0ceab
Compare
I don't know if we have a ton of people relying on it, but the need to wire up the baggage processing in the aspnetcore instrumentation does introduce more friction in getting beeline-like functionality that came automatically. I think we should try to figure out a way for people to not have to introduce that code when they wire up aspnet instrumentation (perhaps not as a part of this PR just so we can progress). |
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 reviewed this prior to our chat, and there's been some more updates but overall I think this looks great! We can iterate on some finer points if we need to later.
Which problem is this PR solving?
Bundling instrumentation within the distro has brought compatibility difficulties, particularly around ASP.NET, ASP.NET Core, Blazor and Unity. This is because these each expect to run on a slightly different runtime / set of APIs. In addition, bundling instrumentation packages in the distro also inflates the size of dependenceis even when an app does not wish to use a given instrumentation package.
A second issue is that any user of the distro that wishes to use instrumentation that the distro did not bundle, was not easily supported. The preferred way to configured the distro was to call
AddHoneycomb
on the IServiceCollection, but this obfuscated the calls to configure the OpenTelemetry SDK and did not support providing additional instrumentation.The third issue is that because the instrumentation packages are in prerelease, we would not be able to release an official (1.0.0) version of the distro because it could not include prerelease dependencies.
Short description of the changes