From ea385d73820e1fa9ecbd56cda94218f7660c6284 Mon Sep 17 00:00:00 2001 From: Francia Csaba Date: Thu, 7 Dec 2023 15:59:26 +0100 Subject: [PATCH] Setup function --- amarillo/plugins/metrics/metrics.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/amarillo/plugins/metrics/metrics.py b/amarillo/plugins/metrics/metrics.py index e2ad5b2..0c0042e 100644 --- a/amarillo/plugins/metrics/metrics.py +++ b/amarillo/plugins/metrics/metrics.py @@ -8,6 +8,8 @@ from fastapi import APIRouter, HTTPException, Depends, Request from datetime import datetime from prometheus_client.exposition import generate_latest from prometheus_client import Gauge, Counter +from prometheus_fastapi_instrumentator import Instrumentator +from prometheus_fastapi_instrumentator import metrics as pfi_metrics from prometheus_fastapi_instrumentator.metrics import Info from fastapi import Depends, HTTPException, FastAPI from fastapi.security import HTTPBasic, HTTPBasicCredentials @@ -46,4 +48,17 @@ def metrics(credentials: HTTPBasicCredentials = Depends(security)): ) # total_requests_metric.labels(endpoint="/amarillo-metrics").inc() - return PlainTextResponse(content=generate_latest()) \ No newline at end of file + return PlainTextResponse(content=generate_latest()) + + +#TODO: maybe replace with an @setup decorator? would make it more obvious this is invoked from outside +def setup(app: FastAPI): + app.include_router(router) + + + instrumentator = Instrumentator().instrument(app) + instrumentator.add(pfi_metrics.default()) + instrumentator.add(amarillo_trips_number_total()) + + + instrumentator.instrument(app) \ No newline at end of file