blob: 8b7994b641467dcfec19cf01e3ceb62a02e4d783 [file] [log] [blame] [view] [edit]
# intel_pmt_plugin
## Overview
`intel_pmt_plugin` is an external collector plugin for Netdata. It retrieves
telemetry data from Intel Platform Monitoring Technology (PMT) hardware
capabilities and displays it on Netdata charts.
The plugin primarily parses periodic raw PMT data that is being sampled by heartd
and decodes it using `libpmt`. Alternatively, it can interface with the ChromiumOS
`pmt_tool` to sample data if heartd is not configured by the user.
This plugin exposes these metrics to Netdata for real-time monitoring and
visualization through the [Netdata External Plugins API].
[Netdata External Plugin API]: https://learn.netdata.cloud/docs/developer-and-contributor-corner/external-plugins
## Prerequisites
To use this plugin, the target system must meet the following requirements:
1. **Hardware**: An Intel platform that supports Intel PMT (e.g., Meteor Lake).
2. **Kernel**: A Linux kernel with Intel PMT drivers enabled (e.g.,
`intel_pmt_class`).
3. **Software**:
* `heartd`: (Recommended) System service for periodic health monitoring.
* `pmt_tool`: Utility for on-demand sampling of Intel PMT data,
used as a fallback.
* `netdata`: The monitoring agent.
## Features
* **Periodic Ingestion**: Ingests raw PMT data in real time as it is being
sampled by `heartd` periodically.
* **Libmpt Integration**: Decodes raw data sampled by `heartd` using
`libpmt/decoder`.
* **Fallback Mode**: Can invoke `pmt_tool` to sample data if `heartd` is
unavailable.
* **Dynamic Charts**: Creates charts dynamically based on the telemetry
regions and fields exposed by the hardware.
* **Low Overhead**: Efficiently processes data to minimize system impact.
## Installation
In a standard ChromiumOS build environment, this plugin is typically installed
alongside `pmt_tool`.
To manually install or enable it for Netdata:
1. Ensure the plugin script/binary is executable:
```
chmod +x intel_pmt.plugin
```
2. Place the plugin in the Netdata plugins directory (typically
`/usr/libexec/netdata/plugins.d/` or
`/usr/local/etc/netdata/custom-plugins.d/`).
3. Ensure the `netdata` user has permissions to execute `pmt_tool` and access
the necessary system files (usually under `/sys/class/intel_pmt`).
For example, run netdata as root: `netdata -u root` or `start_netdata.sh`.
## Configuration
### Command-line Options
The plugin supports the following command-line options to configure the data
source:
* `--source`: Specifies the data source format.
* `heartd`: Reads periodic raw data sampled by the `heartd` service. This
is the recommended mode.
* `csv`: Reads data from a CSV file or invokes `pmt_tool` to generate it.
(Default)
The following options are only applicable if `--source=csv`.
* `--path`: Specifies the path to the input file (e.g., CSV file).
* `--seconds`: Sampling interval in seconds when using `pmt_tool`.
* `--records`: Number of records to collect when using `pmt_tool`.
### Enabling the Plugin
Netdata generally auto-detects external plugins found in its plugins directory.
To explicitly enable or disable it, edit `/usr/local/etc/netdata/netdata.conf`:
```
[plugins]
intel_pmt_plugin = yes
```