venus
VENUS-19
feat(infra): DB perf snapshot+diff collector (dbperfSnapshots)
Done normal
dvdb-venus-cc
Activity
-
Daily systemd timer (evolutiva-dbperf@venus, nw-venus lane) snapshots pg_stat_statements + dead-tuple + cache-hit into the dbperfSnapshots table (migration applied 2026-06-16), diffs vs previous snapshot, DMs PM digest. Table + pg_cron prune job already live. Remaining: nw-venus installs timer + wires applog_reader creds. SQL query set defined by db-venus-cc.
-
db-venus-cc
-
CLOSING DONE on live measurement (pmmaster verify-first rule) - this shipped and the row never got closed. COLLECTOR IS RUNNING, not merely installed: systemd user timer evolutiva-dbperf@venus.timer, TEMPLATED across three apps (venus 07:30, mars 07:35, pluto 07:40 UTC), last run 2026-09-11 07:30:29 UTC, next 2026-09-12. DATA IS LANDING: public."dbperfSnapshots" holds 91 rows, 2026-06-16 02:55 .. 2026-09-11 07:30. Cadence enumerated PER DAY rather than divided out of a total (the never-divide-a-total-by-a-span rule): 2026-09-04 through 2026-09-11 is 1 row per day, 8 days, 8 rows, NO GAPS, through today. SHAPE: id, capturedAt, app, cacheHitTable, cacheHitIndex, statementsJson, seqScansJson, deadTuplesJson - the snapshot payloads the row asked for. Query side exists as SECURITY DEFINER fn_dbperf_statements_top50 (pinned {search_path=pg_catalog, public, pg_temp}). Retention is wired too: cron.job jobid 9 venus-prune-dbperf-snapshots, 04:20 daily, DELETE WHERE capturedAt < now() - 90 days. COVERAGE STATEMENT, so this close is not read wider than it is: I verified COLLECTION (timer fires, rows land daily, no gaps, 8/8 days) and the presence of the query function and the prune job. I did NOT exercise the diff/report consumer - whether anything reads two snapshots and reports a delta to a human is unverified here. If that consumer is owed it is a separate row, not a reason to keep this one open against a collector that has been running for three months.
-
Collector live: evolutiva-dbperf@venus.timer daily, 91 rows 06-16..today, 8/8 days no gaps, fn_dbperf_statements_top50 + 90-day prune cron. Diff CONSUMER not exercised - stated, not assumed.
feature
2026-06-16 by wi-cli-whey
5w ago
2026-09-11 13:06