Skip to content

Commit d66e041

Browse files
committed
add source example id to telemetry
1 parent ff2e0c5 commit d66e041

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

coderd/telemetry/telemetry.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,9 @@ func ConvertTemplateVersion(version database.TemplateVersion) TemplateVersion {
868868
if version.TemplateID.Valid {
869869
snapVersion.TemplateID = &version.TemplateID.UUID
870870
}
871+
if version.SourceExampleID.Valid {
872+
snapVersion.SourceExampleID = &version.SourceExampleID.String
873+
}
871874
return snapVersion
872875
}
873876

@@ -1116,11 +1119,12 @@ type Template struct {
11161119
}
11171120

11181121
type TemplateVersion struct {
1119-
ID uuid.UUID `json:"id"`
1120-
CreatedAt time.Time `json:"created_at"`
1121-
TemplateID *uuid.UUID `json:"template_id,omitempty"`
1122-
OrganizationID uuid.UUID `json:"organization_id"`
1123-
JobID uuid.UUID `json:"job_id"`
1122+
ID uuid.UUID `json:"id"`
1123+
CreatedAt time.Time `json:"created_at"`
1124+
TemplateID *uuid.UUID `json:"template_id,omitempty"`
1125+
OrganizationID uuid.UUID `json:"organization_id"`
1126+
JobID uuid.UUID `json:"job_id"`
1127+
SourceExampleID *string `json:"source_example_id,omitempty"`
11241128
}
11251129

11261130
type ProvisionerJob struct {

coderd/telemetry/telemetry_test.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package telemetry_test
22

33
import (
4+
"database/sql"
45
"encoding/json"
56
"net/http"
67
"net/http/httptest"
@@ -48,6 +49,10 @@ func TestTelemetry(t *testing.T) {
4849
_ = dbgen.Template(t, db, database.Template{
4950
Provisioner: database.ProvisionerTypeTerraform,
5051
})
52+
sourceExampleID := uuid.NewString()
53+
_ = dbgen.TemplateVersion(t, db, database.TemplateVersion{
54+
SourceExampleID: sql.NullString{String: sourceExampleID, Valid: true},
55+
})
5156
_ = dbgen.TemplateVersion(t, db, database.TemplateVersion{})
5257
user := dbgen.User(t, db, database.User{})
5358
_ = dbgen.Workspace(t, db, database.WorkspaceTable{})
@@ -93,7 +98,7 @@ func TestTelemetry(t *testing.T) {
9398
require.Len(t, snapshot.ProvisionerJobs, 1)
9499
require.Len(t, snapshot.Licenses, 1)
95100
require.Len(t, snapshot.Templates, 1)
96-
require.Len(t, snapshot.TemplateVersions, 1)
101+
require.Len(t, snapshot.TemplateVersions, 2)
97102
require.Len(t, snapshot.Users, 1)
98103
require.Len(t, snapshot.Groups, 2)
99104
// 1 member in the everyone group + 1 member in the custom group
@@ -111,6 +116,17 @@ func TestTelemetry(t *testing.T) {
111116
require.Len(t, wsa.Subsystems, 2)
112117
require.Equal(t, string(database.WorkspaceAgentSubsystemEnvbox), wsa.Subsystems[0])
113118
require.Equal(t, string(database.WorkspaceAgentSubsystemExectrace), wsa.Subsystems[1])
119+
120+
tvs := snapshot.TemplateVersions
121+
sort.Slice(tvs, func(i, j int) bool {
122+
// Sort by SourceExampleID presence (non-nil comes before nil)
123+
if (tvs[i].SourceExampleID != nil) != (tvs[j].SourceExampleID != nil) {
124+
return tvs[i].SourceExampleID != nil
125+
}
126+
return false
127+
})
128+
require.Equal(t, tvs[0].SourceExampleID, &sourceExampleID)
129+
require.Nil(t, tvs[1].SourceExampleID)
114130
})
115131
t.Run("HashedEmail", func(t *testing.T) {
116132
t.Parallel()

0 commit comments

Comments
 (0)