-
Notifications
You must be signed in to change notification settings - Fork 184
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(compression): Make the compression type configurable, default: gzip #3705
base: main
Are you sure you want to change the base?
Conversation
967456e
to
5267eca
Compare
5267eca
to
99b58e2
Compare
Does it need to be configurable? Why customers would need to change it? What are possible values? |
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.
Making it configurable makes sense in case there's a problem with it, and we need to switch back. But in that case, it makes more sense to keep the default as gzip, and first dogfood zstd properly.
deploy/helm/sumologic/README.md
Outdated
@@ -432,6 +432,7 @@ The following table lists the configurable parameters of the Sumo Logic chart an | |||
| `otellogswindows.metrics.enabled` | Enable OpenTelemetry Logs Collector for Windows Nodes metrics | `true` | | |||
| `otellogswindows.serviceLabels` | Add custom labels to OpenTelemetry Logs Collector for Windows Nodes Service | `{}` | | |||
| `otellogswindows.additionalDaemonSets` | OpenTelemetry Logs Collector for Windows Nodes Daemonset per node customization options. See [Best Practices](https://help.sumologic.com/docs/send-data/kubernetes/best-practices/#setting-different-resources-on-different-nodes-for-logs-collector). | `{}` | | |||
| `metadata.compression` | Compression for logs, metrics and events | `zstd` | |
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.
How about putting this at the top-level, just compression
? Right now, it affects the log collector and the event collector, so not just metadata. But it doesn't affect the metrics collector.
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.
yeah, that's a good point, will make this change.
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.
Moved compression
to the top level. Also added the config option to the otlphttp exporter of the metrics collector.
We want to be able to switch between |
yeah, but does customer need to know what compression do we use? We can use |
I can see some reasons we may want to expose
Looks like reducing egress/ingress costs is driving the push to Is there a negative in exposing compression to users? We could use config |
d2fd755
to
049c4a5
Compare
deploy/helm/sumologic/values.yaml
Outdated
@@ -6,6 +6,9 @@ fullnameOverride: "" | |||
## Use the same namespace as namespaceOverride in 'kube-prometheus-stack.namespaceOverride' if Prometheus setup is also enabled | |||
namespaceOverride: "" | |||
|
|||
## Compression for logs, metrics and events: |
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.
Could you enumerate what the valid values for this field are, both here and in the README?
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've added these options - Compression types can be gzip, snappy, zstd or deflate
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.
It looks like it could also take ""
or none
values, but didn't want to call these out, since we always want this enabled.
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.
this is one thing I'm concerned with exposing compression configuration, it allows the customer to disable it.
We don't want to expose everything. This is why we stop exposing full configuration. It is easy to expose something but it's hard to revert that change later. I would be rather restrictive in exposing options which are not features or aren't related to resolve issues. Compression is strictly technical topic, and I would be very careful with exposing such options. We can always expose it in the future if there will be business need for that
It's development and as I understand, we want to change it to zstd, so we can test the stability of it and then use as defaults in the feature?
Yes, so if zstd is stable, we may just change it in helm chart and release it. Customers don't need to know that we had Technically PR looks ok, but I'm not convinced about the change itself 🙈 |
049c4a5
to
d4e51ba
Compare
My understanding is that this is driven by business need. Also, other projects like nginx do make compression configurable
I think all compression options currently have the same stability. |
013695f
to
eb038e1
Compare
eb038e1
to
63a0454
Compare
I do think Dominik has a good point here, and if we know that zstd is the best overall, then maybe it shouldn't be configurable. Also, I think something to consider is that a potentially more impactful configuration feature in terms of resource consumption could be the compression level. That's what is going to influence CPU use more than algorithm choice for encoding, if I'm not mistaken. |
ok, I'll dogfood |
Raised this PR - https://github.com/Sanyaku/collections-gitops/pull/1330 |
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.
This pull request contains invalid labels. Please remove all of the following labels: ['do-not-merge/hold']
Checklist