Inspiration
Complaints in Reddit channels from Post-production coordinators from low budget production describing the issues when renders stall.
What it does
CineOps Guardian turns "which shots are blocked for tomorrow's dailies and why?" into a deterministic 8-step agent run: Gemini plans scoped Grafana queries, the agent executes them live through the Grafana Cloud MCP server, pure-Python rules join telemetry to call sheets and delivery memos, and — only after one-click approval — it writes a dashboard annotation and incident note back, with cited findings, a revised shot order, hours saved, and a CSV export.
How we built it
Backend: FastAPI on Cloud Run + google-adk with Gemini 2.5 Flash on Vertex AI, BigQuery for snapshots, and the official grafana/mcp-grafana server over stdio (81 tools). Frontend: React/Vite 3-screen SSE experience (ingest → live run with per-step evidence cards → results) with a cinematic dual-theme identity. Demo data is a fully synthetic 240-shot production ("PALS") with seeded Cloud telemetry.
Challenges we ran into
Grafana Cloud had never been seeded and rejected everything in sequence: wrong push endpoints (404), hand-rolled snappy framing the receiver refused (we learned Prometheus remote-write is raw blocks, not framed streams), then out-of-order timestamp gates that forced a time-remapped incident window. On top of that: an MCP tool cache that left writes silently falling back to REST, and a AI summarizer that hallucinated "no actions"
Accomplishments that we're proud of
A live public URL where the full arc plays end to end: real MCP reads, an approval gate, an annotation written back to a real dashboard.
What we learned
Using Grafana for the first time was challenging. Then troubleshooting all the issues until having it fully working will help speed up future projects with Grafana.
What's next for CineOps Guardian
Grafana alerts to start the process. Grafana is already used in the manual work flow to make people aware of shots getting stalled. However the app could implement Grafana alerts to start the process rather than waiting for the coordinator to see from Grafana that there's a problem and only then opening the app to solve it.
Log in or sign up for Devpost to join the conversation.