Skip to content

Commit 3a5a025

Browse files
committed
add workspace modules and workspace resources's ModulePath to telemetry
1 parent 119a686 commit 3a5a025

File tree

12 files changed

+151
-6
lines changed

12 files changed

+151
-6
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2673,6 +2673,13 @@ func (q *querier) GetWorkspaceModulesByJobID(ctx context.Context, jobID uuid.UUI
26732673
return q.db.GetWorkspaceModulesByJobID(ctx, jobID)
26742674
}
26752675

2676+
func (q *querier) GetWorkspaceModulesCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceModule, error) {
2677+
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceSystem); err != nil {
2678+
return nil, err
2679+
}
2680+
return q.db.GetWorkspaceModulesCreatedAfter(ctx, createdAt)
2681+
}
2682+
26762683
func (q *querier) GetWorkspaceProxies(ctx context.Context) ([]database.WorkspaceProxy, error) {
26772684
return fetchWithPostFilter(q.auth, policy.ActionRead, func(ctx context.Context, _ interface{}) ([]database.WorkspaceProxy, error) {
26782685
return q.db.GetWorkspaceProxies(ctx)

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2919,6 +2919,9 @@ func (s *MethodTestSuite) TestSystemFunctions() {
29192919
s.Run("GetWorkspaceModulesByJobID", s.Subtest(func(db database.Store, check *expects) {
29202920
check.Args(uuid.New()).Asserts(rbac.ResourceSystem, policy.ActionRead)
29212921
}))
2922+
s.Run("GetWorkspaceModulesCreatedAfter", s.Subtest(func(db database.Store, check *expects) {
2923+
check.Args(dbtime.Now()).Asserts(rbac.ResourceSystem, policy.ActionRead)
2924+
}))
29222925
}
29232926

29242927
func (s *MethodTestSuite) TestNotifications() {

coderd/database/dbgen/dbgen.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,20 @@ func WorkspaceResource(t testing.TB, db database.Store, orig database.WorkspaceR
666666
return resource
667667
}
668668

669+
func WorkspaceModule(t testing.TB, db database.Store, orig database.WorkspaceModule) database.WorkspaceModule {
670+
module, err := db.InsertWorkspaceModule(genCtx, database.InsertWorkspaceModuleParams{
671+
ID: takeFirst(orig.ID, uuid.New()),
672+
JobID: takeFirst(orig.JobID, uuid.New()),
673+
Transition: takeFirst(orig.Transition, database.WorkspaceTransitionStart),
674+
Source: takeFirst(orig.Source, "test-source"),
675+
Version: takeFirst(orig.Version, "v1.0.0"),
676+
Key: takeFirst(orig.Key, "test-key"),
677+
CreatedAt: takeFirst(orig.CreatedAt, dbtime.Now()),
678+
})
679+
require.NoError(t, err, "insert workspace module")
680+
return module
681+
}
682+
669683
func WorkspaceResourceMetadatums(t testing.TB, db database.Store, seed database.WorkspaceResourceMetadatum) []database.WorkspaceResourceMetadatum {
670684
meta, err := db.InsertWorkspaceResourceMetadata(genCtx, database.InsertWorkspaceResourceMetadataParams{
671685
WorkspaceResourceID: takeFirst(seed.WorkspaceResourceID, uuid.New()),

coderd/database/dbmem/dbmem.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6686,6 +6686,19 @@ func (q *FakeQuerier) GetWorkspaceModulesByJobID(_ context.Context, jobID uuid.U
66866686
return modules, nil
66876687
}
66886688

6689+
func (q *FakeQuerier) GetWorkspaceModulesCreatedAfter(_ context.Context, createdAt time.Time) ([]database.WorkspaceModule, error) {
6690+
q.mutex.RLock()
6691+
defer q.mutex.RUnlock()
6692+
6693+
modules := make([]database.WorkspaceModule, 0)
6694+
for _, module := range q.workspaceModules {
6695+
if module.CreatedAt.After(createdAt) {
6696+
modules = append(modules, module)
6697+
}
6698+
}
6699+
return modules, nil
6700+
}
6701+
66896702
func (q *FakeQuerier) GetWorkspaceProxies(_ context.Context) ([]database.WorkspaceProxy, error) {
66906703
q.mutex.RLock()
66916704
defer q.mutex.RUnlock()

coderd/database/dbmetrics/querymetrics.go

Lines changed: 7 additions & 0 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: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

Lines changed: 1 addition & 0 deletions
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: 35 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/workspacemodules.sql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ FROM
1111
workspace_modules
1212
WHERE
1313
job_id = $1;
14+
15+
-- name: GetWorkspaceModulesCreatedAfter :many
16+
SELECT * FROM workspace_modules WHERE created_at > $1;

coderd/provisionerdserver/provisionerdserver.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1279,7 +1279,7 @@ func (s *server) CompleteJob(ctx context.Context, completed *proto.CompletedJob)
12791279
slog.F("module_key", module.Key),
12801280
slog.F("transition", transition))
12811281

1282-
err = InsertWorkspaceModule(ctx, s.Database, jobID, transition, module)
1282+
err = InsertWorkspaceModule(ctx, s.Database, jobID, transition, module, telemetrySnapshot)
12831283
if err != nil {
12841284
return nil, xerrors.Errorf("insert module: %w", err)
12851285
}
@@ -1491,7 +1491,7 @@ func (s *server) CompleteJob(ctx context.Context, completed *proto.CompletedJob)
14911491
}
14921492
}
14931493
for _, module := range jobType.WorkspaceBuild.Modules {
1494-
err = InsertWorkspaceModule(ctx, db, job.ID, workspaceBuild.Transition, module)
1494+
err = InsertWorkspaceModule(ctx, db, job.ID, workspaceBuild.Transition, module, telemetrySnapshot)
14951495
if err != nil {
14961496
return xerrors.Errorf("insert provisioner job module: %w", err)
14971497
}
@@ -1683,7 +1683,7 @@ func (s *server) CompleteJob(ctx context.Context, completed *proto.CompletedJob)
16831683
slog.F("module_source", module.Source),
16841684
)
16851685

1686-
err = InsertWorkspaceModule(ctx, s.Database, jobID, database.WorkspaceTransitionStart, module)
1686+
err = InsertWorkspaceModule(ctx, s.Database, jobID, database.WorkspaceTransitionStart, module, telemetrySnapshot)
16871687
if err != nil {
16881688
return nil, xerrors.Errorf("insert module: %w", err)
16891689
}
@@ -1769,8 +1769,8 @@ func (s *server) startTrace(ctx context.Context, name string, opts ...trace.Span
17691769
))...)
17701770
}
17711771

1772-
func InsertWorkspaceModule(ctx context.Context, db database.Store, jobID uuid.UUID, transition database.WorkspaceTransition, protoModule *sdkproto.Module) error {
1773-
_, err := db.InsertWorkspaceModule(ctx, database.InsertWorkspaceModuleParams{
1772+
func InsertWorkspaceModule(ctx context.Context, db database.Store, jobID uuid.UUID, transition database.WorkspaceTransition, protoModule *sdkproto.Module, snapshot *telemetry.Snapshot) error {
1773+
module, err := db.InsertWorkspaceModule(ctx, database.InsertWorkspaceModuleParams{
17741774
ID: uuid.New(),
17751775
CreatedAt: dbtime.Now(),
17761776
JobID: jobID,
@@ -1782,6 +1782,7 @@ func InsertWorkspaceModule(ctx context.Context, db database.Store, jobID uuid.UU
17821782
if err != nil {
17831783
return xerrors.Errorf("insert provisioner job module %q: %w", protoModule.Source, err)
17841784
}
1785+
snapshot.WorkspaceModules = append(snapshot.WorkspaceModules, telemetry.ConvertWorkspaceModule(module))
17851786
return nil
17861787
}
17871788

0 commit comments

Comments
 (0)