diff --git a/roles/nagios_server/files/nagios/plugins/check_haproxy_conns.py b/roles/nagios_server/files/nagios/plugins/check_haproxy_conns.py index 7762ffabb9..ae9c395957 100755 --- a/roles/nagios_server/files/nagios/plugins/check_haproxy_conns.py +++ b/roles/nagios_server/files/nagios/plugins/check_haproxy_conns.py @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/python3 """ Nagios check for haproxy over-subscription. fedmsg-gateway is the primary concern as it can eat up a ton of simultaneous @@ -22,28 +22,28 @@ def _numeric(value): return value -def query(sockname="/var/run/haproxy-stat"): +def query(sockname): """ Read stats from the haproxy socket and return a dict """ - s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - s.connect("/var/run/haproxy-stat") - s.send('show info\n') + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + sock.connect(sockname) + send_string = 'show info\n' + sock.send(send_string.encode()) try: - response = s.recv(2048).strip() + response = sock.recv(2048).strip().decode() lines = response.split('\n') - data = dict([map(str.strip, line.split(':')) for line in lines]) - data = dict([(k, _numeric(v)) for k, v in data.items()]) + data = dict(line.split(':') for line in lines) + data = {k:_numeric(v) for (k, v) in data.items()} return data - except Exception, e: - print str(e) + except Exception as err: + print(str(err)) finally: - s.close() + sock.close() return None def nagios_check(data): """ Print warnings and return nagios exit codes. """ - current = data['CurrConns'] maxconn = data['Maxconn'] percent = 100 * float(current) / float(maxconn) @@ -52,25 +52,25 @@ def nagios_check(data): ) if percent < 50: - print "HAPROXY SUBS OK: " + details + print("HAPROXY SUBS OK: " + details) return 0 if percent < 75: - print "HAPROXY SUBS WARN: " + details + print("HAPROXY SUBS WARN: " + details) return 1 if percent <= 100: - print "HAPROXY SUBS CRIT: " + details + print("HAPROXY SUBS CRIT: " + details) return 2 - print "HAPROXY SUBS UNKNOWN: " + details + print("HAPROXY SUBS UNKNOWN: " + details) return 3 if __name__ == '__main__': try: data = query(sockname="/var/run/haproxy-stat") - except Exception as e: - print "HAPROXY SUBS UNKNOWN: " + str(e) + except Exception as err: + print("HAPROXY SUBS UNKNOWN: " + str(err)) sys.exit(3) sys.exit(nagios_check(data))