MHSanaei
293c1e44dc
perf(metrics): tiered rollup history (7d at ~1.5MB) and cleaner ranges
...
Replace the flat 48h@2s ring buffer with a 3-tier rollup ladder (2s/1h, 1m/48h, 10m/7d). A sample feeds every tier and rolls up into progressively coarser averages, so per-metric footprint drops from ~21MB to ~1.5MB (measured, 16 system metrics) while extending the range from 48h to 7 days. aggregate() picks the finest tier covering the requested span; a pre-tier flat gob is migrated by replaying its samples through the rollup.
Tidy the dashboard ranges to a professional ladder: 2m, 1h, 3h, 6h, 12h, 24h, 2d, 7d (drop the irregular 2h/5h, the redundant 30m, and the excessive 30d). The allow-list keeps bucket 30 because the node history panel uses it.
Add an initial FreeOSMemory about 60s after boot to reclaim the startup and metric-restore peak instead of waiting for the periodic release. Cover the rollup, tier selection, round-trip, and footprint with tests.
2026-06-25 23:30:13 +02:00
..
2026-06-22 20:20:55 +02:00
2026-06-17 17:24:16 +02:00
2026-06-13 11:48:02 +02:00
2026-06-25 02:36:41 +02:00
2026-06-25 02:36:41 +02:00
2026-06-20 10:35:46 +02:00
2026-06-22 21:55:58 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-12 01:22:15 +02:00
2026-06-24 12:55:08 +02:00
2026-06-25 19:21:42 +02:00
2026-06-17 15:55:56 +02:00
2026-06-24 13:02:42 +02:00
2026-06-10 15:19:22 +02:00
2026-06-14 20:57:14 +02:00
2026-06-11 12:04:02 +02:00
2026-06-17 15:55:56 +02:00
2026-06-12 15:30:41 +02:00
2026-06-24 22:43:18 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-24 13:02:42 +02:00
2026-06-10 15:19:22 +02:00
2026-06-21 23:06:10 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-22 00:22:28 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 23:01:33 +02:00
2026-06-24 22:43:18 +02:00
2026-06-10 15:19:22 +02:00
2026-06-22 00:22:28 +02:00
2026-06-17 12:06:55 +02:00
2026-06-17 12:06:55 +02:00
2026-06-20 10:35:46 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-11 14:05:02 +02:00
2026-06-22 00:22:28 +02:00
2026-06-24 13:02:42 +02:00
2026-06-24 13:02:42 +02:00
2026-06-12 13:00:04 +02:00
2026-06-15 15:17:03 +02:00
2026-06-24 13:02:42 +02:00
2026-06-12 17:58:45 +02:00
2026-06-22 20:20:55 +02:00
2026-06-22 20:20:55 +02:00
2026-06-14 23:10:52 +02:00
2026-06-25 21:19:27 +02:00
2026-06-11 12:04:02 +02:00
2026-06-11 12:04:02 +02:00
2026-06-12 12:03:22 +02:00
2026-06-10 15:19:22 +02:00
2026-06-11 15:14:08 +02:00
2026-06-22 00:22:28 +02:00
2026-06-11 20:24:15 +02:00
2026-06-12 12:03:22 +02:00
2026-06-24 13:02:42 +02:00
2026-06-25 23:30:13 +02:00
2026-06-25 23:30:13 +02:00
2026-06-20 10:35:46 +02:00
2026-06-22 20:20:55 +02:00
2026-06-15 15:46:19 +02:00
2026-06-25 21:19:27 +02:00
2026-06-20 01:09:53 +02:00
2026-06-21 17:27:53 +02:00
2026-06-16 12:19:33 +02:00
2026-06-16 12:19:33 +02:00
2026-06-16 12:19:33 +02:00
2026-06-22 20:20:55 +02:00
2026-06-22 20:20:55 +02:00
2026-06-10 15:19:22 +02:00
2026-06-11 20:48:26 +02:00
2026-06-10 15:19:22 +02:00
2026-06-22 20:20:55 +02:00
2026-06-25 00:29:03 +02:00
2026-06-23 10:48:01 +02:00
2026-06-23 10:48:01 +02:00
2026-06-15 17:21:06 +02:00
2026-06-15 17:21:06 +02:00
2026-06-20 10:35:46 +02:00
2026-06-24 21:22:42 +02:00
2026-06-20 00:37:35 +02:00
2026-06-25 23:30:13 +02:00
2026-06-16 12:19:33 +02:00
2026-06-16 12:19:33 +02:00
2026-06-15 21:03:41 +02:00
2026-06-24 18:11:22 +02:00
2026-06-17 14:11:35 +02:00
2026-06-10 15:19:22 +02:00
2026-06-24 12:55:08 +02:00
2026-06-10 15:19:22 +02:00
2026-06-17 15:55:47 +02:00
2026-06-10 15:19:22 +02:00
2026-06-12 17:58:45 +02:00
2026-06-15 21:03:41 +02:00
2026-06-20 01:18:31 +02:00
2026-06-20 01:18:31 +02:00
2026-06-10 15:19:22 +02:00
2026-06-17 17:24:16 +02:00
2026-06-15 00:43:49 +02:00
2026-06-23 17:38:16 +02:00
2026-06-25 02:36:41 +02:00