diff --git a/api/versions.go b/api/versions.go index ec920552..be6ca3de 100644 --- a/api/versions.go +++ b/api/versions.go @@ -509,7 +509,7 @@ func (self *version2_1) HandleRequest(requestType string, request []string, m ma } contStats[name] = v2.ContainerInfo{ Spec: v2.ContainerSpecFromV1(&cont.Spec, cont.Aliases, cont.Namespace), - Stats: v2.ContainerStatsFromV1(&cont.Spec, cont.Stats), + Stats: v2.ContainerStatsFromV1(name, &cont.Spec, cont.Stats), } } return writeResult(contStats, w) diff --git a/info/v2/conversion.go b/info/v2/conversion.go index dc24c9fe..c099b904 100644 --- a/info/v2/conversion.go +++ b/info/v2/conversion.go @@ -96,7 +96,7 @@ func MachineStatsFromV1(cont *v1.ContainerInfo) []MachineStats { return stats } -func ContainerStatsFromV1(spec *v1.ContainerSpec, stats []*v1.ContainerStats) []*ContainerStats { +func ContainerStatsFromV1(containerName string, spec *v1.ContainerSpec, stats []*v1.ContainerStats) []*ContainerStats { newStats := make([]*ContainerStats, 0, len(stats)) var last *v1.ContainerStats for _, val := range stats { @@ -131,9 +131,9 @@ func ContainerStatsFromV1(spec *v1.ContainerSpec, stats []*v1.ContainerStats) [] BaseUsageBytes: &val.Filesystem[0].BaseUsage, InodeUsage: &val.Filesystem[0].Inodes, } - } else if len(val.Filesystem) > 1 { + } else if len(val.Filesystem) > 1 && containerName != "/" { // Cannot handle multiple devices per container. - glog.V(2).Infof("failed to handle multiple devices for container. Skipping Filesystem stats") + glog.V(2).Infof("failed to handle multiple devices for container %s. Skipping Filesystem stats", containerName) } } if spec.HasDiskIo { diff --git a/info/v2/conversion_test.go b/info/v2/conversion_test.go index 2e9db313..be9cc92c 100644 --- a/info/v2/conversion_test.go +++ b/info/v2/conversion_test.go @@ -189,7 +189,7 @@ func TestContainerStatsFromV1(t *testing.T) { }, } - v2Stats := ContainerStatsFromV1(&v1Spec, []*v1.ContainerStats{&v1Stats}) + v2Stats := ContainerStatsFromV1("test", &v1Spec, []*v1.ContainerStats{&v1Stats}) actualV2Stats := *v2Stats[0] if !reflect.DeepEqual(expectedV2Stats, actualV2Stats) { diff --git a/manager/manager.go b/manager/manager.go index 32623ef6..4de5e650 100644 --- a/manager/manager.go +++ b/manager/manager.go @@ -464,7 +464,7 @@ func (self *manager) GetContainerInfoV2(containerName string, options v2.Request continue } - result.Stats = v2.ContainerStatsFromV1(&cinfo.Spec, stats) + result.Stats = v2.ContainerStatsFromV1(containerName, &cinfo.Spec, stats) infos[name] = result }