Skip to content

NETOBSERV-2733: Remove kafka compression by default#2703

Merged
jotak merged 1 commit intonetobserv:mainfrom
jotak:no-compression
May 7, 2026
Merged

NETOBSERV-2733: Remove kafka compression by default#2703
jotak merged 1 commit intonetobserv:mainfrom
jotak:no-compression

Conversation

@jotak
Copy link
Copy Markdown
Member

@jotak jotak commented May 4, 2026

Description

Enabling Kafka compression by default results in performance regressions, at least visible in the NDH tests. Moreover, those tests don't show a counterpart improvement, such as on Kafka brokers cpu or memory.

Hence, this PR restores the previous default state; Kafka compression is still possible as an opt-in.

Dependencies

n/a

Checklist

  • Does the changes in PR need specific configuration or environment set up for testing?
    • if so please describe it in PR description.
  • I have added thorough unit tests for the change.
  • QE requirements (check 1 from the list):
    • Standard QE validation, with pre-merge tests unless stated otherwise.
    • Regression tests only (e.g. refactoring with no user-facing change).
    • No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

Summary by CodeRabbit

  • Configuration Changes

    • Updated default Kafka message compression from lz4 to none for both exporter and processor configurations.
  • Documentation

    • Updated configuration documentation to reflect the new Kafka compression default value.

@jotak jotak requested a review from memodi May 4, 2026 11:36
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 4, 2026

📝 Walkthrough

Walkthrough

This PR changes the default Kafka message compression setting from lz4 to none across the FlowCollector configuration, updating the Go type definition, all CRD manifests, documentation, and test formatting.

Changes

Kafka Compression Default Update

Layer / File(s) Summary
Go Type Definition
api/flowcollector/v1beta2/flowcollector_types.go
FlowCollectorKafka.Compression kubebuilder default annotation changed from "lz4" to "none".
CRD Base & Bundle Manifests
config/crd/bases/flows.netobserv.io_flowcollectors.yaml, bundle/manifests/flows.netobserv.io_flowcollectors.yaml
CRD schema defaults for spec.exporters[].kafka.compression and spec.kafka.compression changed from lz4 to none; descriptions updated to reflect the new default.
Helm CRD
helm/crds/flows.netobserv.io_flowcollectors.yaml
Same default changes in Helm-distributed CRD: spec.exporters[].kafka.compression and spec.kafka.compression now default to none.
Documentation
docs/FlowCollector.md
User-facing documentation for both Kafka exporter and pipeline compression settings updated to show none as the default value.
Test Formatting
internal/controller/flp/flp_pipeline_builder_test.go
Minor comment alignment adjustment in TestMergeMetricsConfiguration_WithAdditionalList_Dedup; no test logic changed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: disabling Kafka compression by default across all configuration files and documentation.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed PR description includes all required sections with clear rationale for the change and appropriate QE selection.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented May 4, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign stleerh for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@codecov
Copy link
Copy Markdown

codecov Bot commented May 4, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 72.32%. Comparing base (029f89d) to head (2f5e9fe).
⚠️ Report is 7 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2703   +/-   ##
=======================================
  Coverage   72.32%   72.32%           
=======================================
  Files         107      107           
  Lines       11482    11482           
=======================================
  Hits         8304     8304           
  Misses       2675     2675           
  Partials      503      503           
Flag Coverage Δ
unittests 72.32% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
api/flowcollector/v1beta2/flowcollector_types.go 100.00% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@memodi
Copy link
Copy Markdown
Member

memodi commented May 4, 2026

/ok-to-test

@openshift-ci openshift-ci Bot added the ok-to-test To set manually when a PR is safe to test. Triggers image build on PR. label May 4, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

New images:

quay.io/netobserv/network-observability-operator:43eaec4
quay.io/netobserv/network-observability-operator-bundle:v0.0.0-sha-43eaec4
quay.io/netobserv/network-observability-operator-catalog:v0.0.0-sha-43eaec4

They will expire in two weeks.

To deploy this build:

# Direct deployment, from operator repo
IMAGE=quay.io/netobserv/network-observability-operator:43eaec4 make deploy

# Or using operator-sdk
operator-sdk run bundle quay.io/netobserv/network-observability-operator-bundle:v0.0.0-sha-43eaec4

Or as a Catalog Source:

apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: netobserv-dev
  namespace: openshift-marketplace
spec:
  sourceType: grpc
  image: quay.io/netobserv/network-observability-operator-catalog:v0.0.0-sha-43eaec4
  displayName: NetObserv development catalog
  publisher: Me
  updateStrategy:
    registryPoll:
      interval: 1m

Copy link
Copy Markdown
Member

@OlivierCazade OlivierCazade left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@memodi
Copy link
Copy Markdown
Member

memodi commented May 7, 2026

/jira NETOBSERV-2733

@memodi
Copy link
Copy Markdown
Member

memodi commented May 7, 2026

/label qe-approved

this PR reverts the usage on both FLP and ebpf to pre-regression levels:
https://gist.github.com/memodi/6c97a8ccc22550cdd056152f7dc4b7d2

@openshift-ci openshift-ci Bot added the qe-approved QE has approved this pull request label May 7, 2026
@jotak jotak merged commit 240dfee into netobserv:main May 7, 2026
18 of 19 checks passed
@jotak jotak changed the title Remove kafka compression by default NETOBSERV-2733: Remove kafka compression by default May 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm ok-to-test To set manually when a PR is safe to test. Triggers image build on PR. qe-approved QE has approved this pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants