hubble: Support for FlowLog Aggregation - [CFP-37472]#42011
hubble: Support for FlowLog Aggregation - [CFP-37472]#42011gandro merged 4 commits intocilium:mainfrom
Conversation
f08dee7 to
fb52264
Compare
32ad9c0 to
f0e4c8d
Compare
9117c3e to
9ddb88d
Compare
78a206e to
1a89a0a
Compare
I did not explore the option of using Aggregation as a wrapper. Logically it seemed more like an extension of the exporter so I took this approach. I had a quick look and I think the nature of aggregation logic is quite linked to aggregator itself and I don't think we could use this as a wrapper per se due to the way they function (stateful in aggregation vs stateless in immediate export of data), maybe we could have different types of exporters later that have different processing patterns and use the current exporter logic as some 'base' exporter. I think for now this is optimal (I've had a few rounds of feedback and simplified a few parts already). |
50243c4 to
19545dc
Compare
I applied the changes |
85394de to
d6b1e98
Compare
gandro
left a comment
There was a problem hiding this comment.
Three more nits. But besides that looks good to me, unblocking. Thanks!
17eaf9f to
d393cec
Compare
chancez
left a comment
There was a problem hiding this comment.
Looks good! Thanks a lot.
|
/test |
|
@mereta Unfortunately this PR no longer passes the go lint on Please rebase on |
Signed-off-by: mereta <[email protected]>
|
/test |
Signed-off-by: mereta <[email protected]>
Signed-off-by: mereta <[email protected]>
Signed-off-by: mereta <[email protected]>
|
/test |
|
https://github.com/cilium/cilium/actions/runs/19273886114 |
|
/test |
This PR implements CFP-37472
The goal is to allow user to aggregate flows on desired properties to reduce the overall volume of logs produced to in turn reduce storage costs.
This PR introduces flow aggregation capabilities to Hubble's dynamic and static exporters and enabling collection and export of aggregated flows.
The PR may seem large but I think keeping this together makes sense. It consists of the following parts:
API changes (5): 041e12d
Aggregation Logic (14): 025bfa2
Charts & Docs (7): e7b837a
Exporter Fix (rep): d393cec
Overview
Supports multiple dynamic flowlog configs.
flow.Aggregate.Config update
two new fields under hubble.export.static && hubble.export.dynamic.
fieldAggregate: ["source.namespace", "destination.service_name"]aggregationInterval: "1m"For Dynamic exporter a change in either will trigger hot reload.
If aggregationInterval is set to 0s - aggregation is disabled
If both FieldAggregate and FieldMask is enabled. FieldMask is ignored. (More in FieldMask & FieldAggregate analysis below)
FieldMask & FieldAggregate analysis:
FieldAggregate config:
fieldAggregate={source.namespace,source.pod_name,destination.namespace,verdict}"Aggregated Flow structure:
ConfigMap: (FieldMask config is ignored)
Testing Steps:
Manual Verrification:
BYO CNI Cilium Cluster
helm upgrade cilium cilium/cilium --version 1.19-devcilium-flowlog-configConfigMapvar/run/cilium/hubble