53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
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
|
|
|
|
|
|
@router.post("/logs/traces/start")
|
|
async def start_trace(supi: str = Query(min_length=3)):
|
|
try:
|
|
return await log_ingest.start_subscriber_trace(supi)
|
|
except Exception as exc:
|
|
raise HTTPException(status_code=500, detail=str(exc)) from exc
|
|
|
|
|
|
@router.post("/logs/traces/stop")
|
|
async def stop_trace():
|
|
try:
|
|
return await log_ingest.stop_subscriber_trace()
|
|
except Exception as exc:
|
|
raise HTTPException(status_code=500, detail=str(exc)) from exc
|