Files
Beth Dean d35522aee4 Update telemetry-about.rst
updated telempostd description, kept at high level, will provide more detail in other documentation.  Also changed |CL| to |CL-ATTR| for first instance.
2018-09-27 13:02:42 -07:00

85 lines
3.1 KiB
ReStructuredText

.. _telemetry-about:
Telemetrics
###########
One of the key features of |CL-ATTR| 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.
|CL| telemetry reports system-level debug/crash information using specialized probes. The
probes monitor system tasks such as :abbr:`swupd (software updater)`, 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.
|CL| 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.
Architecture
************
|CL| 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.
.. note::
If you want to capture your own records for analysis, you must set up
your own backend server.
.. figure:: figures/telemetry-about-1.png
:scale: 75%
:alt: Clear Linux Telemetry Architecture.
Figure 1: Clear Linux Telemetry Architecture.
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 |CL| 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.
Next steps
**********
To put this concept into practice, see the following resources:
* :ref:`telemetry-enable`
* :ref:`telemetry-backend`
* `Telemetry feature description`_
.. _`Telemetry feature description`:
https://clearlinux.org/features/telemetry