@@ -41,20 +41,13 @@ type Options struct {
41
41
// URL is an endpoint to direct telemetry towards!
42
42
URL * url.URL
43
43
44
- BuiltinPostgres bool
45
- DeploymentID string
46
- GitHubOAuth bool
47
- OIDCAuth bool
48
- OIDCIssuerURL string
49
- Wildcard bool
50
- DERPServerRelayURL string
51
- GitAuth []GitAuth
52
- Prometheus bool
53
- STUN bool
54
- SnapshotFrequency time.Duration
55
- Tunnel bool
56
- ParseLicenseJWT func (lic * License )error
57
- Experiments []string
44
+ DeploymentID string
45
+ DeploymentConfig * codersdk.DeploymentValues
46
+ BuiltinPostgres bool
47
+ Tunnel bool
48
+
49
+ SnapshotFrequency time.Duration
50
+ ParseLicenseJWT func (lic * License )error
58
51
}
59
52
60
53
// New constructs a reporter for telemetry data.
@@ -242,31 +235,24 @@ func (r *remoteReporter) deployment() error {
242
235
}
243
236
244
237
data ,err := json .Marshal (& Deployment {
245
- ID :r .options .DeploymentID ,
246
- Architecture :sysInfo .Architecture ,
247
- BuiltinPostgres :r .options .BuiltinPostgres ,
248
- Containerized :containerized ,
249
- Wildcard :r .options .Wildcard ,
250
- DERPServerRelayURL :r .options .DERPServerRelayURL ,
251
- GitAuth :r .options .GitAuth ,
252
- Kubernetes :os .Getenv ("KUBERNETES_SERVICE_HOST" )!= "" ,
253
- GitHubOAuth :r .options .GitHubOAuth ,
254
- OIDCAuth :r .options .OIDCAuth ,
255
- OIDCIssuerURL :r .options .OIDCIssuerURL ,
256
- Prometheus :r .options .Prometheus ,
257
- InstallSource :installSource ,
258
- STUN :r .options .STUN ,
259
- Tunnel :r .options .Tunnel ,
260
- OSType :sysInfo .OS .Type ,
261
- OSFamily :sysInfo .OS .Family ,
262
- OSPlatform :sysInfo .OS .Platform ,
263
- OSName :sysInfo .OS .Name ,
264
- OSVersion :sysInfo .OS .Version ,
265
- CPUCores :runtime .NumCPU (),
266
- MemoryTotal :mem .Total ,
267
- MachineID :sysInfo .UniqueID ,
268
- StartedAt :r .startedAt ,
269
- ShutdownAt :r .shutdownAt ,
238
+ ID :r .options .DeploymentID ,
239
+ Architecture :sysInfo .Architecture ,
240
+ BuiltinPostgres :r .options .BuiltinPostgres ,
241
+ Containerized :containerized ,
242
+ Config :r .options .DeploymentConfig ,
243
+ Kubernetes :os .Getenv ("KUBERNETES_SERVICE_HOST" )!= "" ,
244
+ InstallSource :installSource ,
245
+ Tunnel :r .options .Tunnel ,
246
+ OSType :sysInfo .OS .Type ,
247
+ OSFamily :sysInfo .OS .Family ,
248
+ OSPlatform :sysInfo .OS .Platform ,
249
+ OSName :sysInfo .OS .Name ,
250
+ OSVersion :sysInfo .OS .Version ,
251
+ CPUCores :runtime .NumCPU (),
252
+ MemoryTotal :mem .Total ,
253
+ MachineID :sysInfo .UniqueID ,
254
+ StartedAt :r .startedAt ,
255
+ ShutdownAt :r .shutdownAt ,
270
256
})
271
257
if err != nil {
272
258
return xerrors .Errorf ("marshal deployment: %w" ,err )
@@ -481,10 +467,6 @@ func (r *remoteReporter) createSnapshot() (*Snapshot, error) {
481
467
}
482
468
return nil
483
469
})
484
- eg .Go (func ()error {
485
- snapshot .Experiments = ConvertExperiments (r .options .Experiments )
486
- return nil
487
- })
488
470
489
471
err := eg .Wait ()
490
472
if err != nil {
@@ -745,16 +727,6 @@ func ConvertExternalProvisioner(id uuid.UUID, tags map[string]string, provisione
745
727
}
746
728
}
747
729
748
- func ConvertExperiments (experiments []string ) []Experiment {
749
- var out []Experiment
750
-
751
- for _ ,exp := range experiments {
752
- out = append (out ,Experiment {Name :exp })
753
- }
754
-
755
- return out
756
- }
757
-
758
730
// Snapshot represents a point-in-time anonymized database dump.
759
731
// Data is aggregated by latest on the server-side, so partial data
760
732
// can be sent without issue.
@@ -777,40 +749,28 @@ type Snapshot struct {
777
749
WorkspaceResourceMetadata []WorkspaceResourceMetadata `json:"workspace_resource_metadata"`
778
750
WorkspaceResources []WorkspaceResource `json:"workspace_resources"`
779
751
Workspaces []Workspace `json:"workspaces"`
780
- Experiments []Experiment `json:"experiments"`
781
752
}
782
753
783
754
// Deployment contains information about the host running Coder.
784
755
type Deployment struct {
785
- ID string `json:"id"`
786
- Architecture string `json:"architecture"`
787
- BuiltinPostgres bool `json:"builtin_postgres"`
788
- Containerized bool `json:"containerized"`
789
- Kubernetes bool `json:"kubernetes"`
790
- Tunnel bool `json:"tunnel"`
791
- Wildcard bool `json:"wildcard"`
792
- DERPServerRelayURL string `json:"derp_server_relay_url"`
793
- GitAuth []GitAuth `json:"git_auth"`
794
- GitHubOAuth bool `json:"github_oauth"`
795
- OIDCAuth bool `json:"oidc_auth"`
796
- OIDCIssuerURL string `json:"oidc_issuer_url"`
797
- Prometheus bool `json:"prometheus"`
798
- InstallSource string `json:"install_source"`
799
- STUN bool `json:"stun"`
800
- OSType string `json:"os_type"`
801
- OSFamily string `json:"os_family"`
802
- OSPlatform string `json:"os_platform"`
803
- OSName string `json:"os_name"`
804
- OSVersion string `json:"os_version"`
805
- CPUCores int `json:"cpu_cores"`
806
- MemoryTotal uint64 `json:"memory_total"`
807
- MachineID string `json:"machine_id"`
808
- StartedAt time.Time `json:"started_at"`
809
- ShutdownAt * time.Time `json:"shutdown_at"`
810
- }
811
-
812
- type GitAuth struct {
813
- Type string `json:"type"`
756
+ ID string `json:"id"`
757
+ Architecture string `json:"architecture"`
758
+ BuiltinPostgres bool `json:"builtin_postgres"`
759
+ Containerized bool `json:"containerized"`
760
+ Kubernetes bool `json:"kubernetes"`
761
+ Config * codersdk.DeploymentValues `json:"config"`
762
+ Tunnel bool `json:"tunnel"`
763
+ InstallSource string `json:"install_source"`
764
+ OSType string `json:"os_type"`
765
+ OSFamily string `json:"os_family"`
766
+ OSPlatform string `json:"os_platform"`
767
+ OSName string `json:"os_name"`
768
+ OSVersion string `json:"os_version"`
769
+ CPUCores int `json:"cpu_cores"`
770
+ MemoryTotal uint64 `json:"memory_total"`
771
+ MachineID string `json:"machine_id"`
772
+ StartedAt time.Time `json:"started_at"`
773
+ ShutdownAt * time.Time `json:"shutdown_at"`
814
774
}
815
775
816
776
type APIKey struct {
@@ -985,10 +945,6 @@ type ExternalProvisioner struct {
985
945
ShutdownAt * time.Time `json:"shutdown_at"`
986
946
}
987
947
988
- type Experiment struct {
989
- Name string `json:"name"`
990
- }
991
-
992
948
type noopReporter struct {}
993
949
994
950
func (* noopReporter )Report (_ * Snapshot ) {}