telemetry
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Index¶
- Constants
- type APIKey
- type CLIInvocation
- type CLIOption
- type Deployment
- type GitAuth
- type License
- type Options
- type ParameterSchema
- type ProvisionerJob
- type Reporter
- type Snapshot
- type Template
- type TemplateVersion
- type User
- type Workspace
- type WorkspaceAgent
- type WorkspaceAgentStat
- type WorkspaceApp
- type WorkspaceBuild
- type WorkspaceResource
- type WorkspaceResourceMetadata
Constants¶
const (// VersionHeader is sent in every telemetry request to// report the semantic version of Coder.VersionHeader = "X-Coder-Version")
Variables¶
This section is empty.
Functions¶
This section is empty.
Types¶
typeAPIKey¶
type APIKey struct {IDstring `json:"id"`UserIDuuid.UUID `json:"user_id"`CreatedAttime.Time `json:"created_at"`LastUsedtime.Time `json:"last_used"`LoginTypedatabase.LoginType `json:"login_type"`IPAddressnet.IP `json:"ip_address"`}
funcConvertAPIKey¶
ConvertAPIKey anonymizes an API key.
typeCLIInvocation¶added inv0.23.6
typeDeployment¶
type Deployment struct {IDstring `json:"id"`Architecturestring `json:"architecture"`BuiltinPostgresbool `json:"builtin_postgres"`Containerizedbool `json:"containerized"`Kubernetesbool `json:"kubernetes"`Tunnelbool `json:"tunnel"`Wildcardbool `json:"wildcard"`DERPServerRelayURLstring `json:"derp_server_relay_url"`GitAuth []GitAuth `json:"git_auth"`GitHubOAuthbool `json:"github_oauth"`OIDCAuthbool `json:"oidc_auth"`OIDCIssuerURLstring `json:"oidc_issuer_url"`Prometheusbool `json:"prometheus"`InstallSourcestring `json:"install_source"`STUNbool `json:"stun"`OSTypestring `json:"os_type"`OSFamilystring `json:"os_family"`OSPlatformstring `json:"os_platform"`OSNamestring `json:"os_name"`OSVersionstring `json:"os_version"`CPUCoresint `json:"cpu_cores"`MemoryTotaluint64 `json:"memory_total"`MachineIDstring `json:"machine_id"`StartedAttime.Time `json:"started_at"`ShutdownAt *time.Time `json:"shutdown_at"`}
Deployment contains information about the host running Coder.
typeLicense¶added inv0.12.8
funcConvertLicense¶added inv0.12.8
ConvertLicense anonymizes a license.
typeOptions¶
type Options struct {Databasedatabase.StoreLoggerslog.Logger// URL is an endpoint to direct telemetry towards!URL *url.URLBuiltinPostgresboolDeploymentIDstringGitHubOAuthboolOIDCAuthboolOIDCIssuerURLstringWildcardboolDERPServerRelayURLstringGitAuth []GitAuthPrometheusboolSTUNboolSnapshotFrequencytime.DurationTunnelbool}
typeParameterSchema¶
typeProvisionerJob¶
type ProvisionerJob struct {IDuuid.UUID `json:"id"`OrganizationIDuuid.UUID `json:"organization_id"`InitiatorIDuuid.UUID `json:"initiator_id"`CreatedAttime.Time `json:"created_at"`UpdatedAttime.Time `json:"updated_at"`StartedAt *time.Time `json:"started_at,omitempty"`CanceledAt *time.Time `json:"canceled_at,omitempty"`CompletedAt *time.Time `json:"completed_at,omitempty"`Errorstring `json:"error"`Typedatabase.ProvisionerJobType `json:"type"`}
funcConvertProvisionerJob¶
func ConvertProvisionerJob(jobdatabase.ProvisionerJob)ProvisionerJob
ConvertProvisionerJob anonymizes a provisioner job.
typeReporter¶
type Reporter interface {// Report sends a snapshot to the telemetry server.// The contents of the snapshot can be a partial representation of the// database. For example, if a new user is added, a snapshot can// contain just that user entry.Report(snapshot *Snapshot)Close()}
Reporter sends data to the telemetry server.
typeSnapshot¶
type Snapshot struct {DeploymentIDstring `json:"deployment_id"`APIKeys []APIKey `json:"api_keys"`ProvisionerJobs []ProvisionerJob `json:"provisioner_jobs"`Licenses []License `json:"licenses"`Templates []Template `json:"templates"`TemplateVersions []TemplateVersion `json:"template_versions"`Users []User `json:"users"`Workspaces []Workspace `json:"workspaces"`WorkspaceApps []WorkspaceApp `json:"workspace_apps"`WorkspaceAgents []WorkspaceAgent `json:"workspace_agents"`WorkspaceAgentStats []WorkspaceAgentStat `json:"workspace_agent_stats"`WorkspaceBuilds []WorkspaceBuild `json:"workspace_build"`WorkspaceResources []WorkspaceResource `json:"workspace_resources"`WorkspaceResourceMetadata []WorkspaceResourceMetadata `json:"workspace_resource_metadata"`CLIInvocations []CLIInvocation `json:"cli_invocations"`}
Snapshot represents a point-in-time anonymized database dump.Data is aggregated by latest on the server-side, so partial datacan be sent without issue.
typeTemplate¶
type Template struct {IDuuid.UUID `json:"id"`CreatedByuuid.UUID `json:"created_by"`CreatedAttime.Time `json:"created_at"`UpdatedAttime.Time `json:"updated_at"`OrganizationIDuuid.UUID `json:"organization_id"`Deletedbool `json:"deleted"`ActiveVersionIDuuid.UUID `json:"active_version_id"`Namestring `json:"name"`Descriptionbool `json:"description"`}
funcConvertTemplate¶
ConvertTemplate anonymizes a template.
typeTemplateVersion¶
type TemplateVersion struct {IDuuid.UUID `json:"id"`CreatedAttime.Time `json:"created_at"`TemplateID *uuid.UUID `json:"template_id,omitempty"`OrganizationIDuuid.UUID `json:"organization_id"`JobIDuuid.UUID `json:"job_id"`}
funcConvertTemplateVersion¶
func ConvertTemplateVersion(versiondatabase.TemplateVersion)TemplateVersion
ConvertTemplateVersion anonymizes a template version.
typeUser¶
typeWorkspace¶
type Workspace struct {IDuuid.UUID `json:"id"`OrganizationIDuuid.UUID `json:"organization_id"`OwnerIDuuid.UUID `json:"owner_id"`TemplateIDuuid.UUID `json:"template_id"`CreatedAttime.Time `json:"created_at"`Deletedbool `json:"deleted"`Namestring `json:"name"`AutostartSchedulestring `json:"autostart_schedule"`}
funcConvertWorkspace¶
ConvertWorkspace anonymizes a workspace.
typeWorkspaceAgent¶
type WorkspaceAgent struct {IDuuid.UUID `json:"id"`CreatedAttime.Time `json:"created_at"`ResourceIDuuid.UUID `json:"resource_id"`InstanceAuthbool `json:"instance_auth"`Architecturestring `json:"architecture"`OperatingSystemstring `json:"operating_system"`EnvironmentVariablesbool `json:"environment_variables"`StartupScriptbool `json:"startup_script"`Directorybool `json:"directory"`FirstConnectedAt *time.Time `json:"first_connected_at"`LastConnectedAt *time.Time `json:"last_connected_at"`DisconnectedAt *time.Time `json:"disconnected_at"`ConnectionTimeoutSecondsint32 `json:"connection_timeout_seconds"`ShutdownScriptbool `json:"shutdown_script"`Subsystemstring `json:"subsystem"`}
funcConvertWorkspaceAgent¶
func ConvertWorkspaceAgent(agentdatabase.WorkspaceAgent)WorkspaceAgent
ConvertWorkspaceAgent anonymizes a workspace agent.
typeWorkspaceAgentStat¶added inv0.20.0
type WorkspaceAgentStat struct {UserIDuuid.UUID `json:"user_id"`TemplateIDuuid.UUID `json:"template_id"`WorkspaceIDuuid.UUID `json:"workspace_id"`AggregatedFromtime.Time `json:"aggregated_from"`AgentIDuuid.UUID `json:"agent_id"`RxBytesint64 `json:"rx_bytes"`TxBytesint64 `json:"tx_bytes"`ConnectionLatency50float64 `json:"connection_latency_50"`ConnectionLatency95float64 `json:"connection_latency_95"`SessionCountVSCodeint64 `json:"session_count_vscode"`SessionCountJetBrainsint64 `json:"session_count_jetbrains"`SessionCountReconnectingPTYint64 `json:"session_count_reconnecting_pty"`SessionCountSSHint64 `json:"session_count_ssh"`}
funcConvertWorkspaceAgentStat¶added inv0.20.0
func ConvertWorkspaceAgentStat(statdatabase.GetWorkspaceAgentStatsRow)WorkspaceAgentStat
ConvertWorkspaceAgentStat anonymizes a workspace agent stat.
typeWorkspaceApp¶
type WorkspaceApp struct {IDuuid.UUID `json:"id"`CreatedAttime.Time `json:"created_at"`AgentIDuuid.UUID `json:"agent_id"`Iconstring `json:"icon"`Subdomainbool `json:"subdomain"`}
funcConvertWorkspaceApp¶
func ConvertWorkspaceApp(appdatabase.WorkspaceApp)WorkspaceApp
ConvertWorkspaceApp anonymizes a workspace app.
typeWorkspaceBuild¶
type WorkspaceBuild struct {IDuuid.UUID `json:"id"`CreatedAttime.Time `json:"created_at"`WorkspaceIDuuid.UUID `json:"workspace_id"`TemplateVersionIDuuid.UUID `json:"template_version_id"`JobIDuuid.UUID `json:"job_id"`BuildNumberuint32 `json:"build_number"`}
funcConvertWorkspaceBuild¶
func ConvertWorkspaceBuild(builddatabase.WorkspaceBuild)WorkspaceBuild
ConvertWorkspaceBuild anonymizes a workspace build.
typeWorkspaceResource¶
type WorkspaceResource struct {IDuuid.UUID `json:"id"`JobIDuuid.UUID `json:"job_id"`Transitiondatabase.WorkspaceTransition `json:"transition"`Typestring `json:"type"`InstanceTypestring `json:"instance_type"`}
funcConvertWorkspaceResource¶
func ConvertWorkspaceResource(resourcedatabase.WorkspaceResource)WorkspaceResource
ConvertWorkspaceResource anonymizes a workspace resource.
typeWorkspaceResourceMetadata¶added inv0.8.6
type WorkspaceResourceMetadata struct {ResourceIDuuid.UUID `json:"resource_id"`Keystring `json:"key"`Sensitivebool `json:"sensitive"`}
funcConvertWorkspaceResourceMetadata¶added inv0.8.6
func ConvertWorkspaceResourceMetadata(metadatadatabase.WorkspaceResourceMetadatum)WorkspaceResourceMetadata
ConvertWorkspaceResourceMetadata anonymizes workspace metadata.