started log ingestion and analysis

This commit is contained in:
Jake Kasper
2026-04-24 14:15:58 -04:00
parent c2537dd955
commit 9ac96cee9a
27 changed files with 1368 additions and 179 deletions

36
app/routers/logs.py Normal file
View File

@@ -0,0 +1,36 @@
from fastapi import APIRouter, HTTPException, Query
from app.services import log_ingest
router = APIRouter()
@router.get("/logs/status")
async def get_log_status():
return log_ingest.receiver_status()
@router.get("/logs/events")
async def get_log_events(
limit: int = Query(default=200, ge=1, le=5000),
node: str | None = None,
nf: str | None = None,
imsi: str | None = None,
):
return {
"events": log_ingest.get_events(limit=limit, node=node, nf=nf, imsi=imsi),
"status": log_ingest.receiver_status(),
}
@router.get("/logs/contexts")
async def get_log_contexts(limit: int = Query(default=20, ge=1, le=200)):
return {"contexts": log_ingest.recent_alert_context(limit=limit)}
@router.post("/logs/configure")
async def configure_log_shipping():
try:
return await log_ingest.configure_site_output()
except Exception as exc:
raise HTTPException(status_code=500, detail=str(exc)) from exc