1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright Authors of Tetragon
11
hubbleV1 "github.com/cilium/cilium/pkg/hubble/api/v1"
12
hubbleFilters "github.com/cilium/cilium/pkg/hubble/filters"
13
"github.com/cilium/tetragon/api/v1/tetragon"
16
func filterByArgumentsRegex(argumentsPatterns []string) (hubbleFilters.FilterFunc, error) {
17
var argsRegexList []*regexp.Regexp
18
for _, pattern := range argumentsPatterns {
19
query, err := regexp.Compile(pattern)
21
return nil, fmt.Errorf("failed to compile regexp: %v", err)
23
argsRegexList = append(argsRegexList, query)
25
return func(ev *hubbleV1.Event) bool {
26
process := GetProcess(ev)
30
for _, argRegex := range argsRegexList {
31
if argRegex.MatchString(process.Arguments) {
39
type ArgumentsRegexFilter struct{}
41
func (f *ArgumentsRegexFilter) OnBuildFilter(_ context.Context, ff *tetragon.Filter) ([]hubbleFilters.FilterFunc, error) {
42
var fs []hubbleFilters.FilterFunc
43
if ff.ArgumentsRegex != nil {
44
argumentsFilters, err := filterByArgumentsRegex(ff.ArgumentsRegex)
48
fs = append(fs, argumentsFilters)