do not report to netdata not-collected values as zero
Costa Tsaousis (ktsaou) committed
Dec 30, 2016 at 01:37 UTC
7c081b0d74ac0e2e9c80f237f8e8a3bcd5457a44
1 file changed
+26
-7
python.d/mysql.chart.py
+26
-7
@@ -398,10 +398,26 @@ class Service(SimpleService):
398
return None
399
400
if slave_raw_data is not None:
401
- slave_data = {'slave_behind': 0, 'slave_sql': 0, 'slave_io': 0 }
402
- slave_data['slave_behind'] = int(slave_raw_data.setdefault('Seconds_Behind_Master', -1))
403
- slave_data['slave_sql'] = 1 if slave_raw_data.get('Slave_SQL_Running') == 'Yes' else -1
404
- slave_data['slave_io'] = 1 if slave_raw_data.get('Slave_IO_Running') == 'Yes' else -1
401
+ slave_data = {
402
+ 'slave_behind': None,
403
+ 'slave_sql': None,
404
+ 'slave_io': None
405
+ }
406
+
407
+ try:
408
+ slave_data['slave_behind'] = int(slave_raw_data.setdefault('Seconds_Behind_Master', -1))
409
+ except:
410
+ slave_data['slave_behind'] = None
411
+
412
+ try:
413
+ slave_data['slave_sql'] = 1 if slave_raw_data.get('Slave_SQL_Running') == 'Yes' else -1
414
+ except:
415
+ slave_data['slave_sql'] = None
416
+
417
+ try:
418
+ slave_data['slave_io'] = 1 if slave_raw_data.get('Slave_IO_Running') == 'Yes' else -1
419
+ except:
420
+ slave_data['slave_io'] = None
421
422
return slave_data
423
@@ -442,11 +458,14 @@ class Service(SimpleService):
458
data = dict(raw_data)
459
460
# check for slave data
461
+ # the first time is -1 (so we do it)
462
+ # then it is set to 1 or 0 and we keep it like that
463
if self.do_slave != 0:
464
slave_data = self._get_data_slave()
465
if slave_data is not None:
466
data.update(slave_data)
449
- self.do_slave = 1
467
+ if self.do_slave == -1:
468
+ self.do_slave = 1
469
else:
470
if self.do_slave == -1:
471
self.error("replication metrics will be disabled - please allow netdata to collect them.")
@@ -456,8 +475,8 @@ class Service(SimpleService):
475
try:
476
data["Thread_cache_misses"] = int(data["Threads_created"] * 10000 / float(data["Connections"]))
477
except:
459
- data["Thread_cache_misses"] = 0
460
-
478
+ data["Thread_cache_misses"] = None
479
+
480
return data
481
482
def check(self):