Skip to content

Commit 122291c

Browse files
committed
fixup! try to fix batcher flake again
1 parent 3314b7f commit 122291c

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

coderd/batchstats/batcher.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ func New(ctx context.Context, opts ...Option) (*Batcher, func(), error) {
126126

127127
// Add adds a stat to the batcher for the given workspace and agent.
128128
func (b *Batcher) Add(
129+
now time.Time,
129130
agentID uuid.UUID,
130131
templateID uuid.UUID,
131132
userID uuid.UUID,
@@ -135,7 +136,7 @@ func (b *Batcher) Add(
135136
b.mu.Lock()
136137
defer b.mu.Unlock()
137138

138-
now := database.Now()
139+
now = database.Time(now)
139140

140141
b.buf.ID = append(b.buf.ID, uuid.New())
141142
b.buf.CreatedAt = append(b.buf.CreatedAt, now)

coderd/batchstats/batcher_internal_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ func TestBatchStats(t *testing.T) {
5959
require.Empty(t, stats, "should have no stats for workspace")
6060

6161
// Given: a single data point is added for workspace
62-
t2 := database.Now()
62+
t2 := t1.Add(time.Millisecond)
6363
t.Logf("inserting 1 stat")
64-
require.NoError(t, b.Add(deps1.Agent.ID, deps1.User.ID, deps1.Template.ID, deps1.Workspace.ID, randAgentSDKStats(t)))
64+
require.NoError(t, b.Add(t2, deps1.Agent.ID, deps1.User.ID, deps1.Template.ID, deps1.Workspace.ID, randAgentSDKStats(t)))
6565

6666
// When: it becomes time to report stats
6767
// Signal a tick and wait for a flush to complete.
@@ -77,17 +77,17 @@ func TestBatchStats(t *testing.T) {
7777

7878
// Given: a lot of data points are added for both workspaces
7979
// (equal to batch size)
80-
t3 := database.Now()
80+
t3 := t2.Add(time.Millisecond)
8181
done := make(chan struct{})
8282

8383
go func() {
8484
defer close(done)
8585
t.Logf("inserting %d stats", defaultBufferSize)
8686
for i := 0; i < defaultBufferSize; i++ {
8787
if i%2 == 0 {
88-
require.NoError(t, b.Add(deps1.Agent.ID, deps1.User.ID, deps1.Template.ID, deps1.Workspace.ID, randAgentSDKStats(t)))
88+
require.NoError(t, b.Add(t3, deps1.Agent.ID, deps1.User.ID, deps1.Template.ID, deps1.Workspace.ID, randAgentSDKStats(t)))
8989
} else {
90-
require.NoError(t, b.Add(deps2.Agent.ID, deps2.User.ID, deps2.Template.ID, deps2.Workspace.ID, randAgentSDKStats(t)))
90+
require.NoError(t, b.Add(t3, deps2.Agent.ID, deps2.User.ID, deps2.Template.ID, deps2.Workspace.ID, randAgentSDKStats(t)))
9191
}
9292
}
9393
}()

coderd/workspaceagents.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1414,7 +1414,7 @@ func (api *API) workspaceAgentReportStats(rw http.ResponseWriter, r *http.Reques
14141414

14151415
var errGroup errgroup.Group
14161416
errGroup.Go(func() error {
1417-
if err := api.statsBatcher.Add(workspaceAgent.ID, workspace.TemplateID, workspace.OwnerID, workspace.ID, req); err != nil {
1417+
if err := api.statsBatcher.Add(time.Now(), workspaceAgent.ID, workspace.TemplateID, workspace.OwnerID, workspace.ID, req); err != nil {
14181418
api.Logger.Error(ctx, "failed to add stats to batcher", slog.Error(err))
14191419
return xerrors.Errorf("can't insert workspace agent stat: %w", err)
14201420
}

0 commit comments

Comments
 (0)