Error tracking
The error events your apps report don't pile up as a flat list. They're fingerprinted into groups — one per distinct fault — each with its counts, a stack trace, a status, and an AI root-cause hint you can ask for.
Grouping
Errors are fingerprinted, so the same fault from a thousand sessions becomes a single group with a count — not a thousand rows. Each group shows its status, type, message, whether it's fatal, how many events it holds, and when it was last seen.
AI root cause
Open a group and ask for an analysis: the platform reads the captured stack trace and generates a root-cause hypothesis — a starting point that saves the first ten minutes of every investigation. Re-analyze after a cooldown when you've learned more, and the last analysis is timestamped.
at renderProfile (profile.ts:42)
at ProfileCard (card.tsx:18)
at mount (runtime.js:220)profile.ts:42 reads user.id before the profile query resolves. Guard the render, or wait for the query, when a card mounts without a loaded user.
Triage
Every group carries a status you drive as you go — so the list stays a worklist, not a graveyard.
A live fault, awaiting attention. New groups start here.
Fixed and closed — reopen it in a click if it returns.
Known and accepted noise you don't want cluttering the list.
Keep exploring
How events become queries, charts, and dashboards.
Events arrive from your apps and land in the warehouse — inspectable live.
Saved SQL with typed parameters — the single source of truth for every chart.
Bind a query to a chart, then lay charts out on a grid that shares parameters.