Browse code

Don't read CPU usage if there is no subscribers for stats

Signed-off-by: Alexander Morozov <lk4d4@docker.com>

Alexander Morozov authored on 2015/09/09 03:57:22
Showing 1 changed files
... ...
@@ -89,12 +89,6 @@ func (s *statsCollector) run() {
89 89
 	var pairs []publishersPair
90 90
 
91 91
 	for range time.Tick(s.interval) {
92
-		systemUsage, err := s.getSystemCPUUsage()
93
-		if err != nil {
94
-			logrus.Errorf("collecting system cpu usage: %v", err)
95
-			continue
96
-		}
97
-
98 92
 		// it does not make sense in the first iteration,
99 93
 		// but saves allocations in further iterations
100 94
 		pairs = pairs[:0]
... ...
@@ -105,6 +99,15 @@ func (s *statsCollector) run() {
105 105
 			pairs = append(pairs, publishersPair{container, publisher})
106 106
 		}
107 107
 		s.m.Unlock()
108
+		if len(pairs) == 0 {
109
+			continue
110
+		}
111
+
112
+		systemUsage, err := s.getSystemCPUUsage()
113
+		if err != nil {
114
+			logrus.Errorf("collecting system cpu usage: %v", err)
115
+			continue
116
+		}
108 117
 
109 118
 		for _, pair := range pairs {
110 119
 			stats, err := pair.container.stats()