feat: metrics endpoint for frontend

This commit is contained in:
Chris Milne 2026-05-08 16:43:37 +01:00
parent 3a1e822b63
commit a86047ec79

View file

@ -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