diff --git a/client/driver/executor/executor.go b/client/driver/executor/executor.go index d6a058449..ab3d1a798 100644 --- a/client/driver/executor/executor.go +++ b/client/driver/executor/executor.go @@ -130,6 +130,7 @@ type ProcessState struct { Time time.Time } +// NomadPid holds a pid and it's cpu percentage calculator type NomadPid struct { pid int cpuStats *stats.CpuStats diff --git a/client/stats/cpu.go b/client/stats/cpu.go index 53fba0f45..9db295754 100644 --- a/client/stats/cpu.go +++ b/client/stats/cpu.go @@ -6,6 +6,7 @@ import ( "time" ) +// CpuStats calculates cpu usage percentage type CpuStats struct { prevProcessUsage float64 prevTime time.Time @@ -14,11 +15,14 @@ type CpuStats struct { logger *log.Logger } +// NewCpuStats returns a cpu stats calculator func NewCpuStats(logger *log.Logger) *CpuStats { numCpus := runtime.NumCPU() return &CpuStats{totalCpus: numCpus, logger: logger} } +// Percent calculates the cpu usage percentage based on the current cpu usage +// and the previous cpu usage func (c *CpuStats) Percent(currentProcessUsage float64) float64 { now := time.Now()