func calculatePercent(t1, t2 *cpu.TimesStat, delta float64, numcpu int) float64 { if delta == 0 { return 0 } delta_proc := t2.Total() - t1.Total() overall_percent := ((delta_proc / delta) * 100) * float64(numcpu) return overall_percent }
// Calculate calculates the current cpu usage percentages func (h *HostCpuStatsCalculator) Calculate(times cpu.TimesStat) (idle float64, user float64, system float64, total float64) { currentIdle := times.Idle currentUser := times.User currentSystem := times.System currentTotal := times.Total() deltaTotal := currentTotal - h.prevTotal idle = ((currentIdle - h.prevIdle) / deltaTotal) * 100 user = ((currentUser - h.prevUser) / deltaTotal) * 100 system = ((currentSystem - h.prevSystem) / deltaTotal) * 100 currentBusy := times.User + times.System + times.Nice + times.Iowait + times.Irq + times.Softirq + times.Steal + times.Guest + times.GuestNice + times.Stolen total = ((currentBusy - h.prevBusy) / deltaTotal) * 100 h.prevIdle = currentIdle h.prevUser = currentUser h.prevSystem = currentSystem h.prevTotal = currentTotal h.prevBusy = currentBusy return }