diff --git a/daemon/stats/collector.go b/daemon/stats/collector.go index 39c76128b0..787cff53a1 100644 --- a/daemon/stats/collector.go +++ b/daemon/stats/collector.go @@ -1,6 +1,8 @@ package stats // import "github.com/docker/docker/daemon/stats" import ( + "bufio" + "sync" "time" "github.com/docker/docker/api/types" @@ -9,6 +11,37 @@ import ( "github.com/sirupsen/logrus" ) +// Collector manages and provides container resource stats +type Collector struct { + m sync.Mutex + supervisor supervisor + interval time.Duration + publishers map[*container.Container]*pubsub.Publisher + bufReader *bufio.Reader + + // The following fields are not set on Windows currently. + clockTicksPerSecond uint64 +} + +// NewCollector creates a stats collector that will poll the supervisor with the specified interval +func NewCollector(supervisor supervisor, interval time.Duration) *Collector { + s := &Collector{ + interval: interval, + supervisor: supervisor, + publishers: make(map[*container.Container]*pubsub.Publisher), + bufReader: bufio.NewReaderSize(nil, 128), + } + + platformNewStatsCollector(s) + + return s +} + +type supervisor interface { + // GetContainerStats collects all the stats related to a container + GetContainerStats(container *container.Container) (*types.StatsJSON, error) +} + // Collect registers the container with the collector and adds it to // the event loop for collection on the specified interval returning // a channel for the subscriber to receive on. diff --git a/daemon/stats/types.go b/daemon/stats/types.go deleted file mode 100644 index cdd47d60a6..0000000000 --- a/daemon/stats/types.go +++ /dev/null @@ -1,42 +0,0 @@ -package stats // import "github.com/docker/docker/daemon/stats" - -import ( - "bufio" - "sync" - "time" - - "github.com/docker/docker/api/types" - "github.com/docker/docker/container" - "github.com/docker/docker/pkg/pubsub" -) - -type supervisor interface { - // GetContainerStats collects all the stats related to a container - GetContainerStats(container *container.Container) (*types.StatsJSON, error) -} - -// NewCollector creates a stats collector that will poll the supervisor with the specified interval -func NewCollector(supervisor supervisor, interval time.Duration) *Collector { - s := &Collector{ - interval: interval, - supervisor: supervisor, - publishers: make(map[*container.Container]*pubsub.Publisher), - bufReader: bufio.NewReaderSize(nil, 128), - } - - platformNewStatsCollector(s) - - return s -} - -// Collector manages and provides container resource stats -type Collector struct { - m sync.Mutex - supervisor supervisor - interval time.Duration - publishers map[*container.Container]*pubsub.Publisher - bufReader *bufio.Reader - - // The following fields are not set on Windows currently. - clockTicksPerSecond uint64 -}