func fetchEventsFile()

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
}