Skip to Content
CLIAdvancedTelemetry

Telemetry

CloudQuery CLI and integrations collect both anonymous and identifiable usage data. We use the anonymous and identifiable usage data to help us improve the product, while we only use the identifiable information for billing. This page describes what data is collected and how to control it.

Identifiable Data

As part of the commercial offering, Premium CloudQuery integrations periodically send data to the CloudQuery licensing server to validate that the user or team has a valid subscription. The data in these requests include:

  • plugin_name: the full name of the integration (including the team that owns the integration)
  • plugin_kind: whether the integration is a source or destination integration
  • table_name: the name of the table being synced. This is only sent for sources whose tables are statically defined. Any source that has dynamic table names (for example all database sources) will not send this field.
  • resource_count: the number of rows being synced

You cannot disable this data collection; the commercial offering requires it. If you have a use case that requires this data not be sent, please contact the Sales team to discuss your requirements.

Telemetry Data

By default, the CloudQuery CLI collects usage data. There are two types of data we collect: errors and stats. These are described below. The Controlling what is sent section describes how to control what you send to CloudQuery.

Errors

Errors are stack traces sent whenever a panic occurs in the CLI or an official integration. Having this data allows us to be notified when there is a bug that needs to be prioritized.

Stats

Anonymous Stats

Anonymous stats are numbers about the sync that was performed, such as the number of errors and number of resources fetched, as well as the integration versions used. These are sent at the end of a sync. They contain no identifying information. We use this data to understand which integrations are being used and how much, which helps guide our roadmap and development efforts. We also anonymously track commands that run, and if they result in an error. This helps us understand how the CLI is being used and how many errors are being encountered.

Identifiable Stats

Identifiable stats are the same as anonymous stats, but they also include a unique identifier for the user or team. Identifiable stats are collected when the CLI is authenticated via cloudquery login or using an API key. We track the following user event types, Login, Sync Started and Sync Finished. We use this information to understand usage patterns, which helps us improve the product and our support.

Cloud account identifiers

For a limited period, the CLI reports how many distinct cloud accounts a sync covers. This is a temporary collection that supports pricing research, is off by default, and is enabled per team by CloudQuery.

When it is enabled, the CLI reads one column per row during a sync and attaches the hashed distinct values to the sync_run_completed event:

Source integrationColumn
awsaccount_id
gcpproject_id
azuresubscription_id
k8scloud_cluster_id
githuborg, and id on github_repositories
cloudflareaccount_id

Each value is hashed with HMAC-SHA256 before it leaves your environment, keyed with a salt unique to your team. Raw account names and identifiers are never sent. A single event carries at most 500 hashes per identifier type, alongside the distinct count.

Collection applies to syncs run by the CLI. Syncs that write only to CloudQuery Platform are not included.

To opt out, set the telemetry level to none or errors, as described below.

Controlling what is sent

The CLI supports two methods of controlling the telemetry that gets sent to CloudQuery.

Command-line Flag

The --telemetry-level can be passed to the cloudquery CLI. It supports four options: none, stats, errors, all (default).

Environment Variable

A CQ_TELEMETRY_LEVEL environment variable can also be used to control the telemetry being sent. It supports the same options as the --telemetry-level flag.

Deprecated: The CQ_NO_TELEMETRY environment variable is deprecated. If you are using it, switch to CQ_TELEMETRY_LEVEL=none instead. Setting CQ_NO_TELEMETRY to any value currently behaves the same as CQ_TELEMETRY_LEVEL=none, but it will be removed in a future release.

More Information

See the cloudquery command reference for all available command-line options.

Next Steps

Was this page helpful?

Last updated on