-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
Remove Census dependency from grpc-core #5076
Milestone
Comments
Since this was filed, we split grpc-api out of grpc-core. So this no longer has impact on context-only users. Although we still want it because the Census dependency does cause trouble and feels wrong to be in core. For example removing the dependency could be a solution to #5510. |
@ejona86 this can be closed now I think. |
This was fixed by #6577 |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Census is an implicit dependency today and automatically enables itself if Census is included on the classpath. This was because that behavior was a "requirement."
I've since learned that other languages didn't implement that "requirement." If we kicked census out of grpc-core, it would be possible to add grpc-context back into grpc-core to resolve #2727 and #3522 and similar. (The general idea here is that internal could also be moved out of grpc-core, so Context-only users don't pull in as much code.)
Unfortunately that puts us in a bit of a bind for existing users, as they will probably expect that they can enable Census classloader-wide without code changes to each call site.
A possible solution to that is to provide a global interceptor API, where we allow exactly one call to a method that sets the global interceptors that are used for all Channels. The expectation is that this method would be called in main().
Another option is to add a grpc-census artifact that grpc-core looks for and uses if available via reflection. That would certainly be easier for users to update.
The text was updated successfully, but these errors were encountered: