do not log multiple filesystems if root container

This commit is contained in:
David Ashpole 2017-01-09 10:55:41 -08:00
parent 5e78498404
commit 696b82ae97
4 changed files with 6 additions and 6 deletions

View File

@ -509,7 +509,7 @@ func (self *version2_1) HandleRequest(requestType string, request []string, m ma
} }
contStats[name] = v2.ContainerInfo{ contStats[name] = v2.ContainerInfo{
Spec: v2.ContainerSpecFromV1(&cont.Spec, cont.Aliases, cont.Namespace), 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) return writeResult(contStats, w)

View File

@ -96,7 +96,7 @@ func MachineStatsFromV1(cont *v1.ContainerInfo) []MachineStats {
return stats 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)) newStats := make([]*ContainerStats, 0, len(stats))
var last *v1.ContainerStats var last *v1.ContainerStats
for _, val := range stats { for _, val := range stats {
@ -131,9 +131,9 @@ func ContainerStatsFromV1(spec *v1.ContainerSpec, stats []*v1.ContainerStats) []
BaseUsageBytes: &val.Filesystem[0].BaseUsage, BaseUsageBytes: &val.Filesystem[0].BaseUsage,
InodeUsage: &val.Filesystem[0].Inodes, InodeUsage: &val.Filesystem[0].Inodes,
} }
} else if len(val.Filesystem) > 1 { } else if len(val.Filesystem) > 1 && containerName != "/" {
// Cannot handle multiple devices per container. // 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 { if spec.HasDiskIo {

View File

@ -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] actualV2Stats := *v2Stats[0]
if !reflect.DeepEqual(expectedV2Stats, actualV2Stats) { if !reflect.DeepEqual(expectedV2Stats, actualV2Stats) {

View File

@ -464,7 +464,7 @@ func (self *manager) GetContainerInfoV2(containerName string, options v2.Request
continue continue
} }
result.Stats = v2.ContainerStatsFromV1(&cinfo.Spec, stats) result.Stats = v2.ContainerStatsFromV1(containerName, &cinfo.Spec, stats)
infos[name] = result infos[name] = result
} }