Anonymous Usage Tracking in OctoPrint
Starting with version 1.3.10, OctoPrint comes with a built-in plugin “Anonymous Usage Tracking” that performs anonymous usage tracking. Tracking will only take place if the plugin is enabled and you’ve decided to opt-in during initial setup (or enabled it manually afterwards, through the corresponding switch in the settings).
What data gets recorded?
All tracking requests record the OctoPrint version and a unique identifier of the OctoPrint instance (randomly created on first start and not connected in any way to personal identifiable information) to allow counting of unique instances per version. Additionally a rough location from which the request originates will be determined based on the client IP using the GeoLite2 City database and GeoIP. The client IP address itself will not be tracked.
The plugin fires tracking requests for the following events. Version numbers indicate in which OctoPrint version after 1.3.10 an event or additional data was added, also for as of yet unreleased versions. Most of the events can be switched off in the settings.
Regular ping every 15min
- Uptime of OctoPrint 1.3.11+
- Current printer state 1.6.0+
Regular pong every 24h switchable 1.3.12+
- Installed third party plugins & their version numbers
- OS name (e.g. “linux”, “windows”) 1.4.1+
- Whether OS is 32bits or 64bits 1.5.0+
- Python version 1.4.1+
- Pip version 1.4.1+
- Number of CPU cores, CPU frequency and RAM 1.4.1+
- Raspberry Pi model RPi only 1.4.1+
- OctoPi version OctoPi only 1.4.1+
Server startup switchable
- OS name (e.g. “linux”, “windows”)
- Whether OS is 32bits or 64bits 1.5.0+
- Python version
- Pip version
- Number of CPU cores, CPU frequency and RAM
- Raspberry Pi model RPi only
- OctoPi version OctoPi only
Different behaviour starting with OctoPrint 1.4.1No additional recorded data. 1.4.1+
Server shutdown switchable
No additional recorded data.
Connection to a printer switchable
- Used serial port & baudrate
- Firmware name as reported by
Start/cancel/finish of a print job switchable
- Origin of printed file (local storage vs printer’s SD card)
- One-way SHA1 hash of the file name, unique to the instance
- Elapsed time on print end
- If the system is currently throttled: current and past throttle state RPi only 1.3.10+
- If the print failed: reason of failure (cancel vs error) 1.3.10+
Errors in the communication with the printer and/or reported by the firmware switchable 1.3.11+
- Error text generated by the firmware or OctoPrint
Printer Safety Check warnings switchable 1.3.11+
- Warning type (e.g. “firmware-unsafe”)
- Name of check that triggered the warning
Install/uninstall/enabling/disabling of a plugin switchable
- Plugin identifier
- Plugin version
Update of a component switchable
- Whether the update was successful or not
- Component identifier
- From version, to version
System got throttled/unthrottled RPi only switchable 1.3.10+
- Whether there’s any current issue
- Whether there’s been any past issue
- Whether there’s a current undervoltage issue
- Whether there’s been a past undervoltage issue
- Whether there’s a current overheat issue
- Whether there’s been a past overheat issue
Onboard slicing triggered switchable 1.3.12+
- Slicer identifier
WebUI loaded switchable 1.7.0+
- Browser name & version
- OS name & version that the browser is running under
How and where does this data get evaluated? Are there any third parties involved?
No third parties do have access to the raw data. Visualizations based on this data might be shared with the public in the future to give a general overview over version distribution and similar metrics.
How can I disable tracking?
Open your OctoPrint settings, click on “Anonymous Usage Tracking”, uncheck the box that says “Enable Anonymous Usage Tracking” and save.
Where can I find the source of this plugin?
You can find the source code of the tracking plugin built into OctoPrint in
src/octoprint/plugins/tracking of the
OctoPrint source code.