()
| 606 | } |
| 607 | |
| 608 | func updateAppStats() { |
| 609 | sysStatus.Uptime = appstats.TimeSincePro(appStartTime) |
| 610 | |
| 611 | m := new(runtime.MemStats) |
| 612 | runtime.ReadMemStats(m) |
| 613 | sysStatus.NumGoroutine = runtime.NumGoroutine() |
| 614 | |
| 615 | sysStatus.MemAllocated = appstats.FileSize(int64(m.Alloc)) |
| 616 | sysStatus.MemTotal = appstats.FileSize(int64(m.TotalAlloc)) |
| 617 | sysStatus.MemSys = appstats.FileSize(int64(m.Sys)) |
| 618 | sysStatus.Lookups = m.Lookups |
| 619 | sysStatus.MemMallocs = m.Mallocs |
| 620 | sysStatus.MemFrees = m.Frees |
| 621 | |
| 622 | sysStatus.HeapAlloc = appstats.FileSize(int64(m.HeapAlloc)) |
| 623 | sysStatus.HeapSys = appstats.FileSize(int64(m.HeapSys)) |
| 624 | sysStatus.HeapIdle = appstats.FileSize(int64(m.HeapIdle)) |
| 625 | sysStatus.HeapInuse = appstats.FileSize(int64(m.HeapInuse)) |
| 626 | sysStatus.HeapReleased = appstats.FileSize(int64(m.HeapReleased)) |
| 627 | sysStatus.HeapObjects = m.HeapObjects |
| 628 | |
| 629 | sysStatus.StackInuse = appstats.FileSize(int64(m.StackInuse)) |
| 630 | sysStatus.StackSys = appstats.FileSize(int64(m.StackSys)) |
| 631 | sysStatus.MSpanInuse = appstats.FileSize(int64(m.MSpanInuse)) |
| 632 | sysStatus.MSpanSys = appstats.FileSize(int64(m.MSpanSys)) |
| 633 | sysStatus.MCacheInuse = appstats.FileSize(int64(m.MCacheInuse)) |
| 634 | sysStatus.MCacheSys = appstats.FileSize(int64(m.MCacheSys)) |
| 635 | sysStatus.BuckHashSys = appstats.FileSize(int64(m.BuckHashSys)) |
| 636 | sysStatus.GCSys = appstats.FileSize(int64(m.GCSys)) |
| 637 | sysStatus.OtherSys = appstats.FileSize(int64(m.OtherSys)) |
| 638 | |
| 639 | sysStatus.NextGC = appstats.FileSize(int64(m.NextGC)) |
| 640 | sysStatus.LastGC = fmt.Sprintf("%.1fs", float64(time.Now().UnixNano()-int64(m.LastGC))/1000/1000/1000) |
| 641 | sysStatus.PauseTotalNs = fmt.Sprintf("%.1fs", float64(m.PauseTotalNs)/1000/1000/1000) |
| 642 | sysStatus.PauseNs = fmt.Sprintf("%.3fs", float64(m.PauseNs[(m.NumGC+255)%256])/1000/1000/1000) |
| 643 | sysStatus.NumGC = m.NumGC |
| 644 | } |
| 645 | |
| 646 | func adminResetPassword(app *App, u *User, newPass string) error { |
| 647 | hashedPass, err := auth.HashPass([]byte(newPass)) |
no test coverage detected