beanstalk module: remove defaultdict, remove chart creating on check()
lgz committed
Nov 5, 2017 at 15:28 UTC
6931479c3863aa0825821ebaf51ff969f09ff4fe
1 file changed
+11
-23
python.d/beanstalk.chart.py
+11
-23
@@ -2,8 +2,6 @@
2
# Description: beanstalk netdata python.d module
3
# Author: l2isbad
4
5
-from collections import defaultdict
6
-
5
try:
6
import beanstalkc
7
BEANSTALKC = True
@@ -168,9 +166,9 @@ class Service(SimpleService):
166
def __init__(self, configuration=None, name=None):
167
SimpleService.__init__(self, configuration=configuration, name=name)
168
self.configuration = configuration
171
- self.conn = None
172
- self.order = ORDER[:]
169
+ self.order = list(ORDER)
170
self.definitions = dict(CHARTS)
171
+ self.conn = None
172
self.alive = True
173
174
def check(self):
@@ -184,15 +182,7 @@ class Service(SimpleService):
182
183
self.conn = self.connect()
184
187
- if not self.conn:
188
- return False
189
-
190
- for tube in self.conn.tubes():
191
- order, charts = tube_chart_template(tube)
192
- self.order.extend(order)
193
- self.definitions.update(charts)
194
-
195
- return bool(self.order)
185
+ return True if self.conn else False
186
187
def get_data(self):
188
"""
@@ -202,27 +192,25 @@ class Service(SimpleService):
192
if not self.is_alive():
193
return None
194
205
- tubes_stats, data = defaultdict(dict), dict()
195
+ active_charts = self.charts.active_charts()
196
+ data = dict()
197
+
198
try:
199
data.update(self.conn.stats())
200
201
for tube in self.conn.tubes():
202
stats = self.conn.stats_tube(tube)
203
+
204
+ if tube + '_jobs_rate' not in active_charts:
205
+ self.create_new_tube_charts(tube)
206
+
207
for stat in stats:
212
- dimension, value = '_'.join([tube, stat]), stats[stat]
213
- tubes_stats[tube][dimension] = value
208
+ data['_'.join([tube, stat])] = stats[stat]
209
210
except beanstalkc.SocketError:
211
self.alive = False
212
return None
213
219
- active_charts = self.charts.active_charts()
220
- for tube in tubes_stats:
221
- if tube + '_jobs_rate' not in active_charts:
222
- self.create_new_tube_charts(tube)
223
-
224
- data.update(tubes_stats[tube])
225
-
214
return data or None
215
216
def create_new_tube_charts(self, tube):