diff --git a/check_opnsense_traffic_for_host.py b/check_opnsense_traffic_for_host.py index 5a78ffa..f8f8d10 100755 --- a/check_opnsense_traffic_for_host.py +++ b/check_opnsense_traffic_for_host.py @@ -71,28 +71,29 @@ def main(): print(traffic_data) sys.exit(nagios.UNKNOWN) elif not len(traffic_data): - traffic_data = { - 'rate_bits_in': 0, - 'rate_bits_out': 0, - 'cumulative_bytes_in': 0, - 'cumulative_bytes_out': 0, + check_result[name] = { + 'rate_in': 0, + 'rate_out': 0, + 'cumulative_in': 0, + 'cumulative_out': 0, 'details': 0 } - - try: - check_result[name] = { - 'rate_in': np.average([x['rate_bits_in'] for x in traffic_data]), - 'rate_out': np.average([x['rate_bits_out'] for x in traffic_data]), - 'cumulative_in': np.average([x['cumulative_bytes_in'] for x in traffic_data]), - 'cumulative_out': np.average([x['cumulative_bytes_out'] for x in traffic_data]), - 'connections': int(np.average([len(x['details']) for x in traffic_data])) - } - except Exception as e: - print(f'UNKNOWN: Failed to parse traffic data: "{e}"') - print(traceback.format_exc()) - print('\nRaw data:') - print(traffic_data) - sys.exit(nagios.UNKNOWN) + else: + try: + check_result[name] = { + 'rate_in': np.average([x['rate_bits_in'] for x in traffic_data]), + 'rate_out': np.average([x['rate_bits_out'] for x in traffic_data]), + 'cumulative_in': np.average([x['cumulative_bytes_in'] for x in traffic_data]), + 'cumulative_out': np.average([x['cumulative_bytes_out'] for x in traffic_data]), + 'connections': int(np.average([len(x['details']) for x in traffic_data])) + } + except Exception as e: + print(f'UNKNOWN: Failed to parse traffic data: "{e}"') + print(traceback.format_exc()) + print('') + print('Raw data:') + print(traffic_data) + sys.exit(nagios.UNKNOWN) # TODO: figure out status print('OK: no metrics defined.')