@cryptotaxi247 / netdata-1 / commits / 2de643563

total active in all pools chart added

lgz committed Dec 24, 2016 at 18:27 UTC 2de64356352eacf728feb9907fa3932aff62b978
1 file changed +14 -9
python.d/isc_dhcpd.chart.py
+14 -9
@@ -30,7 +30,6 @@ class Service(SimpleService):
30 # Will work only with 'default' db-time-format (weekday year/month/day hour:minute:second)
31 # TODO: update algorithm to parse correctly 'local' db-time-format
32 # (epoch <seconds-since-epoch>; # <day-name> <month-name> <day-number> <hours>:<minutes>:<seconds> <year>)
33 - # TODO: use threading to iter through file
33 # Also only ipv4 supported
34
35 def check(self):
@@ -50,25 +49,30 @@ class Service(SimpleService):
49 self.error('Pools configurations is incorrect')
50 return False
51
53 - # Creating dynamic charts
54 - self.order = ['parse_time', 'leases_size', 'utilization']
52 + # Creating static charts
53 + self.order = ['parse_time', 'leases_size', 'utilization', 'total']
54 self.definitions = {'utilization':
55 {'options':
57 - [None, 'Pools utilization', 'used %', 'Utulization', 'isc_dhcpd.util', 'line'],
56 + [None, 'Pools utilization', 'used %', 'Utilization', 'isc_dhcpd.util', 'line'],
57 'lines': []},
58 + 'total':
59 + {'options':
60 + [None, 'Total all pools', 'leases', 'Utilization', 'isc_dhcpd.total', 'line'],
61 + 'lines': [['total', 'leases', 'absolute']]},
62 'parse_time':
63 {'options':
61 - [None, 'Parse time', 'ms', 'Parse statistics', 'isc_dhcpd.parse', 'line'],
64 + [None, 'Parse time', 'ms', 'Parse stats', 'isc_dhcpd.parse', 'line'],
65 'lines': [['ptime', 'time', 'absolute']]},
66 'leases_size':
67 {'options':
65 - [None, 'dhcpd.leases file size', 'kilobytes', 'Parse statistics', 'isc_dhcpd.lsize', 'line'],
68 + [None, 'dhcpd.leases file size', 'kilobytes', 'Parse stats', 'isc_dhcpd.lsize', 'line'],
69 'lines': [['lsize', 'size', 'absolute']]}}
70 + # Creating dynamic charts
71 for pool in self.pools:
72 self.definitions['utilization']['lines'].append([''.join(['ut_', pool]), pool, 'absolute'])
73 self.order.append(''.join(['leases_', pool]))
74 self.definitions[''.join(['leases_', pool])] = \
71 - {'options': [None, 'Active leases', 'leases', 'Leases', 'isc_dhcpd.lease', 'area'],
75 + {'options': [None, 'Active leases', 'leases', 'Pools', 'isc_dhcpd.lease', 'area'],
76 'lines': [[''.join(['le_', pool]), pool, 'absolute']]}
77
78 self.info('Plugin was started succesfully')
@@ -130,11 +134,12 @@ class Service(SimpleService):
134 final_count = {''.join(['le_', k]): v for k, v in pools_count.items()}
135 final_util = {''.join(['ut_', k]): v for k, v in pools_util.items()}
136
133 - to_netdata = {'lsize': int(stat(self.leases_path)[6] / 1024)}
137 + to_netdata = {'total': len(active_leases)}
138 + to_netdata.update({'lsize': int(stat(self.leases_path)[6] / 1024)})
139 to_netdata.update({'ptime': int(raw_leases[1])})
140 to_netdata.update(final_util)
141 to_netdata.update(final_count)
137 -
142 +
143 return to_netdata
144
145