system.go 808 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package system
  2. import (
  3. "github.com/sirupsen/logrus"
  4. "godash/config"
  5. "godash/hub"
  6. "time"
  7. )
  8. var Config = SystemConfig{}
  9. var Sys = System{}
  10. func init() {
  11. config.ParseViperConfig(&Config, config.AddViperConfig("system"))
  12. if Config.LiveSystem {
  13. Sys.Initialize()
  14. }
  15. }
  16. func (s *System) UpdateLiveInformation() {
  17. for {
  18. s.liveCpu()
  19. s.liveRam()
  20. s.liveDisk()
  21. s.uptime()
  22. hub.LiveInformationCh <- hub.Message{WsType: hub.System, Message: s.Live}
  23. time.Sleep(1 * time.Second)
  24. }
  25. }
  26. func (s *System) Initialize() {
  27. s.Static.CPU = staticCpu()
  28. s.Static.Ram = staticRam()
  29. s.Static.Disk = staticDisk()
  30. s.Live.CPU.Percentage = make([]float64, 120)
  31. go s.UpdateLiveInformation()
  32. logrus.WithFields(logrus.Fields{"cpu": s.Static.CPU.Name, "arch": s.Static.CPU.Architecture}).Debug("system updated")
  33. }