Skip to content

Commit 1a55bdb

Browse files
chore(pipeline): streamline time args normalization
Instead of using a helper, and then using it in a specialized processor function - use function currying to enable creating generic time argument processors.
1 parent 18d3abd commit 1a55bdb

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

pkg/ebpf/processor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func (t *Tracee) registerEventProcessors() {
126126

127127
// Convert all time relate args to nanoseconds since epoch.
128128
// NOTE: Make sure to convert time related args (of your event) in here.
129-
t.RegisterEventProcessor(events.SchedProcessFork, t.processSchedProcessFork)
129+
t.RegisterEventProcessor(events.SchedProcessFork, t.normalizeTimeArg("start_time"))
130130
t.RegisterEventProcessor(events.All, t.normalizeEventCtxTimes)
131131

132132
//

pkg/ebpf/processor_funcs.go

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -360,24 +360,21 @@ func (t *Tracee) normalizeEventCtxTimes(event *trace.Event) error {
360360
return nil
361361
}
362362

363-
// processSchedProcessFork processes a sched_process_fork event by normalizing the start time.
364-
func (t *Tracee) processSchedProcessFork(event *trace.Event) error {
365-
return t.normalizeEventArgTime(event, "start_time")
366-
}
367-
368-
// normalizeEventArgTime normalizes the event arg time to be relative to tracee start time or
369-
// current time.
370-
func (t *Tracee) normalizeEventArgTime(event *trace.Event, argName string) error {
371-
arg := events.GetArg(event, argName)
372-
if arg == nil {
373-
return errfmt.Errorf("couldn't find argument %s of event %s", argName, event.EventName)
374-
}
375-
argTime, ok := arg.Value.(uint64)
376-
if !ok {
377-
return errfmt.Errorf("argument %s of event %s is not of type uint64", argName, event.EventName)
363+
// normalizeTimeArg returns a processor function for some argument name
364+
// which normalizes said event arg time to be relative to tracee start time or current time.
365+
func (t *Tracee) normalizeTimeArg(argName string) func(event *trace.Event) error {
366+
return func(event *trace.Event) error {
367+
arg := events.GetArg(event, argName)
368+
if arg == nil {
369+
return errfmt.Errorf("couldn't find argument %s of event %s", argName, event.EventName)
370+
}
371+
argTime, ok := arg.Value.(uint64)
372+
if !ok {
373+
return errfmt.Errorf("argument %s of event %s is not of type uint64", argName, event.EventName)
374+
}
375+
arg.Value = t.timeNormalizer.NormalizeTime(int(argTime))
376+
return nil
378377
}
379-
arg.Value = t.timeNormalizer.NormalizeTime(int(argTime))
380-
return nil
381378
}
382379

383380
// addHashArg calculate file hash (in a best-effort efficiency manner) and add it as an argument

0 commit comments

Comments
 (0)