2024-01-02 23:14:04 +08:00

54 lines
1.0 KiB
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() {
monitorInfo := GetInfo()
// jsonByte, _ := json.Marshal(monitorInfo)
// fmt.Println("系统监控:", string(jsonByte))
cacher.SetDefault("value", monitorInfo)
}()
}
}
}()
}
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
}