|
@@ -20,8 +20,8 @@ type ContainerStatsConfig struct {
|
|
|
|
|
|
// ContainerStats writes information about the container to the stream
|
|
|
// given in the config object.
|
|
|
-func (daemon *Daemon) ContainerStats(name string, config *ContainerStatsConfig) error {
|
|
|
- updates, err := daemon.subscribeToContainerStats(name)
|
|
|
+func (daemon *Daemon) ContainerStats(container *Container, config *ContainerStatsConfig) error {
|
|
|
+ updates, err := daemon.subscribeToContainerStats(container)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -34,7 +34,7 @@ func (daemon *Daemon) ContainerStats(name string, config *ContainerStatsConfig)
|
|
|
getStat := func(v interface{}) *types.Stats {
|
|
|
update := v.(*execdriver.ResourceStats)
|
|
|
// Retrieve the nw statistics from libnetwork and inject them in the Stats
|
|
|
- if nwStats, err := daemon.getNetworkStats(name); err == nil {
|
|
|
+ if nwStats, err := daemon.getNetworkStats(container); err == nil {
|
|
|
update.Stats.Interfaces = nwStats
|
|
|
}
|
|
|
ss := convertStatsToAPITypes(update.Stats)
|
|
@@ -48,7 +48,7 @@ func (daemon *Daemon) ContainerStats(name string, config *ContainerStatsConfig)
|
|
|
|
|
|
enc := json.NewEncoder(config.OutStream)
|
|
|
|
|
|
- defer daemon.unsubscribeToContainerStats(name, updates)
|
|
|
+ defer daemon.unsubscribeToContainerStats(container, updates)
|
|
|
|
|
|
noStreamFirstFrame := true
|
|
|
for {
|
|
@@ -78,14 +78,9 @@ func (daemon *Daemon) ContainerStats(name string, config *ContainerStatsConfig)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func (daemon *Daemon) getNetworkStats(name string) ([]*libcontainer.NetworkInterface, error) {
|
|
|
+func (daemon *Daemon) getNetworkStats(c *Container) ([]*libcontainer.NetworkInterface, error) {
|
|
|
var list []*libcontainer.NetworkInterface
|
|
|
|
|
|
- c, err := daemon.Get(name)
|
|
|
- if err != nil {
|
|
|
- return list, err
|
|
|
- }
|
|
|
-
|
|
|
sb, err := daemon.netController.SandboxByID(c.NetworkSettings.SandboxID)
|
|
|
if err != nil {
|
|
|
return list, err
|