This is documentation for the next version of Grafana documentation. For the latest stable release, go to the latest version.
Understand anonymous gcx usage collection
gcx reports anonymous usage statistics about itself to Grafana Labs. This data is used to understand which commands and flags are used most, where commands fail, and which commands people try that don’t exist, so we can make the product better.
The statistics describe only the shape of usage, including command path, and flag names. Positional argument values and flag values are never sent. Some server-side enrichment is also performed on the usage statistics exported - see Server-side enrichment for details.
Note
Usage statistics reporting is enabled by default. See the Opt out section below for guidance on how to turn off usage reporting.
How anonymity is guaranteed
The only identifier is a device_id field: a randomly generated UUID created on first use and stored at $XDG_STATE_HOME/gcx/device-id. It identifies an installation of gcx, not a person. It’s random, not derived from your hardware or account.
Understand which data is collected
Each gcx event contains the following properties:
When the invocation fails to parse, these additional fields are set. They capture what was attempted so the team can understand the differences between what users expect and what exists:
Invocations that report nothing
Some invocations never emit an event:
- Shell completion — the completion machinery runs on every tab-press and carries no usage signal.
gcx version- The
gcx telemetrycommand itself — the command that controls reporting doesn’t report on itself. - Cancelled invocations — pressing Ctrl-C emits nothing.
Server-side enrichment
Reports are received by Grafana’s usage-stats service, the same service that receives anonymous usage reports from Grafana, Loki, Tempo, and Mimir. On receipt, the service adds two pieces of information derived from the connection:
- A coarse geographic region (for example, a country or subdivision), taken from headers added by the CDN edge.
- The network organization name from a whois lookup of the connecting IP address. For CLI traffic this typically resolves to your ISP or employer’s network.
The connecting IP address is not stored in the usage event.
Inspect what would be sent
To see exactly what gcx would report for an invocation, set GCX_TELEMETRY=log. The event is printed to stderr and nothing is sent:
GCX_TELEMETRY=log gcx dashboards listOpt out
You can control usage statistics reporting three ways:
GCX_TELEMETRYenvironment variable: Set toenabled,disabled, orlog. Takes precedence over everything else:
export GCX_TELEMETRY=disabledDO_NOT_TRACKenvironment variable: Set to1ortrueto disable reporting, following the cross-tool DO_NOT_TRACK convention. Overridden byGCX_TELEMETRY.Configuration file: Add a top-level
diagnosticsblock to yourgcxconfiguration file, withtelemetryset toenabled,disabled, orlog:
diagnostics:
telemetry: disabledOpting out disables reporting entirely. No event is constructed and nothing is sent.


