diff --git a/pkg/encoder/encoder.go b/pkg/encoder/encoder.go index 31336ab7a18..b463055a2b0 100644 --- a/pkg/encoder/encoder.go +++ b/pkg/encoder/encoder.go @@ -213,6 +213,15 @@ func HumanStackTrace(response *tetragon.GetEventsResponse, colorer *Colorer) str return out.String() } +type Op tetragon.OpType + +func (op Op) String() string { + return [...]string{ + 5: "EXECVE", + 23: "CLONE", + }[op] +} + func (p *CompactEncoder) EventToString(response *tetragon.GetEventsResponse) (string, error) { switch response.Event.(type) { case *tetragon.GetEventsResponse_ProcessExec: @@ -239,6 +248,16 @@ func (p *CompactEncoder) EventToString(response *tetragon.GetEventsResponse) (st status = p.Colorer.Red.Sprint(exit.Status) } return CapTrailorPrinter(fmt.Sprintf("%s %s %s %s", event, processInfo, args, status), caps), nil + case *tetragon.GetEventsResponse_ProcessThrottle: + throttle := response.GetProcessThrottle() + if throttle.Process == nil { + return "", ErrMissingProcessInfo + } + event := p.Colorer.Red.Sprintf("🧬 %-7s", "throttle") + processInfo, caps := p.Colorer.ProcessInfo(response.NodeName, throttle.Process) + op := Op(throttle.Op).String() + return CapTrailorPrinter(fmt.Sprintf("%s %s %s", event, processInfo, + op), caps), nil case *tetragon.GetEventsResponse_ProcessLoader: loader := response.GetProcessLoader() if loader.Process == nil {