refactor(agent): avoid deprecated CPU time total helper (#2459)

This commit is contained in:
user01010111
2026-09-29 08:42:01 -04:00
committed by GitHub
parent 5df0a256c6
commit 68ca6936a7
2 changed files with 30 additions and 1 deletions
+2 -1
View File
@@ -119,7 +119,8 @@ func calculateBusy(t1, t2 cpu.TimesStat) float64 {
// On Linux, it excludes guest and guest_nice time from the total to match kernel behavior.
// Returns total CPU time and busy CPU time (total minus idle and I/O wait time).
func getAllBusy(t cpu.TimesStat) (float64, float64) {
tot := t.Total()
tot := t.User + t.System + t.Idle + t.Nice + t.Iowait + t.Irq +
t.Softirq + t.Steal + t.Guest + t.GuestNice
if runtime.GOOS == "linux" {
tot -= t.Guest // Linux 2.6.24+
tot -= t.GuestNice // Linux 3.2.0+
+28
View File
@@ -0,0 +1,28 @@
//go:build testing
package agent
import (
"runtime"
"testing"
"github.com/shirou/gopsutil/v4/cpu"
"github.com/stretchr/testify/assert"
)
func TestGetAllBusy(t *testing.T) {
times := cpu.TimesStat{
User: 1, System: 2, Idle: 3, Nice: 4, Iowait: 5,
Irq: 6, Softirq: 7, Steal: 8, Guest: 9, GuestNice: 10,
}
wantTotal, wantBusy := 55.0, 47.0
if runtime.GOOS == "linux" {
wantTotal, wantBusy = 36, 28
}
total, busy := getAllBusy(times)
assert.Equal(t, wantTotal, total)
assert.Equal(t, wantBusy, busy)
assert.InDelta(t, wantBusy/wantTotal*100, calculateBusy(cpu.TimesStat{}, times), 1e-10)
assert.Zero(t, calculateBusy(times, times))
assert.Zero(t, calculateBusy(times, cpu.TimesStat{}))
}