mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
daemon/stats: remove obnoxious types file
While a `types.go` file is handly when there are a lot of record types, it is completely obnoxious when used for concrete, utility types with a struct, new function and method set in the same file. This change removes the `types.go` file in favor of the simpler approach. Signed-off-by: Stephen J Day <stephen.day@docker.com>
This commit is contained in:
parent
3e1505e3e6
commit
244e59e94f
2 changed files with 33 additions and 42 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
}
|
Loading…
Add table
Reference in a new issue