Telemetry

The Clear Linux* project offers a telemetry solution that allows rapid detection and response to quality issues in the field. The telemetry bundle can be included upon initial installation or it can be enabled later. This solution is not installed by default in any of the published Clear Linux images. After the telemetry solution is enabled, it records events of interest and reports them back to the development team. You can also redirect where records go if you wish to collect the information yourself. The solution adheres to Intel’s privacy policies regarding the collection and use of Personally Identifiable Information (PII) and is open source. Specifically, no intentionally identifiable information about the user or system owner is collected.

Design: The telemetry solution has two major components: probes and the local daemon. The probes detect events of interest, create records with the relevant event details, and send the records to the local daemon for delivery. The daemon uses industry-standard protocols and encryption (HTTPS) to deliver the record to the analytics back-end. We designed the system carefully to be non-blocking and low-impact with configurable parameters for rate limiting.

High velocity: Telemetry helps us see problems as they happen in the field and react much more swiftly. Take the following hypothetical example: Telemetry could show emacs often segfaulting in Clear Linux release 3050. Further analysis could reveal a recent change in a shared library used by emacs. We could root-cause and fix the issue or roll back the offending library. In subsequent releases, we could confirm the fix when we no longer receive records with that crash.

Data Minimization: Clear Linux prides itself on being a good open source citizen. Consequently, we collect a minimal amount of information and employ industry standards and best known methods such as cherry picking and anonymizing. Intel will not use this information to attempt to identify any individual end user.

Extensible: The Clear Linux probes use a very simple API, libtelemetry.so, to create records and deliver them to the local daemon for delivery. Because collection and reporting are separate, the telemetry tool is flexible and can be adapted to different use cases. For example, the software update tool only generates telemetry regarding the outcomes of update operations.