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 entry of a push; a push carries up to 50.
- Metric: one number, with a unit and a direction. Both are set the first time the metric is seen, and can be changed in project settings.
- 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, chosen with the project and fixed once it has runs; its kind can change in project settings. Hold the other tags fixed and you have a series.
Axis kinds
The axis has a kind, chosen with the project, that decides how its values order. Every push's axis value must parse as that kind; an unparseable one, or a missing one (except text), is a 400.
- version (default): 1 to 4 numeric parts (
2,1.2.3.4), optionallyv-prefixed, with a-,+or.suffix. - number: ordered by value.
- timestamp: an ISO 8601 date or datetime, or epoch milliseconds (13 digits).
- text: any value, ordered by series time.
The axis key is fixed once the project has runs. A kind change re-parses every stored value at once, or is refused listing the offending values. A project with more than 50,000 stored runs, deleted ones included, can't change kind from settings; ask us and we run it for you.
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.
Dashboards
- A project opens on its default dashboard: an ordered list of widgets, each a stored query. Without one, writers get suggested widgets. Project dashboards are shared with the team; private ones belong to you alone.
- The metric page is the widget editor: Add to dashboard, Save or Save as new.
- Explore is the unsaved filter grid over every metric. Each filter lists its top 25 values with run counts, and a search for the rest.
- A project dashboard can have share links: its widgets, read-only, without sign-in, with an optional password and expiry, revocable at any time.
Deleting
Delete a run, every run matching a filter on Explore, or a metric. A later push with the same identity, or the same metric name, brings it back. A tag value no remaining run carries leaves the filters.
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.