Skip to content

Commit 0a8c8ce

Browse files
authored
chore: remove InsertWorkspaceAgentStat query (coder#12869)
* chore: remove InsertWorkspaceAgentStat query InsertWorkspaceAgentStats (batch) exists. We only used the singular in a single unit test place. Removing the single for the batch, reducing the interface size.
1 parent 1d4bf30 commit 0a8c8ce

File tree

12 files changed

+71
-217
lines changed

12 files changed

+71
-217
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2532,20 +2532,6 @@ func (q *querier) InsertWorkspaceAgentScripts(ctx context.Context, arg database.
25322532
return q.db.InsertWorkspaceAgentScripts(ctx, arg)
25332533
}
25342534

2535-
func (q *querier) InsertWorkspaceAgentStat(ctx context.Context, arg database.InsertWorkspaceAgentStatParams) (database.WorkspaceAgentStat, error) {
2536-
// TODO: This is a workspace agent operation. Should users be able to query this?
2537-
// Not really sure what this is for.
2538-
workspace, err := q.db.GetWorkspaceByID(ctx, arg.WorkspaceID)
2539-
if err != nil {
2540-
return database.WorkspaceAgentStat{}, err
2541-
}
2542-
err = q.authorizeContext(ctx, rbac.ActionUpdate, workspace)
2543-
if err != nil {
2544-
return database.WorkspaceAgentStat{}, err
2545-
}
2546-
return q.db.InsertWorkspaceAgentStat(ctx, arg)
2547-
}
2548-
25492535
func (q *querier) InsertWorkspaceAgentStats(ctx context.Context, arg database.InsertWorkspaceAgentStatsParams) error {
25502536
if err := q.authorizeContext(ctx, rbac.ActionCreate, rbac.ResourceSystem); err != nil {
25512537
return err

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1520,12 +1520,6 @@ func (s *MethodTestSuite) TestWorkspace() {
15201520
AutomaticUpdates: database.AutomaticUpdatesAlways,
15211521
}).Asserts(w, rbac.ActionUpdate)
15221522
}))
1523-
s.Run("InsertWorkspaceAgentStat", s.Subtest(func(db database.Store, check *expects) {
1524-
ws := dbgen.Workspace(s.T(), db, database.Workspace{})
1525-
check.Args(database.InsertWorkspaceAgentStatParams{
1526-
WorkspaceID: ws.ID,
1527-
}).Asserts(ws, rbac.ActionUpdate)
1528-
}))
15291523
s.Run("UpdateWorkspaceAppHealthByID", s.Subtest(func(db database.Store, check *expects) {
15301524
ws := dbgen.Workspace(s.T(), db, database.Workspace{})
15311525
build := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: uuid.New()})

coderd/database/dbgen/dbgen.go

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -707,27 +707,49 @@ func WorkspaceAgentStat(t testing.TB, db database.Store, orig database.Workspace
707707
if orig.ConnectionsByProto == nil {
708708
orig.ConnectionsByProto = json.RawMessage([]byte("{}"))
709709
}
710-
scheme, err := db.InsertWorkspaceAgentStat(genCtx, database.InsertWorkspaceAgentStatParams{
711-
ID: takeFirst(orig.ID, uuid.New()),
712-
CreatedAt: takeFirst(orig.CreatedAt, dbtime.Now()),
713-
UserID: takeFirst(orig.UserID, uuid.New()),
714-
TemplateID: takeFirst(orig.TemplateID, uuid.New()),
715-
WorkspaceID: takeFirst(orig.WorkspaceID, uuid.New()),
716-
AgentID: takeFirst(orig.AgentID, uuid.New()),
717-
ConnectionsByProto: orig.ConnectionsByProto,
718-
ConnectionCount: takeFirst(orig.ConnectionCount, 0),
719-
RxPackets: takeFirst(orig.RxPackets, 0),
720-
RxBytes: takeFirst(orig.RxBytes, 0),
721-
TxPackets: takeFirst(orig.TxPackets, 0),
722-
TxBytes: takeFirst(orig.TxBytes, 0),
723-
SessionCountVSCode: takeFirst(orig.SessionCountVSCode, 0),
724-
SessionCountJetBrains: takeFirst(orig.SessionCountJetBrains, 0),
725-
SessionCountReconnectingPTY: takeFirst(orig.SessionCountReconnectingPTY, 0),
726-
SessionCountSSH: takeFirst(orig.SessionCountSSH, 0),
727-
ConnectionMedianLatencyMS: takeFirst(orig.ConnectionMedianLatencyMS, 0),
728-
})
710+
jsonProto := []byte(fmt.Sprintf("[%s]", orig.ConnectionsByProto))
711+
712+
params := database.InsertWorkspaceAgentStatsParams{
713+
ID: []uuid.UUID{takeFirst(orig.ID, uuid.New())},
714+
CreatedAt: []time.Time{takeFirst(orig.CreatedAt, dbtime.Now())},
715+
UserID: []uuid.UUID{takeFirst(orig.UserID, uuid.New())},
716+
TemplateID: []uuid.UUID{takeFirst(orig.TemplateID, uuid.New())},
717+
WorkspaceID: []uuid.UUID{takeFirst(orig.WorkspaceID, uuid.New())},
718+
AgentID: []uuid.UUID{takeFirst(orig.AgentID, uuid.New())},
719+
ConnectionsByProto: jsonProto,
720+
ConnectionCount: []int64{takeFirst(orig.ConnectionCount, 0)},
721+
RxPackets: []int64{takeFirst(orig.RxPackets, 0)},
722+
RxBytes: []int64{takeFirst(orig.RxBytes, 0)},
723+
TxPackets: []int64{takeFirst(orig.TxPackets, 0)},
724+
TxBytes: []int64{takeFirst(orig.TxBytes, 0)},
725+
SessionCountVSCode: []int64{takeFirst(orig.SessionCountVSCode, 0)},
726+
SessionCountJetBrains: []int64{takeFirst(orig.SessionCountJetBrains, 0)},
727+
SessionCountReconnectingPTY: []int64{takeFirst(orig.SessionCountReconnectingPTY, 0)},
728+
SessionCountSSH: []int64{takeFirst(orig.SessionCountSSH, 0)},
729+
ConnectionMedianLatencyMS: []float64{takeFirst(orig.ConnectionMedianLatencyMS, 0)},
730+
}
731+
err := db.InsertWorkspaceAgentStats(genCtx, params)
729732
require.NoError(t, err, "insert workspace agent stat")
730-
return scheme
733+
734+
return database.WorkspaceAgentStat{
735+
ID: params.ID[0],
736+
CreatedAt: params.CreatedAt[0],
737+
UserID: params.UserID[0],
738+
AgentID: params.AgentID[0],
739+
WorkspaceID: params.WorkspaceID[0],
740+
TemplateID: params.TemplateID[0],
741+
ConnectionsByProto: orig.ConnectionsByProto,
742+
ConnectionCount: params.ConnectionCount[0],
743+
RxPackets: params.RxPackets[0],
744+
RxBytes: params.RxBytes[0],
745+
TxPackets: params.TxPackets[0],
746+
TxBytes: params.TxBytes[0],
747+
ConnectionMedianLatencyMS: params.ConnectionMedianLatencyMS[0],
748+
SessionCountVSCode: params.SessionCountVSCode[0],
749+
SessionCountJetBrains: params.SessionCountJetBrains[0],
750+
SessionCountReconnectingPTY: params.SessionCountReconnectingPTY[0],
751+
SessionCountSSH: params.SessionCountSSH[0],
752+
}
731753
}
732754

733755
func OAuth2ProviderApp(t testing.TB, db database.Store, seed database.OAuth2ProviderApp) database.OAuth2ProviderApp {

coderd/database/dbmem/dbmem.go

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6481,37 +6481,6 @@ func (q *FakeQuerier) InsertWorkspaceAgentScripts(_ context.Context, arg databas
64816481
return scripts, nil
64826482
}
64836483

6484-
func (q *FakeQuerier) InsertWorkspaceAgentStat(_ context.Context, p database.InsertWorkspaceAgentStatParams) (database.WorkspaceAgentStat, error) {
6485-
if err := validateDatabaseType(p); err != nil {
6486-
return database.WorkspaceAgentStat{}, err
6487-
}
6488-
6489-
q.mutex.Lock()
6490-
defer q.mutex.Unlock()
6491-
6492-
stat := database.WorkspaceAgentStat{
6493-
ID: p.ID,
6494-
CreatedAt: p.CreatedAt,
6495-
WorkspaceID: p.WorkspaceID,
6496-
AgentID: p.AgentID,
6497-
UserID: p.UserID,
6498-
ConnectionsByProto: p.ConnectionsByProto,
6499-
ConnectionCount: p.ConnectionCount,
6500-
RxPackets: p.RxPackets,
6501-
RxBytes: p.RxBytes,
6502-
TxPackets: p.TxPackets,
6503-
TxBytes: p.TxBytes,
6504-
TemplateID: p.TemplateID,
6505-
SessionCountVSCode: p.SessionCountVSCode,
6506-
SessionCountJetBrains: p.SessionCountJetBrains,
6507-
SessionCountReconnectingPTY: p.SessionCountReconnectingPTY,
6508-
SessionCountSSH: p.SessionCountSSH,
6509-
ConnectionMedianLatencyMS: p.ConnectionMedianLatencyMS,
6510-
}
6511-
q.workspaceAgentStats = append(q.workspaceAgentStats, stat)
6512-
return stat, nil
6513-
}
6514-
65156484
func (q *FakeQuerier) InsertWorkspaceAgentStats(_ context.Context, arg database.InsertWorkspaceAgentStatsParams) error {
65166485
err := validateDatabaseType(arg)
65176486
if err != nil {

coderd/database/dbmetrics/dbmetrics.go

Lines changed: 0 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbmock/dbmock.go

Lines changed: 0 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbrollup/dbrollup_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,8 @@ func TestRollupTemplateUsageStats(t *testing.T) {
143143
db, ps := dbtestutil.NewDB(t, dbtestutil.WithDumpOnFailure())
144144
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
145145

146-
anHourAgo := dbtime.Now().Add(-time.Hour).Truncate(time.Hour)
147-
anHourAndSixMonthsAgo := anHourAgo.AddDate(0, -6, 0)
146+
anHourAgo := dbtime.Now().Add(-time.Hour).Truncate(time.Hour).UTC()
147+
anHourAndSixMonthsAgo := anHourAgo.AddDate(0, -6, 0).UTC()
148148

149149
var (
150150
org = dbgen.Organization(t, db, database.Organization{})
@@ -242,6 +242,12 @@ func TestRollupTemplateUsageStats(t *testing.T) {
242242
require.NoError(t, err)
243243
require.Len(t, stats, 1)
244244

245+
// I do not know a better way to do this. Our database runs in a *random*
246+
// timezone. So the returned time is in a random timezone and fails on the
247+
// equal even though they are the same time if converted back to the same timezone.
248+
stats[0].EndTime = stats[0].EndTime.UTC()
249+
stats[0].StartTime = stats[0].StartTime.UTC()
250+
245251
require.Equal(t, database.TemplateUsageStat{
246252
TemplateID: tpl.ID,
247253
UserID: user.ID,

coderd/database/querier.go

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

Lines changed: 0 additions & 88 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/workspaceagentstats.sql

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,3 @@
1-
-- name: InsertWorkspaceAgentStat :one
2-
INSERT INTO
3-
workspace_agent_stats (
4-
id,
5-
created_at,
6-
user_id,
7-
workspace_id,
8-
template_id,
9-
agent_id,
10-
connections_by_proto,
11-
connection_count,
12-
rx_packets,
13-
rx_bytes,
14-
tx_packets,
15-
tx_bytes,
16-
session_count_vscode,
17-
session_count_jetbrains,
18-
session_count_reconnecting_pty,
19-
session_count_ssh,
20-
connection_median_latency_ms
21-
)
22-
VALUES
23-
($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17) RETURNING *;
24-
251
-- name: InsertWorkspaceAgentStats :exec
262
INSERT INTO
273
workspace_agent_stats (

coderd/metricscache/metricscache_test.go

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package metricscache_test
33
import (
44
"context"
55
"database/sql"
6+
"encoding/json"
67
"testing"
78
"time"
89

@@ -280,14 +281,25 @@ func TestCache_DeploymentStats(t *testing.T) {
280281
})
281282
defer cache.Close()
282283

283-
_, err := db.InsertWorkspaceAgentStat(context.Background(), database.InsertWorkspaceAgentStatParams{
284-
ID: uuid.New(),
285-
AgentID: uuid.New(),
286-
CreatedAt: dbtime.Now(),
287-
ConnectionCount: 1,
288-
RxBytes: 1,
289-
TxBytes: 1,
290-
SessionCountVSCode: 1,
284+
err := db.InsertWorkspaceAgentStats(context.Background(), database.InsertWorkspaceAgentStatsParams{
285+
ID: []uuid.UUID{uuid.New()},
286+
CreatedAt: []time.Time{dbtime.Now()},
287+
WorkspaceID: []uuid.UUID{uuid.New()},
288+
UserID: []uuid.UUID{uuid.New()},
289+
TemplateID: []uuid.UUID{uuid.New()},
290+
AgentID: []uuid.UUID{uuid.New()},
291+
ConnectionsByProto: json.RawMessage(`[{}]`),
292+
293+
RxPackets: []int64{0},
294+
RxBytes: []int64{1},
295+
TxPackets: []int64{0},
296+
TxBytes: []int64{1},
297+
ConnectionCount: []int64{1},
298+
SessionCountVSCode: []int64{1},
299+
SessionCountJetBrains: []int64{0},
300+
SessionCountReconnectingPTY: []int64{0},
301+
SessionCountSSH: []int64{0},
302+
ConnectionMedianLatencyMS: []float64{10},
291303
})
292304
require.NoError(t, err)
293305

coderd/prometheusmetrics/prometheusmetrics_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"testing"
1212
"time"
1313

14-
"github.com/coder/coder/v2/cryptorand"
1514
"github.com/google/uuid"
1615
"github.com/prometheus/client_golang/prometheus"
1716
"github.com/stretchr/testify/assert"
@@ -32,6 +31,7 @@ import (
3231
"github.com/coder/coder/v2/coderd/prometheusmetrics"
3332
"github.com/coder/coder/v2/codersdk"
3433
"github.com/coder/coder/v2/codersdk/agentsdk"
34+
"github.com/coder/coder/v2/cryptorand"
3535
"github.com/coder/coder/v2/provisioner/echo"
3636
"github.com/coder/coder/v2/provisionersdk/proto"
3737
"github.com/coder/coder/v2/tailnet"

0 commit comments

Comments
 (0)