diff --git a/src/vllm_tgis_adapter/__main__.py b/src/vllm_tgis_adapter/__main__.py index b43d924f..f8dab362 100644 --- a/src/vllm_tgis_adapter/__main__.py +++ b/src/vllm_tgis_adapter/__main__.py @@ -75,11 +75,13 @@ router = APIRouter() -# Add prometheus asgi middleware to route /metrics requests -route = Mount("/metrics", make_asgi_app()) -# Workaround for 307 Redirect for /metrics -route.path_regex = re.compile("^/metrics(?P.*)$") -router.routes.append(route) + +def mount_metrics(app: fastapi.FastAPI) -> None: + # Add prometheus asgi middleware to route /metrics requests + metrics_route = Mount("/metrics", make_asgi_app()) + # Workaround for 307 Redirect for /metrics + metrics_route.path_regex = re.compile("^/metrics(?P.*)$") + app.routes.append(metrics_route) @router.get("/health") @@ -188,6 +190,8 @@ async def _force_log(): # noqa: ANN202 app.include_router(router) app.root_path = args.root_path + mount_metrics(app) + app.add_middleware( CORSMiddleware, allow_origins=args.allowed_origins, diff --git a/tests/test_http_server.py b/tests/test_http_server.py index 01bb1370..a664aef5 100644 --- a/tests/test_http_server.py +++ b/tests/test_http_server.py @@ -27,3 +27,8 @@ def test_completions(http_server_url, _http_server): generated_text = completion["choices"][0]["text"] assert generated_text + + +def test_metrics(http_server_url, _http_server): + response = requests.get(f"{http_server_url}/metrics") + response.raise_for_status()