X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=osm_mon%2Fcmd%2Fmon_healthcheck.py;h=7eae4c295a9054659dea16c84e4b122cbbdcb227;hb=refs%2Fchanges%2F03%2F10803%2F1;hp=cc6fd8f69e6aed79fb08c4d52395f85fc8467571;hpb=5ac7c081ca13495185ecf6bdf302c16c25a4b759;p=osm%2FMON.git diff --git a/osm_mon/cmd/mon_healthcheck.py b/osm_mon/cmd/mon_healthcheck.py index cc6fd8f..7eae4c2 100644 --- a/osm_mon/cmd/mon_healthcheck.py +++ b/osm_mon/cmd/mon_healthcheck.py @@ -20,29 +20,23 @@ # contact: bdiaz@whitestack.com or glavado@whitestack.com ## import argparse -import asyncio import logging import subprocess import sys import requests -from aiokafka import AIOKafkaConsumer - -from osm_mon.core.config import Config log = logging.getLogger(__name__) def main(): - parser = argparse.ArgumentParser(prog='osm-mon-healthcheck') - parser.add_argument('--config-file', nargs='?', help='MON configuration file') - args = parser.parse_args() - cfg = Config(args.config_file) + parser = argparse.ArgumentParser(prog="osm-mon-healthcheck") + parser.add_argument("--config-file", nargs="?", help="MON configuration file") + # args = parser.parse_args() + # cfg = Config(args.config_file) if not _processes_running(): sys.exit(1) - if not _is_kafka_ok(cfg.get('message', 'host'), cfg.get('message', 'port')): - sys.exit(1) if not _is_prometheus_exporter_ok(): sys.exit(1) sys.exit(0) @@ -55,18 +49,19 @@ def _processes_running(): return True return False - processes_to_check = ['osm-mon-collector', 'osm-mon-evaluator', 'osm-mon-server'] - ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE).communicate()[0] - processes_running = ps.decode().split('\n') + processes_to_check = ["osm-mon-collector", "osm-mon-evaluator", "osm-mon-server"] + ps = subprocess.Popen(["ps", "aux"], stdout=subprocess.PIPE).communicate()[0] + processes_running = ps.decode().split("\n") for p in processes_to_check: if not _contains_process(processes_running, p): + log.error("Process %s not running!" % p) return False return True def _is_prometheus_exporter_ok(): try: - r = requests.get('http://localhost:8000') + r = requests.get("http://localhost:8000") r.raise_for_status() return True except Exception: @@ -74,22 +69,5 @@ def _is_prometheus_exporter_ok(): return False -def _is_kafka_ok(host, port): - async def _test_kafka(loop): - consumer = AIOKafkaConsumer( - 'healthcheck', - loop=loop, bootstrap_servers='{}:{}'.format(host, port)) - await consumer.start() - await consumer.stop() - - try: - loop = asyncio.get_event_loop() - loop.run_until_complete(_test_kafka(loop)) - return True - except Exception: - log.exception("MON can not connect to Kafka") - return False - - -if __name__ == '__main__': +if __name__ == "__main__": main()