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 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+
    • Unlocked achievements switchable 1.10.0+
  • 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
    • OctoPi-UpToDate build OctoPi-UpToDate build only 1.8.0+
    Different behaviour starting with OctoPrint 1.4.1 No 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 M115
  • 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
  • Achievement unlocked switchable 1.10.0+

    • Achievement identifier
  • 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?

The data gets recorded and evaluated on tracking.octoprint.org. It doesn’t leave that server and gets evaluated in place through a local ELK stack and Grafana install.

No third parties do have access to the raw data. Some exports of queries based on this data are available here. Visualizations based on these exports are provided on data.octoprint.org.

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.

Please also see the Privacy Policy.