snapshot: prune speedtests older than 30 days (retention via existing storage primitive)

This commit is contained in:
BergaBruh
2026-05-09 23:43:09 +05:00
parent d0fb8f3dad
commit f7030686b2
+9
View File
@@ -43,7 +43,16 @@ type snapshot struct {
// buildSpeedtestSnapshot collects the last 200 speedtest rows + per-node // buildSpeedtestSnapshot collects the last 200 speedtest rows + per-node
// medians over 24h/7d/30d windows. Aggregate errors are logged but // medians over 24h/7d/30d windows. Aggregate errors are logged but
// non-fatal — the rest of the snapshot still ships. // non-fatal — the rest of the snapshot still ships.
//
// Side effect: prunes speedtests older than 30 days. Retention is colocated
// with snapshot rebuild because both run on the same timer cadence and the
// storage layer already has the DeleteSpeedTestsBefore primitive.
func buildSpeedtestSnapshot(ctx context.Context, st *storage.Store) (*SpeedtestSnapshot, error) { func buildSpeedtestSnapshot(ctx context.Context, st *storage.Store) (*SpeedtestSnapshot, error) {
if deleted, err := st.DeleteSpeedTestsBefore(ctx, time.Now().Add(-30*24*time.Hour).Unix()); err != nil {
log.Printf("speedtests retention (non-fatal): %v", err)
} else if deleted > 0 {
log.Printf("speedtests retention: pruned %d rows older than 30 days", deleted)
}
recent, err := st.ListRecentSpeedTests(ctx, 200) recent, err := st.ListRecentSpeedTests(ctx, 200)
if err != nil { if err != nil {
return nil, err return nil, err