@cryptotaxi247 / netdata-1 / commits / 6931479c3

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):