How it works
Runs, tags and the axis
Four ideas cover the whole model. Everything the app shows is derived from your pushes at read time.
The four words
- Run — one push.
- Metric — one number, with a unit and a direction. Both are pinned the first time the metric is seen.
- Tag — a coordinate. Tags identify the run, and they are what you filter, group and compare on.
- Meta — provenance: commit, CI URL, runner. It never identifies anything.
The rule: if it identifies, it is a tag; if it must not, it is meta.
Tags are coordinates
Each tag key is a dimension, so a project's runs form a grid. A cell is one run, holding the metrics that push measured.
The axis is the one tag key the x-axis walks — version by default, changed in project settings. Hold the other tags fixed and you have a series.
Filter or axis is up to the query
No tag is a “filter tag” or an “axis tag”. The same grid gives a trend or a comparison depending on which key you walk.
Two modes
A project is versioned or time_series. The mode is fixed once the project has runs.
Three layouts
| Project | Tags | Note |
|---|---|---|
| Firmware | version × board × build | one project per product |
| Monorepo | version × component × platform | one project per repo |
| Nightly benchmarks | model × device | time_series, commit in meta |
More shapes in the FAQ.