func NewProcCollectCPU(proc *process.Process) CollectFunc { return func() (*Data, error) { percent, err := proc.CPUPercent(0) if err != nil { return nil, err } return &Data{ Name: fmt.Sprintf("proc:%d:cpu", proc.Pid), Data: map[string]interface{}{ "total": percent, "average": percent / float64(cpu.CPUCount), }, }, nil } }