From 94b68ae662ebba1cd268b2e8974c6b98cdfeeec1 Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Thu, 5 Oct 2017 02:18:19 +0000 Subject: [PATCH] Fix container stats panic. Signed-off-by: Lantao Liu --- pkg/server/container_stats_list.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pkg/server/container_stats_list.go b/pkg/server/container_stats_list.go index 257ece2c4..e4fa86f7c 100644 --- a/pkg/server/container_stats_list.go +++ b/pkg/server/container_stats_list.go @@ -102,13 +102,17 @@ func (c *criContainerdService) getContainerMetrics( return nil, fmt.Errorf("failed to extract container metrics: %v", err) } metrics := s.(*cgroups.Metrics) - cs.Cpu = &runtime.CpuUsage{ - Timestamp: stats.Timestamp.UnixNano(), - UsageCoreNanoSeconds: &runtime.UInt64Value{metrics.CPU.Usage.Total}, + if metrics.CPU != nil && metrics.CPU.Usage != nil { + cs.Cpu = &runtime.CpuUsage{ + Timestamp: stats.Timestamp.UnixNano(), + UsageCoreNanoSeconds: &runtime.UInt64Value{metrics.CPU.Usage.Total}, + } } - cs.Memory = &runtime.MemoryUsage{ - Timestamp: stats.Timestamp.UnixNano(), - WorkingSetBytes: &runtime.UInt64Value{metrics.Memory.Usage.Usage}, + if metrics.Memory != nil && metrics.Memory.Usage != nil { + cs.Memory = &runtime.MemoryUsage{ + Timestamp: stats.Timestamp.UnixNano(), + WorkingSetBytes: &runtime.UInt64Value{metrics.Memory.Usage.Usage}, + } } }