412410bf221cc6f89dc7cbb66d2f0686c38ee131
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
30 from osm_mon
.core
.message_bus
.consumer
import Consumer
32 log
= logging
.getLogger(__name__
)
37 if not _processes_running():
39 if not _is_kafka_ok():
41 if not _is_prometheus_exporter_ok():
46 def _processes_running():
47 def _contains_process(processes
, process_name
):
49 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
.split('\n')
55 for p
in processes_to_check
:
56 if not _contains_process(processes_running
, p
):
61 def _is_prometheus_exporter_ok():
63 r
= requests
.get('http://localhost:8000')
67 log
.exception("MON Prometheus exporter is not running")
73 common_consumer
= Consumer("mon-healthcheck-" + str(uuid
.uuid4()))
74 topics
= ['alarm_request', 'vim_account']
75 common_consumer
.subscribe(topics
)
76 common_consumer
.poll()
77 common_consumer
.close(autocommit
=False)
80 log
.exception("MON can not connect to Kafka")
84 if __name__
== '__main__':