[ Agent ] [ Status ] - refresh status part
This commit is contained in:
@@ -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
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user