Skip to content
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

NETOBSERV-1909 filter regexes #121

Merged
merged 2 commits into from
Dec 12, 2024
Merged

NETOBSERV-1909 filter regexes #121

merged 2 commits into from
Dec 12, 2024

Conversation

jpinsonneau
Copy link
Contributor

Description

Implement FLP regexes filters in CLI. Example:

NETOBSERV_AGENT_IMAGE=quay.io/jpinsonn/netobserv-ebpf-agent:1692 ./build/oc-netobserv flows --regexes=SrcK8S_Namespace~netobserv-cli

Dependencies

netobserv/flowlogs-pipeline#740
=> will need to update eBPF agent since CLI rely on direct+flp mode

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.

  • Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
  • Does this PR require product documentation?
    • If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.
  • Does this PR require a product release notes entry?
    • If so, fill in "Release Note Text" in the JIRA.
  • Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.
    • If so, make sure it is described in the JIRA ticket.
  • 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).

rules=()
for regex in $(echo $2 | tr "," "\n")
do
keyValue=(${regex//"~"/ })
Copy link
Contributor Author

Choose a reason for hiding this comment

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

☝️ We may implement more splitter if needed here to manage other rules

Copy link

codecov bot commented Nov 19, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 25.07%. Comparing base (00192b6) to head (c53740b).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #121   +/-   ##
=======================================
  Coverage   25.07%   25.07%           
=======================================
  Files           9        9           
  Lines        1368     1368           
=======================================
  Hits          343      343           
  Misses       1004     1004           
  Partials       21       21           
Flag Coverage Δ
unittests 25.07% <ø> (ø)

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

@jpinsonneau jpinsonneau mentioned this pull request Nov 19, 2024
10 tasks
@@ -187,6 +188,7 @@ function common_usage {
echo " --icmp_code: filter ICMP code (default: n/a)"
echo " --peer_ip: filter peer IP (default: n/a)"
echo " --drops: filter flows with only dropped packets (default: false)"
echo " --regexes: filter flows using regex (default: n/a)"
Copy link
Member

@jotak jotak Nov 20, 2024

Choose a reason for hiding this comment

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

I feel like this deserves more explanation and perhaps a simple example, no? What the regex will be running against? The json representation of the flow? (I know it's not but the user may not know) From code it looks like user has to provide keys and values, we can mention that.

Also, nit: in the description I'd use the full wording "regular expressions" rather than "regex".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Every filter need examples so I created a followup: https://issues.redhat.com/browse/NETOBSERV-2011

Copy link
Member

@jotak jotak left a comment

Choose a reason for hiding this comment

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

/lgtm

Copy link

openshift-ci bot commented Dec 12, 2024

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by:

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

The pull request process is described here

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

@jpinsonneau jpinsonneau merged commit 1372c65 into netobserv:main Dec 12, 2024
9 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants