feat: multi-format local sinks and S3 Parquet export for flows - #542
feat: multi-format local sinks and S3 Parquet export for flows#542jpinsonneau wants to merge 2 commits into
Conversation
Add parquet-go and related transitive deps needed by Hive Parquet encode and the flowBuffer write stage. Co-authored-by: Cursor <cursoragent@cursor.com>
Default local capture to json,sqlite (parquet opt-in via --format) and add optional Hive-partitioned Parquet export to S3-compatible storage via the embedded FLP encode.s3 stage, aligned with operator/console. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Summary
json,sqlite; includeparquetin--formatonly when needed (comma-separated / repeatable flags).encode.s3(--s3-endpoint,--s3-bucket,--s3-account, credentials env/file/secret).Hub PR (operator): netobserv/netobserv-operator#2845
Custom images (required for S3 Parquet): There is no eBPF agent PR — only an FLP vendor bump. Until agent changes land separately, use the Quay tags below (agent embeds FLP with Parquet S3 encode; CLI image has this branch’s collector/format support):
quay.io/jpinsonn/netobserv-ebpf-agent:s3-flowbufferquay.io/jpinsonn/network-observability-cli:s3-flowbufferOverride via env (see README /
scripts/functions.sh):(
NETOBSERV_AGENT_IMAGEreplaces the DaemonSet agent image;NETOBSERV_COLLECTOR_IMAGEis the in-cluster collector pod image.)Test plan
go test ./cmd/... ./e2e/...flows --format=json,sqlite(default) and--format=parquetKind testing — CLI
http://minio.minio.svc:9000).mc lsundercluster_id=cli-test/(Hive layoutyear=/month=/day=/hour=/part-….parquet); optional duckdbread_parquet('.../**/*.parquet').--format=json,sqlite; includeparquetin--formatonly when local Parquet parts are needed. S3 export is independent of local--format.Notes
FLP_CONFIG(encode.s3), not collector--options. Missing credentials fail before deploy.15s(capped by--max-time); agents flush pending Parquet parts on SIGTERM.