diff --git a/tests/test_monitoring.py b/tests/test_monitoring.py new file mode 100755 index 0000000000000000000000000000000000000000..637a5e1c90954802185af332adf93724311eec9c --- /dev/null +++ b/tests/test_monitoring.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +''' +Criticality: Low +Check that the monitoring graphs work. +''' +import os +from datetime import datetime +import sys +import imp + +YELLOW = '\033[93m' +GREEN = '\033[92m' +RED = '\033[91m' +DEF = '\033[0m' + +os.chdir(os.path.dirname(__file__)) +if not os.path.isfile('../utils.py'): + print('The envsetup configuration was not found.') + sys.exit(1) +else: + es_utils = imp.load_source('es_utils', '../utils.py') + conf = es_utils.load_conf() + + +def print_color(txt, col): + print('%s%s%s' % (col, txt, DEF)) + + +def print_yellow(txt): + print_color(txt, YELLOW) + + +def print_red(txt): + print_color(txt, RED) + + +def print_green(txt): + print_color(txt, GREEN) + +MUNIN_CHECK_PATH = "/var/cache/munin/www/localdomain/localhost.localdomain/cpu-day.png" + +def check_munin(): + print('Checking if monitoring works') + mtime = os.path.getmtime(MUNIN_CHECK_PATH) + d = datetime.fromtimestamp(mtime) + now = datetime.now() + diff_seconds = (now - d).total_seconds + if diff_seconds > 3600: + print_red('Monitoring data is older than 1 hour and is probably not working.') + return 1 + else: + print_green('Monitoring data is not older than 1 hour, everything seems fine.') + return 0 + +if not os.path.exists(MUNIN_CHECK_PATH): + print_red('Munin data %s not found.' % MUNIN_CHECK_PATH) + sys.exit(1) + +rc = check_munin() +sys.exit(rc)