-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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: supports more compression methods for configgrpc #4088
Conversation
…nto support_encodings
…nto support_encodings
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.
Title and changelog is wrong since this is only for client side but not for server side as well.
Simply including the additional compression packages makes them available for use by the server through content negotiation. From
|
…nto support_encodings
Codecov Report
@@ Coverage Diff @@
## main #4088 +/- ##
=======================================
Coverage 88.13% 88.13%
=======================================
Files 176 176
Lines 10425 10425
=======================================
Hits 9188 9188
Misses 1005 1005
Partials 232 232
Continue to review full report at Codecov.
|
@bogdandrutu any followup items here? |
@codeboten this was discussed last SIG meeting, and it was asked to investigate/create an issue to investigate if the new dependency is the right one, or we should not depend on that third-party module. |
@bogdandrutu ah I see, thanks for clarifying. It seems most other projects (including collector-contrib and jaeger) use the sarama library for the different compression options, should we move this PR in that direction? Would that be enough to move the PR forward? |
Sarama is using the same implementations of zstd and lz4 as the dependency included here. That gives me some confidence in the stability of those implementations and the gRPC compression interface wrapping them is simple and easily reviewed and understood. I don't see a reason to not use this library. |
@Aneurysm9 I think the main advantage could be more directly controlling the versions of those compression dependencies. The simpleness of the gRPC interfaces means on the flip side that implementing here isn't that hard really, but can ensure better that we're on the latest version of these libraries. |
Sarama is a Go client for Kafka, so all of usage in collector-contrib and jaeger is related to Kafka, not for gRPC configuration.Only kafkareceiver and kafkaexporter is using sarama library in collector-contrib. To use different compression methods in gRPC, each of them should implement the compressor interface. That's why I'm using a wrapper library in this PR. |
Honeycomb upgraded from v2 to v3 of lz4 seamlessly but v4 has breaking changes we weren't ready to take yet. |
Description:
This PR ensures that configgrpc supports more compression methods lz4, snappy and zstd, in addition to gzip.
It uses
github.com/mostynb/go-grpc-compression
, which is a wrapper for compression methods that are not supported bygoogle.golang.org/grpc
.Link to tracking Issue:
#2548