From b209d22e089be9524447dea66df9934291307f03 Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Thu, 25 Aug 2016 16:13:36 +0100 Subject: [PATCH] normalise container CPU metrics to 100% The container CPU metric was reported in units of 100% = 1 CPU. So the the ratio was correct, but since we don't show limits in most places it is hard to interpret that figure. It also makes sorting by CPU usage highly misleading. So now we normalise everything to 100%. That too can be misleading, depending on what you are looking for, but it's generally less surprising. --- probe/docker/container.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/probe/docker/container.go b/probe/docker/container.go index c6ed85391..5f020e1d6 100644 --- a/probe/docker/container.go +++ b/probe/docker/container.go @@ -378,7 +378,6 @@ func (c *container) cpuPercentMetric(stats []docker.Stats) report.Metric { } samples := make([]report.Sample, len(stats)-1) - var max float64 previous := stats[0] for i, s := range stats[1:] { // Copies from docker/api/client/stats.go#L205 @@ -386,17 +385,13 @@ func (c *container) cpuPercentMetric(stats []docker.Stats) report.Metric { systemDelta := float64(s.CPUStats.SystemCPUUsage - previous.CPUStats.SystemCPUUsage) cpuPercent := 0.0 if systemDelta > 0.0 && cpuDelta > 0.0 { - cpuPercent = (cpuDelta / systemDelta) * float64(len(s.CPUStats.CPUUsage.PercpuUsage)) * 100.0 + cpuPercent = (cpuDelta / systemDelta) * 100.0 } samples[i].Timestamp = s.Read samples[i].Value = cpuPercent - available := float64(len(s.CPUStats.CPUUsage.PercpuUsage)) * 100.0 - if available >= max { - max = available - } previous = s } - return report.MakeMetric(samples).WithMax(max) + return report.MakeMetric(samples).WithMax(100.0) } func (c *container) metrics() report.Metrics {