func (p *ProcessStatSample) collectCPUTimes(proc *process.Process) { defer func() { if e := recover(); e != nil { log.Warnf("Recovered from panic on CPU times collection. Maybe unsupported on this platform.") } }() cputimes, err := proc.CPUTimes() if err != nil { log.Warnf("Error encountered collecting CPU stats: %s", err) } else { src := reflect.ValueOf(cputimes).Elem() dest := reflect.ValueOf(&p.CPUTimes).Elem() sum(&src, &dest) } }