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

Commit70900cc

Browse files
committed
telemetry
1 parent97080a5 commit70900cc

File tree

2 files changed

+86
-22
lines changed

2 files changed

+86
-22
lines changed

‎coderd/telemetry/telemetry.go

Lines changed: 82 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -624,6 +624,28 @@ func (r *remoteReporter) createSnapshot() (*Snapshot, error) {
624624
}
625625
returnnil
626626
})
627+
eg.Go(func()error {
628+
memoryMonitors,err:=r.options.Database.FetchMemoryResourceMonitorsCreatedAfter(ctx,createdAfter)
629+
iferr!=nil {
630+
returnxerrors.Errorf("get memory resource monitors: %w",err)
631+
}
632+
snapshot.WorkspaceAgentMemoryResourceMonitors=make([]WorkspaceAgentMemoryResourceMonitor,0,len(memoryMonitors))
633+
for_,monitor:=rangememoryMonitors {
634+
snapshot.WorkspaceAgentMemoryResourceMonitors=append(snapshot.WorkspaceAgentMemoryResourceMonitors,ConvertWorkspaceAgentMemoryResourceMonitor(monitor))
635+
}
636+
returnnil
637+
})
638+
eg.Go(func()error {
639+
volumeMonitors,err:=r.options.Database.FetchVolumesResourceMonitorsCreatedAfter(ctx,createdAfter)
640+
iferr!=nil {
641+
returnxerrors.Errorf("get volume resource monitors: %w",err)
642+
}
643+
snapshot.WorkspaceAgentVolumeResourceMonitors=make([]WorkspaceAgentVolumeResourceMonitor,0,len(volumeMonitors))
644+
for_,monitor:=rangevolumeMonitors {
645+
snapshot.WorkspaceAgentVolumeResourceMonitors=append(snapshot.WorkspaceAgentVolumeResourceMonitors,ConvertWorkspaceAgentVolumeResourceMonitor(monitor))
646+
}
647+
returnnil
648+
})
627649
eg.Go(func()error {
628650
proxies,err:=r.options.Database.GetWorkspaceProxies(ctx)
629651
iferr!=nil {
@@ -765,6 +787,26 @@ func ConvertWorkspaceAgent(agent database.WorkspaceAgent) WorkspaceAgent {
765787
returnsnapAgent
766788
}
767789

790+
funcConvertWorkspaceAgentMemoryResourceMonitor(monitor database.WorkspaceAgentMemoryResourceMonitor)WorkspaceAgentMemoryResourceMonitor {
791+
returnWorkspaceAgentMemoryResourceMonitor{
792+
AgentID:monitor.AgentID,
793+
Enabled:monitor.Enabled,
794+
Threshold:monitor.Threshold,
795+
CreatedAt:monitor.CreatedAt,
796+
UpdatedAt:monitor.UpdatedAt,
797+
}
798+
}
799+
800+
funcConvertWorkspaceAgentVolumeResourceMonitor(monitor database.WorkspaceAgentVolumeResourceMonitor)WorkspaceAgentVolumeResourceMonitor {
801+
returnWorkspaceAgentVolumeResourceMonitor{
802+
AgentID:monitor.AgentID,
803+
Enabled:monitor.Enabled,
804+
Threshold:monitor.Threshold,
805+
CreatedAt:monitor.CreatedAt,
806+
UpdatedAt:monitor.UpdatedAt,
807+
}
808+
}
809+
768810
// ConvertWorkspaceAgentStat anonymizes a workspace agent stat.
769811
funcConvertWorkspaceAgentStat(stat database.GetWorkspaceAgentStatsRow)WorkspaceAgentStat {
770812
returnWorkspaceAgentStat{
@@ -1083,28 +1125,30 @@ func ConvertTelemetryItem(item database.TelemetryItem) TelemetryItem {
10831125
typeSnapshotstruct {
10841126
DeploymentIDstring`json:"deployment_id"`
10851127

1086-
APIKeys []APIKey`json:"api_keys"`
1087-
CLIInvocations []clitelemetry.Invocation`json:"cli_invocations"`
1088-
ExternalProvisioners []ExternalProvisioner`json:"external_provisioners"`
1089-
Licenses []License`json:"licenses"`
1090-
ProvisionerJobs []ProvisionerJob`json:"provisioner_jobs"`
1091-
TemplateVersions []TemplateVersion`json:"template_versions"`
1092-
Templates []Template`json:"templates"`
1093-
Users []User`json:"users"`
1094-
Groups []Group`json:"groups"`
1095-
GroupMembers []GroupMember`json:"group_members"`
1096-
WorkspaceAgentStats []WorkspaceAgentStat`json:"workspace_agent_stats"`
1097-
WorkspaceAgents []WorkspaceAgent`json:"workspace_agents"`
1098-
WorkspaceApps []WorkspaceApp`json:"workspace_apps"`
1099-
WorkspaceBuilds []WorkspaceBuild`json:"workspace_build"`
1100-
WorkspaceProxies []WorkspaceProxy`json:"workspace_proxies"`
1101-
WorkspaceResourceMetadata []WorkspaceResourceMetadata`json:"workspace_resource_metadata"`
1102-
WorkspaceResources []WorkspaceResource`json:"workspace_resources"`
1103-
WorkspaceModules []WorkspaceModule`json:"workspace_modules"`
1104-
Workspaces []Workspace`json:"workspaces"`
1105-
NetworkEvents []NetworkEvent`json:"network_events"`
1106-
Organizations []Organization`json:"organizations"`
1107-
TelemetryItems []TelemetryItem`json:"telemetry_items"`
1128+
APIKeys []APIKey`json:"api_keys"`
1129+
CLIInvocations []clitelemetry.Invocation`json:"cli_invocations"`
1130+
ExternalProvisioners []ExternalProvisioner`json:"external_provisioners"`
1131+
Licenses []License`json:"licenses"`
1132+
ProvisionerJobs []ProvisionerJob`json:"provisioner_jobs"`
1133+
TemplateVersions []TemplateVersion`json:"template_versions"`
1134+
Templates []Template`json:"templates"`
1135+
Users []User`json:"users"`
1136+
Groups []Group`json:"groups"`
1137+
GroupMembers []GroupMember`json:"group_members"`
1138+
WorkspaceAgentStats []WorkspaceAgentStat`json:"workspace_agent_stats"`
1139+
WorkspaceAgents []WorkspaceAgent`json:"workspace_agents"`
1140+
WorkspaceApps []WorkspaceApp`json:"workspace_apps"`
1141+
WorkspaceBuilds []WorkspaceBuild`json:"workspace_build"`
1142+
WorkspaceProxies []WorkspaceProxy`json:"workspace_proxies"`
1143+
WorkspaceResourceMetadata []WorkspaceResourceMetadata`json:"workspace_resource_metadata"`
1144+
WorkspaceResources []WorkspaceResource`json:"workspace_resources"`
1145+
WorkspaceAgentMemoryResourceMonitors []WorkspaceAgentMemoryResourceMonitor`json:"workspace_agent_memory_resource_monitors"`
1146+
WorkspaceAgentVolumeResourceMonitors []WorkspaceAgentVolumeResourceMonitor`json:"workspace_agent_volume_resource_monitors"`
1147+
WorkspaceModules []WorkspaceModule`json:"workspace_modules"`
1148+
Workspaces []Workspace`json:"workspaces"`
1149+
NetworkEvents []NetworkEvent`json:"network_events"`
1150+
Organizations []Organization`json:"organizations"`
1151+
TelemetryItems []TelemetryItem`json:"telemetry_items"`
11081152
}
11091153

11101154
// Deployment contains information about the host running Coder.
@@ -1232,6 +1276,22 @@ type WorkspaceAgentStat struct {
12321276
SessionCountSSHint64`json:"session_count_ssh"`
12331277
}
12341278

1279+
typeWorkspaceAgentMemoryResourceMonitorstruct {
1280+
AgentID uuid.UUID`json:"agent_id"`
1281+
Enabledbool`json:"enabled"`
1282+
Thresholdint32`json:"threshold"`
1283+
CreatedAt time.Time`json:"created_at"`
1284+
UpdatedAt time.Time`json:"updated_at"`
1285+
}
1286+
1287+
typeWorkspaceAgentVolumeResourceMonitorstruct {
1288+
AgentID uuid.UUID`json:"agent_id"`
1289+
Enabledbool`json:"enabled"`
1290+
Thresholdint32`json:"threshold"`
1291+
CreatedAt time.Time`json:"created_at"`
1292+
UpdatedAt time.Time`json:"updated_at"`
1293+
}
1294+
12351295
typeWorkspaceAppstruct {
12361296
ID uuid.UUID`json:"id"`
12371297
CreatedAt time.Time`json:"created_at"`

‎coderd/telemetry/telemetry_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ func TestTelemetry(t *testing.T) {
112112
_,_=dbgen.WorkspaceProxy(t,db, database.WorkspaceProxy{})
113113

114114
_=dbgen.WorkspaceModule(t,db, database.WorkspaceModule{})
115+
_=dbgen.WorkspaceAgentMemoryResourceMonitor(t,db, database.WorkspaceAgentMemoryResourceMonitor{})
116+
_=dbgen.WorkspaceAgentVolumeResourceMonitor(t,db, database.WorkspaceAgentVolumeResourceMonitor{})
115117

116118
_,snapshot:=collectSnapshot(t,db,nil)
117119
require.Len(t,snapshot.ProvisionerJobs,1)
@@ -133,6 +135,8 @@ func TestTelemetry(t *testing.T) {
133135
require.Len(t,snapshot.Organizations,1)
134136
// We create one item manually above. The other is TelemetryEnabled, created by the snapshotter.
135137
require.Len(t,snapshot.TelemetryItems,2)
138+
require.Len(t,snapshot.WorkspaceAgentMemoryResourceMonitors,1)
139+
require.Len(t,snapshot.WorkspaceAgentVolumeResourceMonitors,1)
136140
wsa:=snapshot.WorkspaceAgents[0]
137141
require.Len(t,wsa.Subsystems,2)
138142
require.Equal(t,string(database.WorkspaceAgentSubsystemEnvbox),wsa.Subsystems[0])

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp