diff --git a/src/misp/router.py b/src/misp/router.py index e985c25..6c70250 100644 --- a/src/misp/router.py +++ b/src/misp/router.py @@ -10,6 +10,7 @@ from sqlalchemy.sql import and_ from src.auth.service import authed_dependency from src.database import db_dependency +from src.prometheus import prometheus from src.misp.models import Domain from src.misp.schemas import MispUpdatePutRequest, MispUpdatePutResponse @@ -20,6 +21,21 @@ router = APIRouter( ) +@router.get("/dashboard_metrics", include_in_schema=False) +async def dashboard_metrics(): + """ + Endpoint for UI status bar. JSONifies required Prometheus metrics. + :return: + """ + return { + "blocked_domain_count": prometheus.blocked_domain_count._value.get(), + "TIMER_STATE": prometheus.TIMER_STATE._value, + "MISP_STATE": prometheus.MISP_STATE._value, + "last_update_complete_time": prometheus.last_update_complete_time._value.get(), + "last_update_length": prometheus.last_update_length._value.get(), + } + + @router.put("/manual_update", response_model=MispUpdatePutResponse) async def manual_misp_update(request: Request, update_request: MispUpdatePutRequest, background_tasks: BackgroundTasks): published_time = update_request.published_timestamp