From 2522da0ac5f2d42b774251655b46907aca0bc99f Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Thu, 7 Mar 2019 00:56:40 -0800 Subject: [PATCH] Always collect disk stats for rootfs. Signed-off-by: Lantao Liu --- container/common/container_hints_test.go | 4 ++-- container/raw/handler.go | 23 +++++++++++------------ 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/container/common/container_hints_test.go b/container/common/container_hints_test.go index 3bf9c0e5..b3c60b56 100644 --- a/container/common/container_hints_test.go +++ b/container/common/container_hints_test.go @@ -27,7 +27,7 @@ func TestGetContainerHintsFromFile(t *testing.T) { if cHints.AllHosts[0].NetworkInterface.VethHost != "veth24031eth1" && cHints.AllHosts[0].NetworkInterface.VethChild != "eth1" { - t.Errorf("Cannot find network interface in %s", cHints) + t.Errorf("Cannot find network interface in %+v", cHints) } correctMountDirs := [...]string{ @@ -44,7 +44,7 @@ func TestGetContainerHintsFromFile(t *testing.T) { for i, mountDir := range cHints.AllHosts[0].Mounts { if correctMountDirs[i] != mountDir.HostDir { - t.Errorf("Cannot find mount %s in %s", mountDir.HostDir, cHints) + t.Errorf("Cannot find mount %s in %+v", mountDir.HostDir, cHints) } } } diff --git a/container/raw/handler.go b/container/raw/handler.go index c00e82d4..2912e894 100644 --- a/container/raw/handler.go +++ b/container/raw/handler.go @@ -188,16 +188,15 @@ func fsToFsStats(fs *fs.Fs) info.FsStats { func (self *rawContainerHandler) getFsStats(stats *info.ContainerStats) error { var filesystems []fs.Fs - - if self.includedMetrics.Has(container.DiskUsageMetrics) || self.includedMetrics.Has(container.DiskIOMetrics) { - var err error - // Get Filesystem information only for the root cgroup. - if isRootCgroup(self.name) { - filesystems, err = self.fsInfo.GetGlobalFsInfo() - if err != nil { - return err - } - } else if len(self.externalMounts) > 0 { + var err error + // Get Filesystem information only for the root cgroup. + if isRootCgroup(self.name) { + filesystems, err = self.fsInfo.GetGlobalFsInfo() + if err != nil { + return err + } + } else if self.includedMetrics.Has(container.DiskUsageMetrics) || self.includedMetrics.Has(container.DiskIOMetrics) { + if len(self.externalMounts) > 0 { var mountSet map[string]struct{} mountSet = make(map[string]struct{}) for _, mount := range self.externalMounts { @@ -210,14 +209,14 @@ func (self *rawContainerHandler) getFsStats(stats *info.ContainerStats) error { } } - if self.includedMetrics.Has(container.DiskUsageMetrics) { + if isRootCgroup(self.name) || self.includedMetrics.Has(container.DiskUsageMetrics) { for i := range filesystems { fs := filesystems[i] stats.Filesystem = append(stats.Filesystem, fsToFsStats(&fs)) } } - if self.includedMetrics.Has(container.DiskIOMetrics) { + if isRootCgroup(self.name) || self.includedMetrics.Has(container.DiskIOMetrics) { common.AssignDeviceNamesToDiskStats(&fsNamer{fs: filesystems, factory: self.machineInfoFactory}, &stats.DiskIo) }