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

Commitebe0908

Browse files
committed
feat(coderd/telemetry): add telemetry for database Tasks
1 parent82945cf commitebe0908

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

‎coderd/telemetry/telemetry.go‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,19 @@ func (r *remoteReporter) createSnapshot() (*Snapshot, error) {
730730
}
731731
returnnil
732732
})
733+
eg.Go(func()error {
734+
dbTasks,err:=r.options.Database.ListTasks(ctx, database.ListTasksParams{
735+
OwnerID:uuid.Nil,
736+
OrganizationID:uuid.Nil,
737+
})
738+
iferr!=nil {
739+
returnerr
740+
}
741+
for_,dbTask:=rangedbTasks {
742+
snapshot.Tasks=append(snapshot.Tasks,ConvertTask(dbTask))
743+
}
744+
returnnil
745+
})
733746

734747
err:=eg.Wait()
735748
iferr!=nil {
@@ -1205,6 +1218,7 @@ type Snapshot struct {
12051218
Workspaces []Workspace`json:"workspaces"`
12061219
NetworkEvents []NetworkEvent`json:"network_events"`
12071220
Organizations []Organization`json:"organizations"`
1221+
Tasks []Task`json:"tasks"`
12081222
TelemetryItems []TelemetryItem`json:"telemetry_items"`
12091223
UserTailnetConnections []UserTailnetConnection`json:"user_tailnet_connections"`
12101224
PrebuiltWorkspaces []PrebuiltWorkspace`json:"prebuilt_workspaces"`
@@ -1753,6 +1767,35 @@ type Organization struct {
17531767
CreatedAt time.Time`json:"created_at"`
17541768
}
17551769

1770+
typeTaskstruct {
1771+
ID uuid.UUID`json:"id"`
1772+
OrganizationID uuid.UUID`json:"organization_id"`
1773+
OwnerID uuid.UUID`json:"owner_id"`
1774+
Namestring`json:"name"`
1775+
WorkspaceID uuid.NullUUID`json:"workspace_id"`
1776+
TemplateVersionID uuid.UUID`json:"template_version_id"`
1777+
TemplateParametersHashstring`json:"template_parameters_hash"`// Parameters are hashed for privacy.
1778+
PromptHashstring`json:"hashed_prompt"`// Prompt is hashed for privacy.
1779+
CreatedAt time.Time`json:"created_at"`
1780+
Statusstring`json:"status"`
1781+
}
1782+
1783+
// ConvertTask anonymizes a Task.
1784+
funcConvertTask(task database.Task)Task {
1785+
returnTask{
1786+
ID:task.ID,
1787+
OrganizationID:task.OrganizationID,
1788+
OwnerID:task.OwnerID,
1789+
Name:task.Name,
1790+
WorkspaceID:task.WorkspaceID,
1791+
TemplateVersionID:task.TemplateVersionID,
1792+
TemplateParametersHash:fmt.Sprintf("%x",sha256.New().Sum(task.TemplateParameters)),
1793+
PromptHash:fmt.Sprintf("%x",sha256.New().Sum([]byte(task.Prompt))),
1794+
CreatedAt:task.CreatedAt,
1795+
Status:string(task.Status),
1796+
}
1797+
}
1798+
17561799
typetelemetryItemKeystring
17571800

17581801
// The comment below gets rid of the warning that the name "TelemetryItemKey" has

‎coderd/telemetry/telemetry_test.go‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,12 @@ func TestTelemetry(t *testing.T) {
151151
HasAITask: sql.NullBool{Valid:true,Bool:true},
152152
AITaskSidebarAppID: uuid.NullUUID{Valid:true,UUID:taskWsApp.ID},
153153
})
154+
task:=dbgen.Task(t,db, database.TaskTable{
155+
OwnerID:user.ID,
156+
OrganizationID:org.ID,
157+
WorkspaceID: uuid.NullUUID{Valid:true,UUID:taskWs.ID},
158+
TemplateVersionID:taskTV.ID,
159+
})
154160

155161
group:=dbgen.Group(t,db, database.Group{
156162
OrganizationID:org.ID,
@@ -220,6 +226,18 @@ func TestTelemetry(t *testing.T) {
220226
require.Len(t,wsa.Subsystems,2)
221227
require.Equal(t,string(database.WorkspaceAgentSubsystemEnvbox),wsa.Subsystems[0])
222228
require.Equal(t,string(database.WorkspaceAgentSubsystemExectrace),wsa.Subsystems[1])
229+
require.Len(t,snapshot.Tasks,1)
230+
for_,snapTask:=rangesnapshot.Tasks {
231+
assert.Equal(t,task.ID,snapTask.ID)
232+
assert.Equal(t,task.OrganizationID,snapTask.OrganizationID)
233+
assert.Equal(t,task.OwnerID,snapTask.OwnerID)
234+
assert.Equal(t,task.Name,snapTask.Name)
235+
assert.Equal(t,task.WorkspaceID,snapTask.WorkspaceID)
236+
assert.Equal(t,task.TemplateVersionID,snapTask.TemplateVersionID)
237+
assert.NotEmpty(t,snapTask.TemplateParametersHash)
238+
assert.NotEmpty(t,snapTask.PromptHash)
239+
assert.Equal(t,task.CreatedAt.UTC(),snapTask.CreatedAt.UTC())
240+
}
223241

224242
require.True(t,slices.ContainsFunc(snapshot.TemplateVersions,func(ttv telemetry.TemplateVersion)bool {
225243
ifttv.ID!=taskTV.ID {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp