docs/telemetry.md
The Telemetry plugin is a feature in Kubo that collects anonymized usage data to help the development team better understand how the software is used, identify areas for improvement, and guide future feature development.
This data is not personally identifiable and is used solely for the purpose of improving the Kubo project.
The behavior of the Telemetry plugin is controlled via the environment variable IPFS_TELEMETRY and optionally via the Plugins.Plugins.telemetry.Config.Mode in the IPFS config file.
| Mode | Description |
|---|---|
on | Default. Telemetry is enabled. Data is sent periodically. |
off | Telemetry is disabled. No data is sent. Any existing telemetry UUID file is removed. |
auto | Like on, but logs an informative message about the telemetry and gives user 15 minutes to opt-out before first collection. This mode is automatically used on the first run when IPFS_TELEMETRY is not set and telemetry UUID is not found (not generated yet). The informative message is only shown once. |
You can set the mode in your environment:
export IPFS_TELEMETRY="off"
Or in your IPFS config file:
{
"Plugins": {
"Plugins": {
"telemetry": {
"Config": {
"Mode": "off"
}
}
}
}
}
The telemetry plugin collects the following anonymized data:
Bootstrap peers are configuredRouting.Type configured for the nodeRouting.AcceleratedDHTClient is enabledRouting.DelegatedRouters configuredAutoConf.Enabled is setAutoConf.URL is configuredDiscovery.MDNS.Enabled is setProvide.Strategy configuredProvide.DHT.SweepEnabled is setProvide.DHT.Interval is configuredProvide.DHT.MaxWorkers is configuredAutoNAT.ServiceMode configuredSwarm.EnableHolePunching is enabledAutoTLS.AutoWSS is enabledAutoTLS.DomainSuffix is configuredData is organized in the LogEvent struct at plugin/plugins/telemetry/telemetry.go. This struct is the authoritative source of truth for all telemetry data, including privacy-preserving buckets for repository size and uptime. Note that this documentation may not always be up-to-date - refer to the code for the current implementation.
All data collected is:
The telemetry UUID is stored in the IPFS repo folder and is used to identify the node across runs, but it does not contain any personal information. When you opt-out, this UUID file is automatically removed to ensure complete privacy.
By enabling telemetry, you are helping the Kubo team improve the software for the entire community. The data is used to:
You can always disable telemetry at any time if you change your mind.
If you're testing telemetry locally, you can change the endpoint by setting the Endpoint field in the config:
{
"Plugins": {
"Plugins": {
"telemetry": {
"Config": {
"Mode": "on",
"Endpoint": "http://localhost:8080"
}
}
}
}
}
This allows you to capture and inspect telemetry data locally.
For more information, see: