[ Agent ] [ Status ] - refresh status part

This commit is contained in:
zeaslity
2023-12-20 15:50:08 +08:00
parent 3312052645
commit 4d56083b5a
15 changed files with 423 additions and 68 deletions

View File

@@ -3,28 +3,29 @@ package status
import (
"github.com/shirou/gopsutil/v3/cpu"
"github.com/shirou/gopsutil/v3/load"
"time"
)
type CPUStatus struct {
NumCores int
CPUInfo []cpu.InfoStat
CPUPercent float64
CPULoads *load.AvgStat
SystemLoads *load.AvgStat
type CPUMetric struct {
NumCores int
CPUPercent float64
CPULoads *load.AvgStat
}
func GetCPUStatus() (*CPUStatus, error) {
type CPUInfo struct {
CPUMetric
CPUInfo []cpu.InfoStat
}
func GetCPUMetric() (*CPUMetric, 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)
cpuPercent, err := cpu.Percent(time.Second, false)
if err != nil {
return nil, err
}
@@ -34,17 +35,42 @@ func GetCPUStatus() (*CPUStatus, error) {
return nil, err
}
systemLoads, err := load.Avg()
return &CPUMetric{
NumCores: numCores,
CPUPercent: cpuPercent[0],
CPULoads: cpuLoads,
}, nil
}
func GetCPUInfo() (*CPUInfo, error) {
numCores, err := cpu.Counts(true)
if err != nil {
return nil, err
}
return &CPUStatus{
NumCores: numCores,
CPUInfo: cpuInfo,
CPUPercent: cpuPercent[0],
CPULoads: cpuLoads,
SystemLoads: systemLoads,
cpuPercent, err := cpu.Percent(time.Second, false)
if err != nil {
return nil, err
}
cpuLoads, err := load.Avg()
if err != nil {
return nil, err
}
infoStats, err := cpu.Info()
if err != nil {
return nil, err
}
return &CPUInfo{
CPUMetric: CPUMetric{
NumCores: numCores,
CPUPercent: cpuPercent[0],
CPULoads: cpuLoads,
},
CPUInfo: infoStats,
}, nil
}