mirror of
https://github.com/coder/coder.git
synced 2025-07-09 11:45:56 +00:00
chore: Expose additional agent options to telemetry (#5070)
This also adds a few properties for deployments!
This commit is contained in:
@ -509,12 +509,22 @@ func Server(vip *viper.Viper, newAPI func(context.Context, *coderd.Options) (*co
|
||||
return xerrors.Errorf("parse telemetry url: %w", err)
|
||||
}
|
||||
|
||||
gitAuth := make([]telemetry.GitAuth, 0)
|
||||
for _, cfg := range gitAuthConfigs {
|
||||
gitAuth = append(gitAuth, telemetry.GitAuth{
|
||||
Type: string(cfg.Type),
|
||||
})
|
||||
}
|
||||
|
||||
options.Telemetry, err = telemetry.New(telemetry.Options{
|
||||
BuiltinPostgres: builtinPostgres,
|
||||
DeploymentID: deploymentID,
|
||||
Database: options.Database,
|
||||
Logger: logger.Named("telemetry"),
|
||||
URL: telemetryURL,
|
||||
Wildcard: cfg.WildcardAccessURL.Value != "",
|
||||
DERPServerRelayURL: cfg.DERP.Server.RelayURL.Value,
|
||||
GitAuth: gitAuth,
|
||||
GitHubOAuth: cfg.OAuth2.Github.ClientID.Value != "",
|
||||
OIDCAuth: cfg.OIDC.ClientID.Value != "",
|
||||
OIDCIssuerURL: cfg.OIDC.IssuerURL.Value,
|
||||
|
@ -44,6 +44,9 @@ type Options struct {
|
||||
GitHubOAuth bool
|
||||
OIDCAuth bool
|
||||
OIDCIssuerURL string
|
||||
Wildcard bool
|
||||
DERPServerRelayURL string
|
||||
GitAuth []GitAuth
|
||||
Prometheus bool
|
||||
STUN bool
|
||||
SnapshotFrequency time.Duration
|
||||
@ -232,6 +235,9 @@ func (r *remoteReporter) deployment() error {
|
||||
Architecture: sysInfo.Architecture,
|
||||
BuiltinPostgres: r.options.BuiltinPostgres,
|
||||
Containerized: containerized,
|
||||
Wildcard: r.options.Wildcard,
|
||||
DERPServerRelayURL: r.options.DERPServerRelayURL,
|
||||
GitAuth: r.options.GitAuth,
|
||||
Kubernetes: os.Getenv("KUBERNETES_SERVICE_HOST") != "",
|
||||
GitHubOAuth: r.options.GitHubOAuth,
|
||||
OIDCAuth: r.options.OIDCAuth,
|
||||
@ -512,7 +518,7 @@ func ConvertProvisionerJob(job database.ProvisionerJob) ProvisionerJob {
|
||||
|
||||
// ConvertWorkspaceAgent anonymizes a workspace agent.
|
||||
func ConvertWorkspaceAgent(agent database.WorkspaceAgent) WorkspaceAgent {
|
||||
return WorkspaceAgent{
|
||||
snapAgent := WorkspaceAgent{
|
||||
ID: agent.ID,
|
||||
CreatedAt: agent.CreatedAt,
|
||||
ResourceID: agent.ResourceID,
|
||||
@ -522,7 +528,18 @@ func ConvertWorkspaceAgent(agent database.WorkspaceAgent) WorkspaceAgent {
|
||||
EnvironmentVariables: agent.EnvironmentVariables.Valid,
|
||||
StartupScript: agent.StartupScript.Valid,
|
||||
Directory: agent.Directory != "",
|
||||
ConnectionTimeoutSeconds: agent.ConnectionTimeoutSeconds,
|
||||
}
|
||||
if agent.FirstConnectedAt.Valid {
|
||||
snapAgent.FirstConnectedAt = &agent.FirstConnectedAt.Time
|
||||
}
|
||||
if agent.LastConnectedAt.Valid {
|
||||
snapAgent.LastConnectedAt = &agent.LastConnectedAt.Time
|
||||
}
|
||||
if agent.DisconnectedAt.Valid {
|
||||
snapAgent.DisconnectedAt = &agent.DisconnectedAt.Time
|
||||
}
|
||||
return snapAgent
|
||||
}
|
||||
|
||||
// ConvertWorkspaceApp anonymizes a workspace app.
|
||||
@ -631,6 +648,9 @@ type Deployment struct {
|
||||
Containerized bool `json:"containerized"`
|
||||
Kubernetes bool `json:"kubernetes"`
|
||||
Tunnel bool `json:"tunnel"`
|
||||
Wildcard bool `json:"wildcard"`
|
||||
DERPServerRelayURL string `json:"derp_server_relay_url"`
|
||||
GitAuth []GitAuth `json:"git_auth"`
|
||||
GitHubOAuth bool `json:"github_oauth"`
|
||||
OIDCAuth bool `json:"oidc_auth"`
|
||||
OIDCIssuerURL string `json:"oidc_issuer_url"`
|
||||
@ -648,6 +668,10 @@ type Deployment struct {
|
||||
ShutdownAt *time.Time `json:"shutdown_at"`
|
||||
}
|
||||
|
||||
type GitAuth struct {
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
type APIKey struct {
|
||||
ID string `json:"id"`
|
||||
UserID uuid.UUID `json:"user_id"`
|
||||
@ -691,6 +715,10 @@ type WorkspaceAgent struct {
|
||||
EnvironmentVariables bool `json:"environment_variables"`
|
||||
StartupScript bool `json:"startup_script"`
|
||||
Directory bool `json:"directory"`
|
||||
FirstConnectedAt *time.Time `json:"first_connected_at"`
|
||||
LastConnectedAt *time.Time `json:"last_connected_at"`
|
||||
DisconnectedAt *time.Time `json:"disconnected_at"`
|
||||
ConnectionTimeoutSeconds int32 `json:"connection_timeout_seconds"`
|
||||
}
|
||||
|
||||
type WorkspaceApp struct {
|
||||
|
Reference in New Issue
Block a user