"""Prometheus metrics endpoint for BanGUI. Exposes collected metrics in Prometheus text format at GET /metrics. """ from __future__ import annotations from app.utils.logging_compat import get_logger from fastapi import APIRouter from starlette.responses import Response from app.utils.metrics import get_metrics, get_metrics_content_type log = get_logger(__name__) router = APIRouter() @router.get( "/metrics", tags=["observability"], summary="Prometheus metrics endpoint", description="Exposes application metrics in Prometheus text format (OpenMetrics)", include_in_schema=False, ) async def get_application_metrics() -> Response: """Get Prometheus metrics. Returns: Prometheus-formatted metrics as plain text. """ log.debug("metrics_endpoint_accessed") return Response( content=get_metrics(), media_type=get_metrics_content_type(), )