One of the key features of Clear Linux* OS is telemetry, which is used to monitor system health. Telemetry enables developers to observe and proactively address issues before end users are impacted.
Telemetrics is a combination word made from:
- Telemetry which is sensing and reporting data.
- Analytics which is using visualization and statistical inferencing to make sense of the reported data.
Clear Linux OS telemetry reports system-level debug/crash information using specialized probes. The probes monitor system tasks such as swupd, kernel oops, machine error checks, and BIOS error report table for unhandled hardware failures. Telemetry enables real-time issue reporting to allow system developers to quickly focus on an issue and monitor corrective actions.
Clear Linux OS telemetry is fully customizable and can be used during software development for debugging purposes. You can use libtelemetry in your code to create custom telemetry records. You can also use telem-record-gen in script files or call it from another program.
Clear Linux OS telemetry has two fundamental components, which are shown in figure 1:
Client: generates and delivers records to the backend server via the network.
Backend: captures records sent from the client and displays the cumulative content through a specialized interface.
If you want to capture your own records for analysis, you must set up your own backend server.
The telemetry client provides the front end of a complete telemetrics solution and includes the following components:
- telemprobd, a daemon that prepares the telemetry records and spools them on disk prior to delivery
- telempostd, a daemon that sends the records to the telemetry backend server or leaves them on disk until deleting after the record expires.
- probes, that collect specific types of data from the operating system.
- libtelemetry, that telemetrics probes use to create telemetrics records and send them to the telemprobd daemon for further processing.
The telemetry backend provides the server-side component of a complete telemetrics solution and consists of:
- Nginx web server.
- Two Flask apps:
- Collector, an ingestion web app for records received from telemetrics-client probes.
- TelemetryUI, a web app that exposes several views to visualize the telemetry data and also provides a REST API to perform queries.
- PostgreSQL as the underlying database server.
The default telemetry backend server reports back to the Clear Linux OS development team and is not viewable outside the Intel firewall. If you want to collect your own records, then you must set up your own telemetry backend server.
To put this concept into practice, see the following resources: