package monitor import ( "ferry/tools/app" "runtime" "github.com/gin-gonic/gin" "github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/disk" "github.com/shirou/gopsutil/mem" ) const ( B = 1 KB = 1024 * B MB = 1024 * KB GB = 1024 * MB ) func ServerInfo(c *gin.Context) { osDic := make(map[string]interface{}, 0) osDic["goOs"] = runtime.GOOS osDic["arch"] = runtime.GOARCH osDic["mem"] = runtime.MemProfileRate osDic["compiler"] = runtime.Compiler osDic["version"] = runtime.Version() osDic["numGoroutine"] = runtime.NumGoroutine() dis, _ := disk.Usage("/") diskTotalGB := int(dis.Total) / GB diskFreeGB := int(dis.Free) / GB diskDic := make(map[string]interface{}, 0) diskDic["total"] = diskTotalGB diskDic["free"] = diskFreeGB mem, _ := mem.VirtualMemory() memUsedMB := int(mem.Used) / GB memTotalMB := int(mem.Total) / GB memFreeMB := int(mem.Free) / GB memUsedPercent := int(mem.UsedPercent) memDic := make(map[string]interface{}, 0) memDic["total"] = memTotalMB memDic["used"] = memUsedMB memDic["free"] = memFreeMB memDic["usage"] = memUsedPercent cpuDic := make(map[string]interface{}, 0) cpuDic["cpuNum"], _ = cpu.Counts(false) app.Custum(c, gin.H{ "code": 200, "os": osDic, "mem": memDic, "cpu": cpuDic, "disk": diskDic, }) }