@cryptotaxi247 / netdata-1 / commits / 4db937399

non-blocking `SocketService`

paulfantom committed Jul 19, 2016 at 02:30 UTC 4db937399e926a888c08c2fae970851452403161
4 files changed +12 -4
plugins.d/python.d.plugin
+3 -2
@@ -341,7 +341,7 @@ class PythonCharts(object):
341 if job.override_name is not None:
342 new_name = job.__module__ + '_' + job.override_name
343 if new_name in overridden:
344 - msg.error(job.chart_name + " already exists. Stopping '" + job.name + "'")
344 + msg.error(job.override_name + " already exists. Stopping '" + job.name + "'")
345 self._stop(job)
346 i -= 1
347 else:
@@ -351,9 +351,10 @@ class PythonCharts(object):
351 overridden.append(job.chart_name)
352 except Exception:
353 pass
354 - except AttributeError:
354 + except AttributeError as e:
355 self._stop(job)
356 msg.error(job.chart_name, "cannot find check() function.")
357 + msg.debug(str(e))
358 except (UnboundLocalError, Exception) as e:
359 msg.error(job.chart_name, str(e))
360 self._stop(job)
python.d/python_modules/base.py
+3 -1
@@ -574,11 +574,13 @@ class SocketService(SimpleService):
574 buf = self._sock.recv(4096)
575 if len(buf) == 0 or buf is None:
576 break
577 +
578 data += buf.decode()
579 if self._check_raw_data(data):
580 break
581 else:
581 - # self._disconnect()
582 + self.error("Socket timed out.")
583 + self._disconnect()
584 break
585
586 return data
python.d/redis.chart.py
+1
@@ -67,6 +67,7 @@ class Service(SocketService):
67 self.order = ORDER
68 self.definitions = CHARTS
69 self._keep_alive = True
70 + self.chart_name = ""
71
72 def _get_data(self):
73 """
python.d/squid.chart.py
+5 -1
@@ -88,7 +88,11 @@ class Service(SocketService):
88 else:
89 self._keep_alive = False
90
91 - if "client" in data and "server.all" in data:
91 + # if "client" in data and "server.all" in data:
92 + # return True
93 + # else:
94 + # return False
95 + if data[-7:] == "\r\n0\r\n\r\n":
96 return True
97 else:
98 return False