Expand description
§Telemetry for the Dioxus CLI
Dioxus uses telemetry in the CLI to get insight into metrics like performance, panics, and usage of various arguments. This data helps us track down bugs and improve quality of the tooling.
Usage of telemetry in open source products can be controversial. Our goal here is to collect minimally invasive data used exclusively to improve our tooling. Github issues only show some of the problem, but many users stumble into issues which go unreported.
Our policy follows:
- minimally invasive
- anonymous
- periodic
- transparent
- easy to disable
We send a heartbeat when the CLI is executed and then rollups of logs over time.
- Heartbeat: helps us track version distribution of the CLI and critical “failures on launch” useful during new version rollouts.
- Rollups: helps us track performance and issues over time, as well as usage of various commands.
Rollups are not done in background processes, but rather directly by the dx CLI.
If you don’t run the CLI, then we won’t send any data.
We don’t collect any PII, but we do collect three “controversial” pieces of data:
- the target triple of your system (OS, arch, etc)
- a session ID which is a random number generated on each run
- a distinct ID per
.dxinstallation which is a random number generated on initial run.
The distinct ID is used to track the same installation over time, but it is not tied to any user
account or PII. Since dx doesn’t have any accounts or authentication mechanism, this ID is used
as a “best effort” identifier. If you still want to participate in telemetry but don’t want a
distinct ID, you can replace the stable_id.json file in the .dx directory with an empty string.
In the CLI, you can disable this by using any of the methods:
- installing with the “disable-telemetry” feature flag
- setting TELEMETRY=false in your env
- setting
dx config set disable-telemetry true
Structs§
- Stack
Frame - A serialized stack frame, in a format that matches PostHog’s stack frame format.
- Telemetry
Event Data - An event’s data, corresponding roughly to data collected from an individual trace.