Modify according PR comments
Always find new peers when peers dict() is empty. Do not check `peer_rescan` config, assume that the user reads the description. Module will push charts to netdata (create) only if charts have any data after update.
Sven Mäder committed
Feb 20, 2018 at 13:33 UTC
4c5587b8d56c90077826ec8e10d6576d2cc65446
2 files changed
+11
-20
conf.d/python.d/ntpd.conf
+2
-1
@@ -62,7 +62,8 @@
62
# peer_filter: '127\..*' # regex to exclude peers
63
# # by default local peers are hidden
64
# # use `''` to show all peers.
65
-# peer_rescan: 60 # interval to check for new/changed peers
65
+# peer_rescan: 60 # interval (>0) to check for new/changed peers
66
+# # use `1` to check on every update
67
#
68
# ----------------------------------------------------------------------
69
# AUTO-DETECTION JOBS
python.d/ntpd.chart.py
+9
-19
@@ -12,7 +12,6 @@ from bases.FrameworkServices.SocketService import SocketService
12
update_every = 1
13
priority = 60000
14
retries = 60
15
-peer_rescan = 60
15
16
# NTP Control Message Protocol constants
17
MODE = 6
@@ -226,6 +225,7 @@ class Service(SocketService):
225
SocketService.__init__(self, configuration=configuration, name=name)
226
self.order = list(ORDER)
227
self.definitions = dict(CHARTS)
228
+ self.definitions.update(PEER_CHARTS)
229
230
self.port = 'ntp'
231
self.dgram_socket = True
@@ -234,6 +234,7 @@ class Service(SocketService):
234
self.request = str()
235
self.retries = 0
236
self.show_peers = self.configuration.get('show_peers', False)
237
+ self.peer_rescan = self.configuration.get('peer_rescan', 60)
238
239
def check(self):
240
"""
@@ -242,23 +243,12 @@ class Service(SocketService):
243
"""
244
self._parse_config()
245
245
- if self.show_peers:
246
- self.definitions.update(PEER_CHARTS)
247
-
248
- peer_filter = self.configuration.get('peer_filter', r'127\..*')
249
- try:
250
- self.peer_filter = re.compile(r'^((0\.0\.0\.0)|({0}))$'.format(peer_filter))
251
- except re.error as error:
252
- self.error('Compile pattern error (peer_filter) : {0}'.format(error))
253
- return None
254
-
255
- try:
256
- self.peer_rescan = int(self.configuration.get('peer_rescan', peer_rescan))
257
- if self.peer_rescan <= 0:
258
- raise ValueError('int > 0 expected: {0}'.format(self.peer_rescan))
259
- except ValueError as error:
260
- self.error('Value error (peer_rescan) : {0}'.format(error))
261
- return None
246
+ peer_filter = self.configuration.get('peer_filter', r'127\..*')
247
+ try:
248
+ self.peer_filter = re.compile(r'^((0\.0\.0\.0)|({0}))$'.format(peer_filter))
249
+ except re.error as error:
250
+ self.error('Compile pattern error (peer_filter) : {0}'.format(error))
251
+ return None
252
253
self.request = self.system.request
254
raw_systemvars = self._get_raw_data()
@@ -285,7 +275,7 @@ class Service(SocketService):
275
if not self.show_peers:
276
return data
277
288
- if self.runs_counter == 1 or self.runs_counter % self.peer_rescan or self.retries > 8:
278
+ if not self.peers or self.runs_counter % self.peer_rescan == 0 or self.retries > 8:
279
self.find_new_peers()
280
281
for peer in self.peers.values():