()
| 68 | } |
| 69 | |
| 70 | func updateSystemStatus() { |
| 71 | sysStatus.Uptime = tool.TimeSincePro(initTime) |
| 72 | |
| 73 | m := new(runtime.MemStats) |
| 74 | runtime.ReadMemStats(m) |
| 75 | sysStatus.NumGoroutine = runtime.NumGoroutine() |
| 76 | |
| 77 | sysStatus.MemAllocated = tool.FileSize(int64(m.Alloc)) |
| 78 | sysStatus.MemTotal = tool.FileSize(int64(m.TotalAlloc)) |
| 79 | sysStatus.MemSys = tool.FileSize(int64(m.Sys)) |
| 80 | sysStatus.Lookups = m.Lookups |
| 81 | sysStatus.MemMallocs = m.Mallocs |
| 82 | sysStatus.MemFrees = m.Frees |
| 83 | |
| 84 | sysStatus.HeapAlloc = tool.FileSize(int64(m.HeapAlloc)) |
| 85 | sysStatus.HeapSys = tool.FileSize(int64(m.HeapSys)) |
| 86 | sysStatus.HeapIdle = tool.FileSize(int64(m.HeapIdle)) |
| 87 | sysStatus.HeapInuse = tool.FileSize(int64(m.HeapInuse)) |
| 88 | sysStatus.HeapReleased = tool.FileSize(int64(m.HeapReleased)) |
| 89 | sysStatus.HeapObjects = m.HeapObjects |
| 90 | |
| 91 | sysStatus.StackInuse = tool.FileSize(int64(m.StackInuse)) |
| 92 | sysStatus.StackSys = tool.FileSize(int64(m.StackSys)) |
| 93 | sysStatus.MSpanInuse = tool.FileSize(int64(m.MSpanInuse)) |
| 94 | sysStatus.MSpanSys = tool.FileSize(int64(m.MSpanSys)) |
| 95 | sysStatus.MCacheInuse = tool.FileSize(int64(m.MCacheInuse)) |
| 96 | sysStatus.MCacheSys = tool.FileSize(int64(m.MCacheSys)) |
| 97 | sysStatus.BuckHashSys = tool.FileSize(int64(m.BuckHashSys)) |
| 98 | sysStatus.GCSys = tool.FileSize(int64(m.GCSys)) |
| 99 | sysStatus.OtherSys = tool.FileSize(int64(m.OtherSys)) |
| 100 | |
| 101 | sysStatus.NextGC = tool.FileSize(int64(m.NextGC)) |
| 102 | sysStatus.LastGC = fmt.Sprintf("%.1fs", float64(time.Now().UnixNano()-int64(m.LastGC))/1000/1000/1000) |
| 103 | sysStatus.PauseTotalNs = fmt.Sprintf("%.1fs", float64(m.PauseTotalNs)/1000/1000/1000) |
| 104 | sysStatus.PauseNs = fmt.Sprintf("%.3fs", float64(m.PauseNs[(m.NumGC+255)%256])/1000/1000/1000) |
| 105 | sysStatus.NumGC = m.NumGC |
| 106 | } |
| 107 | |
| 108 | func Dashboard(c *context.Context) { |
| 109 | c.Title("admin.dashboard") |
no test coverage detected