[agent-go] [status] add status module

This commit is contained in:
zeaslity
2023-04-13 17:24:39 +08:00
parent c79eaab3a3
commit c2a22b066f
12 changed files with 306 additions and 55 deletions

49
agent-go/status/CPU.go Normal file
View File

@@ -0,0 +1,49 @@
package status
import (
"github.com/shirou/gopsutil/v3/cpu"
"github.com/shirou/gopsutil/v3/load"
)
type CPUStatus struct {
NumCores int
CPUInfo []cpu.InfoStat
CPUPercent float64
CPULoads *load.AvgStat
SystemLoads *load.AvgStat
}
func GetCPUStatus() (*CPUStatus, error) {
numCores, err := cpu.Counts(true)
if err != nil {
return nil, err
}
cpuInfo, err := cpu.Info()
if err != nil {
return nil, err
}
cpuPercent, err := cpu.Percent(0, false)
if err != nil {
return nil, err
}
cpuLoads, err := load.Avg()
if err != nil {
return nil, err
}
systemLoads, err := load.Avg()
if err != nil {
return nil, err
}
return &CPUStatus{
NumCores: numCores,
CPUInfo: cpuInfo,
CPUPercent: cpuPercent[0],
CPULoads: cpuLoads,
SystemLoads: systemLoads,
}, nil
}