From 36555a7382397498daa692f2be05e7fcffb2482a Mon Sep 17 00:00:00 2001 From: Ethan Dickson Date: Fri, 30 Aug 2024 05:16:13 +0000 Subject: [PATCH] fix: delete workspace agent stats after 180 days --- coderd/database/dbmem/dbmem.go | 6 +++--- coderd/database/dbpurge/dbpurge_test.go | 20 +++++++++---------- coderd/database/queries.sql.go | 4 ++-- .../database/queries/workspaceagentstats.sql | 4 ++-- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/coderd/database/dbmem/dbmem.go b/coderd/database/dbmem/dbmem.go index df0b4145819d7..826c64cc305ff 100644 --- a/coderd/database/dbmem/dbmem.go +++ b/coderd/database/dbmem/dbmem.go @@ -1749,10 +1749,10 @@ func (q *FakeQuerier) DeleteOldWorkspaceAgentStats(_ context.Context) error { -- use between 15 mins and 1 hour of data. We keep a -- little bit more (1 day) just in case. MAX(start_time) - '1 days'::interval, - -- Fall back to 6 months ago if there are no template + -- Fall back to ~6 months ago if there are no template -- usage stats so that we don't delete the data before -- it's rolled up. - NOW() - '6 months'::interval + NOW() - '180 days'::interval ) FROM template_usage_stats @@ -1778,7 +1778,7 @@ func (q *FakeQuerier) DeleteOldWorkspaceAgentStats(_ context.Context) error { } // COALESCE if limit.IsZero() { - limit = now.AddDate(0, -6, 0) + limit = now.AddDate(0, 0, -180) } var validStats []database.WorkspaceAgentStat diff --git a/coderd/database/dbpurge/dbpurge_test.go b/coderd/database/dbpurge/dbpurge_test.go index a79bb1b6c1d75..04c2aaf124251 100644 --- a/coderd/database/dbpurge/dbpurge_test.go +++ b/coderd/database/dbpurge/dbpurge_test.go @@ -86,27 +86,27 @@ func TestDeleteOldWorkspaceAgentStats(t *testing.T) { // conflicts, verifying DST behavior is beyond the scope of this // test. // Let's use RxBytes to identify stat entries. - // Stat inserted 6 months + 2 hour ago, should be deleted. + // Stat inserted 180 days + 2 hour ago, should be deleted. first := dbgen.WorkspaceAgentStat(t, db, database.WorkspaceAgentStat{ - CreatedAt: now.AddDate(0, -6, 0).Add(-2 * time.Hour), + CreatedAt: now.AddDate(0, 0, -180).Add(-2 * time.Hour), ConnectionCount: 1, ConnectionMedianLatencyMS: 1, RxBytes: 1111, SessionCountSSH: 1, }) - // Stat inserted 6 months - 2 hour ago, should not be deleted before rollup. + // Stat inserted 180 days - 2 hour ago, should not be deleted before rollup. second := dbgen.WorkspaceAgentStat(t, db, database.WorkspaceAgentStat{ - CreatedAt: now.AddDate(0, -6, 0).Add(2 * time.Hour), + CreatedAt: now.AddDate(0, 0, -180).Add(2 * time.Hour), ConnectionCount: 1, ConnectionMedianLatencyMS: 1, RxBytes: 2222, SessionCountSSH: 1, }) - // Stat inserted 6 months - 1 day - 4 hour ago, should not be deleted at all. + // Stat inserted 179 days - 4 hour ago, should not be deleted at all. third := dbgen.WorkspaceAgentStat(t, db, database.WorkspaceAgentStat{ - CreatedAt: now.AddDate(0, -6, 0).AddDate(0, 0, 1).Add(4 * time.Hour), + CreatedAt: now.AddDate(0, 0, -179).Add(4 * time.Hour), ConnectionCount: 1, ConnectionMedianLatencyMS: 1, RxBytes: 3333, @@ -121,8 +121,8 @@ func TestDeleteOldWorkspaceAgentStats(t *testing.T) { var stats []database.GetWorkspaceAgentStatsRow var err error require.Eventuallyf(t, func() bool { - // Query all stats created not earlier than 7 months ago - stats, err = db.GetWorkspaceAgentStats(ctx, now.AddDate(0, -7, 0)) + // Query all stats created not earlier than ~7 months ago + stats, err = db.GetWorkspaceAgentStats(ctx, now.AddDate(0, 0, -210)) if err != nil { return false } @@ -144,8 +144,8 @@ func TestDeleteOldWorkspaceAgentStats(t *testing.T) { // then require.Eventuallyf(t, func() bool { - // Query all stats created not earlier than 7 months ago - stats, err = db.GetWorkspaceAgentStats(ctx, now.AddDate(0, -7, 0)) + // Query all stats created not earlier than ~7 months ago + stats, err = db.GetWorkspaceAgentStats(ctx, now.AddDate(0, 0, -210)) if err != nil { return false } diff --git a/coderd/database/queries.sql.go b/coderd/database/queries.sql.go index 67a8a56274acb..8e8036d6212b0 100644 --- a/coderd/database/queries.sql.go +++ b/coderd/database/queries.sql.go @@ -11481,10 +11481,10 @@ WHERE -- use between 15 mins and 1 hour of data. We keep a -- little bit more (1 day) just in case. MAX(start_time) - '1 days'::interval, - -- Fall back to 6 months ago if there are no template + -- Fall back to ~6 months ago if there are no template -- usage stats so that we don't delete the data before -- it's rolled up. - NOW() - '6 months'::interval + NOW() - '180 days'::interval ) FROM template_usage_stats diff --git a/coderd/database/queries/workspaceagentstats.sql b/coderd/database/queries/workspaceagentstats.sql index f96140c87cf7e..ccc6d7ae21380 100644 --- a/coderd/database/queries/workspaceagentstats.sql +++ b/coderd/database/queries/workspaceagentstats.sql @@ -78,10 +78,10 @@ WHERE -- use between 15 mins and 1 hour of data. We keep a -- little bit more (1 day) just in case. MAX(start_time) - '1 days'::interval, - -- Fall back to 6 months ago if there are no template + -- Fall back to ~6 months ago if there are no template -- usage stats so that we don't delete the data before -- it's rolled up. - NOW() - '6 months'::interval + NOW() - '180 days'::interval ) FROM template_usage_stats pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy