1 # Copyright 2018 Whitestack, LLC
2 # *************************************************************
4 # This file is part of OSM Monitoring module
5 # All Rights Reserved to Whitestack, LLC
7 # Licensed under the Apache License, Version 2.0 (the "License"); you may
8 # not use this file except in compliance with the License. You may obtain
9 # a copy of the License at
11 # http://www.apache.org/licenses/LICENSE-2.0
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
15 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
16 # License for the specific language governing permissions and limitations
19 # For those usages not covered by the Apache License, Version 2.0 please
20 # contact: bdiaz@whitestack.com or glavado@whitestack.com
29 log
= logging
.getLogger(__name__
)
33 parser
= argparse
.ArgumentParser(prog
="osm-mon-healthcheck")
34 parser
.add_argument("--config-file", nargs
="?", help="MON configuration file")
35 # args = parser.parse_args()
36 # cfg = Config(args.config_file)
38 if not _processes_running():
40 if not _is_prometheus_exporter_ok():
45 def _processes_running():
46 def _contains_process(processes
, process_name
):
48 if process_name
in row
:
52 processes_to_check
= ["osm-mon-collector", "osm-mon-evaluator", "osm-mon-server"]
53 ps
= subprocess
.Popen(["ps", "aux"], stdout
=subprocess
.PIPE
).communicate()[0]
54 processes_running
= ps
.decode().split("\n")
55 for p
in processes_to_check
:
56 if not _contains_process(processes_running
, p
):
57 log
.error("Process %s not running!" % p
)
62 def _is_prometheus_exporter_ok():
64 r
= requests
.get("http://localhost:8000")
68 log
.exception("MON Prometheus exporter is not running")
72 if __name__
== "__main__":