Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit26abb16

Browse files
committed
refactor(coderd/database): allow passing deletion threshold into DeleteOldWorkspaceAgentLogs
1 parent4b5c45d commit26abb16

File tree

9 files changed

+25
-26
lines changed

9 files changed

+25
-26
lines changed

‎coderd/database/dbauthz/dbauthz.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1144,11 +1144,11 @@ func (q *querier) DeleteOldProvisionerDaemons(ctx context.Context) error {
11441144
returnq.db.DeleteOldProvisionerDaemons(ctx)
11451145
}
11461146

1147-
func (q*querier)DeleteOldWorkspaceAgentLogs(ctx context.Context)error {
1147+
func (q*querier)DeleteOldWorkspaceAgentLogs(ctx context.Context,threshold time.Time)error {
11481148
iferr:=q.authorizeContext(ctx,policy.ActionDelete,rbac.ResourceSystem);err!=nil {
11491149
returnerr
11501150
}
1151-
returnq.db.DeleteOldWorkspaceAgentLogs(ctx)
1151+
returnq.db.DeleteOldWorkspaceAgentLogs(ctx,threshold)
11521152
}
11531153

11541154
func (q*querier)DeleteOldWorkspaceAgentStats(ctx context.Context)error {

‎coderd/database/dbauthz/dbauthz_test.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2514,7 +2514,7 @@ func (s *MethodTestSuite) TestSystemFunctions() {
25142514
}).Asserts(rbac.ResourceSystem,policy.ActionCreate)
25152515
}))
25162516
s.Run("DeleteOldWorkspaceAgentLogs",s.Subtest(func(db database.Store,check*expects) {
2517-
check.Args().Asserts(rbac.ResourceSystem,policy.ActionDelete)
2517+
check.Args(time.Time{}).Asserts(rbac.ResourceSystem,policy.ActionDelete)
25182518
}))
25192519
s.Run("InsertWorkspaceAgentStats",s.Subtest(func(db database.Store,check*expects) {
25202520
check.Args(database.InsertWorkspaceAgentStatsParams{}).Asserts(rbac.ResourceSystem,policy.ActionCreate).Errors(errMatchAny)

‎coderd/database/dbmem/dbmem.go‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1706,19 +1706,15 @@ func (q *FakeQuerier) DeleteOldProvisionerDaemons(_ context.Context) error {
17061706
returnnil
17071707
}
17081708

1709-
func (q*FakeQuerier)DeleteOldWorkspaceAgentLogs(_ context.Context)error {
1709+
func (q*FakeQuerier)DeleteOldWorkspaceAgentLogs(_ context.Context,threshold time.Time)error {
17101710
q.mutex.Lock()
17111711
deferq.mutex.Unlock()
17121712

1713-
now:=dbtime.Now()
1714-
weekInterval:=7*24*time.Hour
1715-
weekAgo:=now.Add(-weekInterval)
1716-
17171713
varvalidLogs []database.WorkspaceAgentLog
17181714
for_,log:=rangeq.workspaceAgentLogs {
17191715
vartoBeDeletedbool
17201716
for_,agent:=rangeq.workspaceAgents {
1721-
ifagent.ID==log.AgentID&&agent.LastConnectedAt.Valid&&agent.LastConnectedAt.Time.Before(weekAgo) {
1717+
ifagent.ID==log.AgentID&&agent.LastConnectedAt.Valid&&agent.LastConnectedAt.Time.Before(threshold) {
17221718
toBeDeleted=true
17231719
break
17241720
}

‎coderd/database/dbmetrics/dbmetrics.go‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/dbmock/dbmock.go‎

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/dbpurge/dbpurge.go‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ import (
1414
)
1515

1616
const (
17-
delay=10*time.Minute
17+
delay=10*time.Minute
18+
maxAgentLogAge=7*24*time.Hour
1819
)
1920

2021
// New creates a new periodically purging database instance.
@@ -31,10 +32,9 @@ func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer {
3132
// Use time.Nanosecond to force an initial tick. It will be reset to the
3233
// correct duration after executing once.
3334
ticker:=time.NewTicker(time.Nanosecond)
34-
doTick:=func() {
35+
doTick:=func(start time.Time) {
3536
deferticker.Reset(delay)
3637

37-
start:=time.Now()
3838
// Start a transaction to grab advisory lock, we don't want to run
3939
// multiple purges at the same time (multiple replicas).
4040
iferr:=db.InTx(func(tx database.Store)error {
@@ -49,7 +49,7 @@ func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer {
4949
returnnil
5050
}
5151

52-
iferr:=tx.DeleteOldWorkspaceAgentLogs(ctx);err!=nil {
52+
iferr:=tx.DeleteOldWorkspaceAgentLogs(ctx,start.Add(-maxAgentLogAge));err!=nil {
5353
returnxerrors.Errorf("failed to delete old workspace agent logs: %w",err)
5454
}
5555
iferr:=tx.DeleteOldWorkspaceAgentStats(ctx);err!=nil {
@@ -78,9 +78,12 @@ func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer {
7878
select {
7979
case<-ctx.Done():
8080
return
81-
case<-ticker.C:
81+
casenow,ok:=<-ticker.C:
82+
if!ok {
83+
return
84+
}
8285
ticker.Stop()
83-
doTick()
86+
doTick(now)
8487
}
8588
}
8689
}()

‎coderd/database/querier.go‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries.sql.go‎

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries/workspaceagents.sql‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ SELECT * FROM workspace_agent_log_sources WHERE workspace_agent_id = ANY(@ids ::
192192
-- name: DeleteOldWorkspaceAgentLogs :exec
193193
DELETEFROM workspace_agent_logsWHERE agent_idIN
194194
(SELECT idFROM workspace_agentsWHERE last_connected_atIS NOT NULL
195-
AND last_connected_at<NOW()- INTERVAL'7 day');
195+
AND last_connected_at<@threshold ::timestamptz);
196196

197197
-- name: GetWorkspaceAgentsInLatestBuildByWorkspaceID :many
198198
SELECT

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp