Closed jotak closed 3 months ago
New image: quay.io/netobserv/netobserv-ebpf-agent:e1397a0
It will expire after two weeks.
To deploy this build, run from the operator repo, assuming the operator is running:
USER=netobserv VERSION=e1397a0 make set-agent-image
Attention: Patch coverage is 95.38462%
with 3 lines
in your changes are missing coverage. Please review.
Project coverage is 33.17%. Comparing base (
58d01d9
) to head (dffe40a
). Report is 1 commits behind head on main.
Files | Patch % | Lines |
---|---|---|
pkg/decode/decode_protobuf.go | 94.82% | 2 Missing and 1 partial :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
any cpu impact for the additional processing with ur scale test ?
why this is marked as breaking change ?
why this is marked as breaking change ?
That's a breaking change because the types in the GenericMap output change, as you can see here: https://github.com/netobserv/netobserv-ebpf-agent/pull/297/files#diff-5b98b198dc9b743f2c1c2d470d443d9ec2ed38b4ee15777cb857584ddacce657 For instance "Proto" was u8 in the inner model, cast as uint32 in protobuf, previously with the grpc exporter it was still uint32 in the GenericMap but now it's back to uint8 in that Map.
So, consumers who would cast explicitly to uint32 would now have to cast to uint8
/lgtm
any cpu impact for the additional processing with ur scale test ?
Slight increase of CPU in one of the tests (0.167 -> 0.172) and memory as well (671MB -> 679 MB) (i picked the one run that seems more relevant as it showed a similar number of flows per seconds). I'd say it's in reasonable bounds...
/approve marking no-qe as there's no visible output
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jotak
The full list of commands accepted by this bot can be found here.
The pull request process is described here
/retest-required
/retest
Description
The FLP GenericMap provided by the agent differs in types depending on the exporter being used, especially with DirectFLP each records size is smaller than when used with protobuf, due to protobuf using uint32 almost everywhere. This is not a problem in most cases as FLP generally converts that in JSON, but it breaks the FLP IPFIX export which expects strict types.
This commit brings more consistency between the FLP-direct mode and the protobuf mode, by sharing the same GenericMap encoding function. Which means the protobuf decode is now done in two steps: first proto-to-flow.Record, then flow.Record-to-GenericMap.
Dependencies
FLP update of the IPFIX exporter: https://github.com/netobserv/flowlogs-pipeline/pull/634
Checklist
If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.