A chat interface where you ask natural language questions about your microservices and an AI agent queries OpenObserve logs in real-time to investigate and answer.
TraceTalk lets SREs ask questions like "How is my database health?" and get detailed answers with evidence from live logs. I built the backend agent loop in Python — it receives a question, calls Claude with tool definitions (run_sql, search_logs, list_streams), executes the SQL against OpenObserve, feeds results back to Claude, and streams narration + final answers via Server-Sent Events. The AI wrote the agent loop, Flask SSE endpoint, and Next.js frontend with glassmorphism styling inspired by Kree8's Dribbble work. I directed the architecture choices: using application_logs instead of metric streams (which return 400 errors on SQL queries), increasing the tool call budget from 5 to 20 so the agent finishes investigations, and bypassing Next.js proxy to call Flask directly to fix timeout issues.
The agent kept trying to query metric-type streams (db_query_duration_ms, http_latency_p99_ms) which OpenObserve rejects with 400 errors. Fixed by updating the system prompt to explicitly tell Claude that only application_logs is queryable via SQL.
Started with functional requirements ("build an agent that queries OpenObserve"), then iteratively debugged specific failures ("getting 405 error", "tables showing as raw markdown"). When the UI needed polish, I pointed to a specific designer's Dribbble portfolio and asked to match that style.