From 4dd0c4ed2274a01f41e8f44b87cec2d201189ae8 Mon Sep 17 00:00:00 2001 From: Ana Custura Date: Wed, 4 Dec 2024 13:02:01 +0000 Subject: [PATCH] feat: add prometheus flask metrics --- app/__init__.py | 5 ++++- requirements.txt | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/__init__.py b/app/__init__.py index ce725e1..6cf1cf0 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -20,18 +20,20 @@ from app.models.automation import Automation, AutomationState from app.portal import portal from app.portal.report import report from app.tfstate import tfstate +from prometheus_flask_exporter import PrometheusMetrics app = Flask(__name__) app.config.from_file("../config.yaml", load=yaml.safe_load) # create new registry to avoid multiple metrics registration in global REGISTRY registry = CollectorRegistry() +metrics = PrometheusMetrics(app, registry=registry) app.wsgi_app = DispatcherMiddleware(app.wsgi_app, { # type: ignore[method-assign] '/metrics': make_wsgi_app(registry) }) -#register default collectors to our new registry +# register default collectors to our new registry collectors = list(REGISTRY._collector_to_names.keys()) for collector in collectors: registry.register(collector) @@ -137,6 +139,7 @@ class AutomationCollector(Collector): ok.add_metric(["automation_state"], 0) yield ok + # register all custom collectors to registry if not_migrating() and 'DISABLE_METRICS' not in os.environ: registry.register(DefinedProxiesCollector()) diff --git a/requirements.txt b/requirements.txt index 473ae09..641e4e8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,6 +17,7 @@ markupsafe nose openpyxl prometheus_client +prometheus_flask_exporter pytest python-dateutil python-gitlab