// Package serverstatus generate the server system status package serverstatus import ( "fmt" "time" "github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/disk" "github.com/shirou/gopsutil/mem" ) // GetSystemInfo get the system info of a given periodic func GetSystemInfo() (Cpu float64, Mem float64, Disk float64, Uptime int, err error) { upTime := time.Now() cpuPercent, err := cpu.Percent(0, false) // Check if cpuPercent is empty if len(cpuPercent) > 0 { Cpu = cpuPercent[0] } else { Cpu = 0 } if err != nil { return 0, 0, 0, 0, fmt.Errorf("get cpu usage failed: %s", err) } memUsage, err := mem.VirtualMemory() if err != nil { return 0, 0, 0, 0, fmt.Errorf("get mem usage failed: %s", err) } diskUsage, err := disk.Usage("/") if err != nil { return 0, 0, 0, 0, fmt.Errorf("et disk usage failed: %s", err) } Uptime = int(time.Since(upTime).Seconds()) return Cpu, memUsage.UsedPercent, diskUsage.UsedPercent, Uptime, nil }