Surface baseline maintenance status in the dashboard

Retention and per-field value capping already ran automatically every poll
cycle, but the dashboard showed only a single "DB size" line — no
visibility into what got deleted, which fields are hitting the
max-values-per-field cap, or whether disk space is reclaimable, without
SSHing in. baseline.py's maintenance() now also reports the specific
(stream, entity, field) rows it trimmed for exceeding the cap, surfaced in
a new Baseline Maintenance dashboard panel alongside size/reclaimable bytes
and rows deleted last cycle. Deliberately no live-vacuum button: VACUUM
needs the service stopped first, so the dashboard only shows when it's
worth doing and points at the existing offline CLI command.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
larssand
2026-09-24 16:35:09 +02:00
parent 36516faf9a
commit e61403d7f6
6 changed files with 79 additions and 3 deletions

View File

@@ -131,6 +131,14 @@ Baseline storage settings are in `Settings`:
- `Max values per entity field`: cap for distinct values per
stream/entity/field. Lower this if `profile_values` grows too fast.
Retention and per-field value capping already run automatically every poll
cycle — nothing above needs a manual trigger. `Diagnostics -> Baseline
Maintenance` shows the result: current DB size, reclaimable bytes, rows
deleted last cycle, and specifically which `(stream, entity, field)` rows
got trimmed for exceeding the max-values-per-field cap, so you can tell
whether a field is worth excluding from its profile instead of just raising
the cap. Only disk-space reclamation (`VACUUM`) needs a manual, offline step:
For a large existing baseline, stop the service before compacting:
```bash