From 91980ff3ed84cb938f481507989d1878d1c4a476 Mon Sep 17 00:00:00 2001 From: Julius Unverfehrt Date: Fri, 11 Mar 2022 10:09:39 +0100 Subject: [PATCH] add retry for prometheus endpoint metric getter --- pyinfra/flask.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pyinfra/flask.py b/pyinfra/flask.py index d1d77c1..0fc294c 100644 --- a/pyinfra/flask.py +++ b/pyinfra/flask.py @@ -1,5 +1,6 @@ import requests from flask import Flask, jsonify +from retry import retry from waitress import serve from pyinfra.config import CONFIG @@ -39,8 +40,12 @@ def set_up_probing_webserver(): @app.route("/prometheus", methods=["GET"]) def get_analysis_prometheus_endpoint(): - prom_endpoint = f"{CONFIG.rabbitmq.callback.analysis_endpoint}/prometheus" - metric = requests.get(prom_endpoint) - return metric.text + @retry(requests.exceptions.ConnectionError, tries=3, delay=5, jitter=(1, 3)) + def inner(): + prom_endpoint = f"{CONFIG.rabbitmq.callback.analysis_endpoint}/prometheus" + metric = requests.get(prom_endpoint) + metric.raise_for_status() + return metric.text + return inner() return app