heyosseus/vacuum
A Laravel package that vacuums stale application data on a schedule, letting you define retention rules and reclaim disk space automatically. Simple configuration, Artisan commands, and no manual pruning—keeping your app lean and your database tidy.
pg_stat_statements across every role, running pg_total_relation_size() over every table on every render with no statement timeout. That's a cost-of-ownership finding, not a cosmetic one: it's the difference between letting DBAs use the Overview on prod and restricting it to staging.pg_database_size() and includes the system catalogs (~0.03%). Small, but confirm no alert threshold, capacity-planning sheet, or customer-facing report assumes the old figure.Adopt if:
pg_total_relation_size() across every table on every render is a genuine problem — i.e. exactly what this release fixes.Look elsewhere / don't adopt if:
pg_stat_statements plus this Overview is not that.Caveat on the source material: the published notes are partially truncated ("sahat", some clause endings). The substance — two query rewrites, timeout bounding, poll removal, no API/config/migration changes — is clear enough to act on, but confirm the exact degradation behaviour in the changelog before promising it to stakeholders.
Executives: A one-line upgrade that removes a real production performance problem in our database monitoring view. On a 160 GB database, the Overview was running the two most expensive queries in the entire system on every page render, with no timeout — enough to hold a web worker for up to a minute. After this patch those become cheap, bounded reads. No migrations, no configuration, no API changes: it's a composer update. Low risk, immediate stability and cost win, and the work was contributed by the community rather than built by us.
Engineering: v1.2.3 reworks the Overview's expensive paths. Database size now uses pg_database_size() (includes system catalogs, ~0.03% delta) instead of aggregating pg_total_relation_size() across every table. Largest tables now runs through the read-only executor so the statement timeout applies, and the five-second poll is gone. The vitals card reads each figure once per render, down from computing a ratio three times and active sessions twice. Two caveats to plan around: the Tables list still sorts by size on every load (#31, tracked upstream), and very large databases may render a degraded chart instead of a number. Upgrade via composer update heyosseus/vacuum; rollback is a version pin.
How can I help you explore Laravel packages today?