Added amqp to health check
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Pünkösd Marcell 2021-07-26 15:24:17 +02:00
parent e64137ca56
commit 57b757cb41
3 changed files with 22 additions and 1 deletions

View File

@ -11,7 +11,7 @@ from db import db
from marshm import ma
from influxus import influx_db
from resources import SampleResource, SampleParameterResource
from healthchecks import health_database_status
from healthchecks import health_database_status, ampq_connection_status
import atexit
@ -70,5 +70,7 @@ api.add_resource(SampleResource, "/sample")
api.add_resource(SampleParameterResource, '/sample/<tag>')
health.add_check(health_database_status)
health.add_check(ampq_connection_status)
app.add_url_rule("/healthz", "healthcheck", view_func=lambda: health.run())

View File

@ -1,6 +1,7 @@
#!/usr/bin/env python3
from db import db
from magic_ampq import magic_ampq
"""
Healthchek functions
@ -21,3 +22,14 @@ def health_database_status():
output = str(e)
is_database_working = False
return is_database_working, output
def ampq_connection_status():
if magic_ampq.is_healthy():
result = True
text = "ampq connection is ok"
else:
result = False
text = "ampq connection is unhealthy"
return result, text

View File

@ -90,6 +90,13 @@ class MagicAMPQ:
if tries > 10:
time.sleep(2)
def is_healthy(self) -> bool:
with self._lock:
if not self._pika_channel:
return False
return self._pika_channel.is_open and self._pika_connection.is_open
# instance to be used in the flask app
magic_ampq = MagicAMPQ()