2024-01-02 22:11:34 +08:00

51 lines
876 B
Go

package systemMonitor
import (
"sun-panel/global"
"sun-panel/lib/cache"
"sun-panel/lib/monitor"
"time"
)
func Start(cacher cache.Cacher[global.ModelSystemMonitor], interval time.Duration) {
go func() {
ticker := time.NewTicker(interval)
defer ticker.Stop()
for {
select {
case <-ticker.C:
go func() {
GetInfo()
}()
}
}
}()
}
func GetInfo() global.ModelSystemMonitor {
var modelSystemMonitor global.ModelSystemMonitor
if cpuInfo, err := monitor.GetCPUInfo(); err == nil {
modelSystemMonitor.CPUInfo = cpuInfo
}
if v, err := monitor.GetDiskInfo(); err == nil {
modelSystemMonitor.DiskInfo = v
}
if v, err := monitor.GetNetIOCountersInfo(); err == nil {
modelSystemMonitor.NetIOCountersInfo = v
}
if v, err := monitor.GetMemoryInfo(); err == nil {
modelSystemMonitor.MemoryInfo = v
}
return modelSystemMonitor
}