Docs, ticks, working app

This commit is contained in:
Hugh Kaznowski
2026-09-05 15:05:39 +01:00
parent 41362aa3d8
commit 51e577f01e
41 changed files with 1039 additions and 683 deletions
+39
View File
@@ -0,0 +1,39 @@
# 025 — Seed a default dashboard with 2 default panels
## Summary
`ProfileStore::ensure_default` creates the `Default` profile with no dashboards.
The wishlist wants every fresh Default profile to come with a starter dashboard:
a line chart of "error" vs. non-"error" log volume, and a pie chart of the same
ratio.
## Scope
- On `ensure_default` creating a brand-new `Default` profile (not on every
startup — only when the profile itself is newly created), seed one
`Dashboard` with two panels:
- Line chart: log message count over time, split into "contains `error`" vs.
"does not contain `error`" series.
- Pie chart: same split, as a ratio/total-count breakdown.
- Express both panels as PromQL-style queries against a counter
([022](022-metrics-counters-rethink.md)) — this likely requires an implicit
built-in "log matched regex X" counter concept (e.g. auto-declaring a metric
for `regex("error")` vs. its complement), or a raw-text regex count primitive
in the PromQL surface if one doesn't already exist. Decide and document which.
- Seeded dashboard/panels must persist through the normal profile save path (same
as any user-created dashboard) so it's editable/deletable like any other.
## Acceptance criteria
- A fresh install (no existing settings/profile store) starts up with a `Default`
profile that already has one dashboard containing the line and pie panels
described above, without any user action.
- Restarting with an already-existing `Default` profile does not re-seed or
duplicate the dashboard.
- The seeded panels render real data against a log stream containing a mix of
"error" and non-"error" lines.
## Depends on
- [022 — Metrics rethink](022-metrics-counters-rethink.md) (defines what a
"count of matching logs" counter/query looks like).