stats_collector.go 775 B

1234567891011121314151617181920212223242526
  1. package daemon // import "github.com/docker/docker/daemon"
  2. import (
  3. "runtime"
  4. "time"
  5. "github.com/docker/docker/daemon/stats"
  6. "github.com/docker/docker/pkg/meminfo"
  7. )
  8. // newStatsCollector returns a new statsCollector that collections
  9. // stats for a registered container at the specified interval.
  10. // The collector allows non-running containers to be added
  11. // and will start processing stats when they are started.
  12. func (daemon *Daemon) newStatsCollector(interval time.Duration) *stats.Collector {
  13. // FIXME(vdemeester) move this elsewhere
  14. if runtime.GOOS == "linux" {
  15. meminfo, err := meminfo.Read()
  16. if err == nil && meminfo.MemTotal > 0 {
  17. daemon.machineMemory = uint64(meminfo.MemTotal)
  18. }
  19. }
  20. s := stats.NewCollector(daemon, interval)
  21. go s.Run()
  22. return s
  23. }