MCPcopy Create free account
hub / github.com/rabbitstack/fibratus / Get

Method Get

pkg/filter/accessor.go:69–148  ·  view source on GitHub ↗
(f Field, evt *event.Event)

Source from the content-addressed store, hash-verified

67const dateFmt = "2006-01-02"
68
69func (*evtAccessor) Get(f Field, evt *event.Event) (params.Value, error) {
70 switch f.Name {
71 case fields.EvtSeq, fields.KevtSeq:
72 return evt.Seq, nil
73 case fields.EvtPID, fields.KevtPID:
74 return evt.PID, nil
75 case fields.EvtTID, fields.KevtTID:
76 return evt.Tid, nil
77 case fields.EvtCPU, fields.KevtCPU:
78 return evt.CPU, nil
79 case fields.EvtName, fields.KevtName:
80 return evt.Name, nil
81 case fields.EvtCategory, fields.KevtCategory:
82 return string(evt.Category), nil
83 case fields.EvtDesc, fields.KevtDesc:
84 return evt.Description, nil
85 case fields.EvtHost, fields.KevtHost:
86 return evt.Host, nil
87 case fields.EvtTime, fields.KevtTime:
88 return evt.Timestamp.Format(timeFmt), nil
89 case fields.EvtTimeHour, fields.KevtTimeHour:
90 return uint8(evt.Timestamp.Hour()), nil
91 case fields.EvtTimeMin, fields.KevtTimeMin:
92 return uint8(evt.Timestamp.Minute()), nil
93 case fields.EvtTimeSec, fields.KevtTimeSec:
94 return uint8(evt.Timestamp.Second()), nil
95 case fields.EvtTimeNs, fields.KevtTimeNs:
96 return evt.Timestamp.UnixNano(), nil
97 case fields.EvtDate, fields.KevtDate:
98 return evt.Timestamp.Format(dateFmt), nil
99 case fields.EvtDateDay, fields.KevtDateDay:
100 return uint8(evt.Timestamp.Day()), nil
101 case fields.EvtDateMonth, fields.KevtDateMonth:
102 return uint8(evt.Timestamp.Month()), nil
103 case fields.EvtDateTz, fields.KevtDateTz:
104 tz, _ := evt.Timestamp.Zone()
105 return tz, nil
106 case fields.EvtDateYear, fields.KevtDateYear:
107 return uint32(evt.Timestamp.Year()), nil
108 case fields.EvtDateWeek, fields.KevtDateWeek:
109 _, week := evt.Timestamp.ISOWeek()
110 return uint8(week), nil
111 case fields.EvtDateWeekday, fields.KevtDateWeekday:
112 return evt.Timestamp.Weekday().String(), nil
113 case fields.EvtNparams, fields.KevtNparams:
114 return uint64(evt.Params.Len()), nil
115 case fields.EvtArg, fields.KevtArg:
116 // lookup the parameter from the field argument
117 // and depending on the parameter type, return
118 // the respective value. The field format is
119 // expressed as evt.arg[cmdline] where the string
120 // inside brackets represents the parameter name
121 name := f.Arg
122 par, err := evt.Params.Get(name)
123 if err != nil {
124 return nil, err
125 }
126

Callers

nothing calls this directly

Calls 10

GetUint8Method · 0.80
GetUint16Method · 0.80
GetUint32Method · 0.80
GetUint64Method · 0.80
GetTimeMethod · 0.80
GetParamAsStringMethod · 0.80
StringMethod · 0.65
GetMethod · 0.65
FormatMethod · 0.45
LenMethod · 0.45

Tested by

no test coverage detected