Skip to content

disable or remove phone home diagnostics/telemetry #48

@iliana

Description

@iliana

CockroachDB phones home to two endpoints:

// updatesURL is the URL used to check for new versions. Can be nil if an empty
// URL is set.
var updatesURL *url.URL
const defaultUpdatesURL = `https://register.cockroachdb.com/api/clusters/updates`
// reportingURL is the URL used to report diagnostics/telemetry. Can be nil if
// an empty URL is set.
var reportingURL *url.URL
const defaultReportingURL = `https://register.cockroachdb.com/api/clusters/report`
func init() {
var err error
updatesURL, err = url.Parse(
envutil.EnvOrDefaultString("COCKROACH_UPDATE_CHECK_URL", defaultUpdatesURL),
)
if err != nil {
panic(err)
}
reportingURL, err = url.Parse(
envutil.EnvOrDefaultString("COCKROACH_USAGE_REPORT_URL", defaultReportingURL),
)
if err != nil {
panic(err)
}
}

The web console also phones home in a few places, identified by COCKROACHLABS_ADDR:

export function versionCheck(
request: VersionCheckRequest,
timeout?: moment.Duration,
): Promise<VersionList> {
return timeoutFetch(
`${COCKROACHLABS_ADDR}/api/clusters/updates?uuid=${request.clusterID}&version=${request.buildtag}`,
null,
{ timeout },
);
}

We want to remove this for two reasons:

  1. In the Oxide product, CockroachDB runs in a zone with no external network reachability. There's no point to spending cycles on attempting to phone home.
  2. It honestly seems rude to send CRL telemetry for a build of a four-year-old version they have nothing to do with and no control over, particularly given the number of instances we start (order of ~1000) during a normal integration test run of the Oxide control plane.

It is simple enough to remove the URLs or replace them with invalid hostnames, but I think it'd be better to delete the code altogether; no sense in maintaining what you can't or won't use.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions