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

View File

@@ -1,6 +1,6 @@
from fastapi import APIRouter
from pydantic import BaseModel
from app.services import cluster_inventory, alertmanager, ai
from app.services import cluster_inventory, alertmanager, ai, log_ingest
router = APIRouter()
@@ -11,14 +11,15 @@ class QueryRequest(BaseModel):
@router.post("/query")
async def query(req: QueryRequest):
network_state, alerts = await _gather(req.query)
response = await ai.answer(req.query, network_state, alerts)
return {"response": response, "network_state": network_state, "alerts": alerts}
network_state, alerts, logs = await _gather(req.query)
response = await ai.answer(req.query, network_state, alerts, logs)
return {"response": response, "network_state": network_state, "alerts": alerts, "logs": logs}
async def _gather(query_text: str):
import asyncio
nfs_task = asyncio.create_task(cluster_inventory.get_network_status())
alerts_task = asyncio.create_task(alertmanager.get_alerts())
network_state, alerts = await asyncio.gather(nfs_task, alerts_task)
return network_state, alerts
logs_task = asyncio.to_thread(log_ingest.get_events, 200)
network_state, alerts, logs = await asyncio.gather(nfs_task, alerts_task, logs_task)
return network_state, alerts, logs