Skip to content

Commit 0a9f6fc

Browse files
committed
Add automatic stat deletion
1 parent 56af0a2 commit 0a9f6fc

File tree

5 files changed

+24
-0
lines changed

5 files changed

+24
-0
lines changed

coderd/database/databasefake/databasefake.go

+4
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,10 @@ func (q *fakeQuerier) AcquireProvisionerJob(_ context.Context, arg database.Acqu
137137
}
138138
return database.ProvisionerJob{}, sql.ErrNoRows
139139
}
140+
func (q *fakeQuerier) DeleteOldAgentStats(_ context.Context) error {
141+
// no-op
142+
return nil
143+
}
140144

141145
func (q *fakeQuerier) InsertAgentStat(_ context.Context, p database.InsertAgentStatParams) (database.AgentStat, error) {
142146
q.mutex.Lock()

coderd/database/querier.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/agentstats.sql

+3
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,6 @@ group by
2323
date
2424
order by
2525
date asc;
26+
27+
-- name: DeleteOldAgentStats :exec
28+
DELETE FROM AGENT_STATS WHERE created_at < now() - interval '30 days';

coderd/metricscache/cache.go

+7
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"sync/atomic"
99
"time"
1010

11+
"golang.org/x/xerrors"
12+
1113
"cdr.dev/slog"
1214
"github.com/coder/coder/coderd/database"
1315
"github.com/coder/coder/codersdk"
@@ -65,6 +67,11 @@ func fillEmptyDAUDays(rows []database.GetDAUsFromAgentStatsRow) []database.GetDA
6567
}
6668

6769
func (c *Cache) refresh(ctx context.Context) error {
70+
err := c.Database.DeleteOldAgentStats(ctx)
71+
if err != nil {
72+
return xerrors.Errorf("delete old stats: %w", err)
73+
}
74+
6875
daus, err := c.Database.GetDAUsFromAgentStats(ctx)
6976
if err != nil {
7077
return err

0 commit comments

Comments
 (0)