import requests from flask import Flask, jsonify from waitress import serve from pyinfra.config import CONFIG def run_probing_webserver(app, host=None, port=None, mode=None): if not host: host = CONFIG.probing_webserver.host if not port: port = CONFIG.probing_webserver.port if not mode: mode = CONFIG.probing_webserver.mode if mode == "development": app.run(host=host, port=port, debug=True) elif mode == "production": serve(app, host=host, port=port) def set_up_probing_webserver(): app = Flask(__name__) @app.route("/ready", methods=["GET"]) def ready(): resp = jsonify("OK") resp.status_code = 200 return resp @app.route("/health", methods=["GET"]) def healthy(): resp = jsonify("OK") resp.status_code = 200 return resp @app.route("/prometheus", methods=["GET"]) def get_analysis_prometheus(): prom_endpoint = f"{CONFIG.rabbitmq.callback.analysis_endpoint}/prometheus" metric = requests.get(prom_endpoint) return metric.text return app