in metric/system/cgroup/cgv2/memory.go [214:246]
func fetchEventsFile(path, file string) (Events, error) {
evt := Events{}
toRead := filepath.Join(path, file)
f, err := os.Open(toRead)
if err != nil {
return evt, fmt.Errorf("error reading %s: %w", toRead, err)
}
defer f.Close()
sc := bufio.NewScanner(f)
for sc.Scan() {
key, val, err := cgcommon.ParseCgroupParamKeyValue(sc.Text())
if err != nil {
return evt, fmt.Errorf("error parsing key from events: %w", err)
}
switch key {
case "low":
evt.Low = opt.UintWith(val)
case "high":
evt.High = val
case "max":
evt.Max = val
case "oom":
evt.OOM = opt.UintWith(val)
case "oom_kill":
evt.OOMKill = opt.UintWith(val)
case "fail":
evt.Fail = opt.UintWith(val)
}
}
return evt, nil
}