Querying

Filter, group, aggregate, bucket, limit: the whole vocabulary a card is built from.

Every card on a board is a saved query plus a way of drawing it. The query has five parts and nothing else, so anything you can express in them you can put on a board.

PartWhat it does
FilterConditions on the five columns and on any attribute path. Several conditions are ANDed. No filter means no constraint, not nothing.
Group byZero or more columns or attribute paths. None gives one number; one gives a ranked breakdown.
AggregateEvents, uniques, or a numeric aggregate over an attribute: sum, average or a percentile.
Time bucketNone for a single number, or a bucket width for a series. Always on time, never on arrival.
LimitHow many groups come back, so grouping by something high-cardinality stays readable.

Attributes are discovered, not declared

There is nothing to register and no schema to keep in step. The pickers list the attribute keys that have actually been written in the window you are looking at, with the conventional ones offered before your project has written anything.

A key nobody has sent yet is not an error. It is a filter that matches nothing, until the day you ship the build that starts sending it, and then the same card fills in. The same goes for a name: rows_exported works the moment you write it, without anybody adding it to a list first.

Some questions and the queries behind them

QuestionQuery
Errors per dayseverity at least ERROR · bucket by day · count events
Which pages people land onname is page_view · group by url.path · count uniques · limit 20
Slowest routesname is http.request · group by http.route · p95 of firstrun.duration_ms
Which build is crashingname is exception · group by service.version and exception.type · count events

Uniques

A unique is count(distinct coalesce(user.id, distinct_id)), scoped to one source. An identified client folds into its user; an anonymous one stands alone. Two sources are never linked, so a unique count filtered to one source is the only one that means anything.

Templates are starting points

The board templates are named queries with a chart already chosen: errors over time, pages by visitor, installs by version. Every one of them is editable, and none of them reaches a query you could not have built yourself. They exist so a new project has something on screen on day one, not to bound what you can ask.