Skip to content

Commit 4872d7b

Browse files
authored
cleanup Intel RDT readme (influxdata#8268)
* cleanup Intel RDT readme * Update intel_rdt.go
1 parent d5f0a12 commit 4872d7b

File tree

2 files changed

+51
-44
lines changed

2 files changed

+51
-44
lines changed

plugins/inputs/intel_rdt/README.md

+50-43
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,26 @@
11
# Intel RDT Input Plugin
2-
The intel_rdt plugin collects information provided by monitoring features of
3-
Intel Resource Director Technology (Intel(R) RDT) like Cache Monitoring Technology (CMT),
4-
Memory Bandwidth Monitoring (MBM), Cache Allocation Technology (CAT) and Code
5-
and Data Prioritization (CDP) Technology provide the hardware framework to monitor
6-
and control the utilization of shared resources, like last level cache, memory bandwidth.
7-
These Technologies comprise Intel’s Resource Director Technology (RDT).
8-
As multithreaded and multicore platform architectures emerge,
9-
running workloads in single-threaded, multithreaded, or complex virtual machine environment,
10-
the last level cache and memory bandwidth are key resources to manage. Intel introduces CMT,
11-
MBM, CAT and CDP to manage these various workloads across shared resources.
12-
13-
To gather Intel RDT metrics plugin uses _pqos_ cli tool which is a part of [Intel(R) RDT Software Package](https://github.com/intel/intel-cmt-cat).
2+
The `intel_rdt` plugin collects information provided by monitoring features of
3+
the Intel Resource Director Technology (Intel(R) RDT). Intel RDT provides the hardware framework to monitor
4+
and control the utilization of shared resources (ex: last level cache, memory bandwidth).
5+
6+
### About Intel RDT
7+
Intel’s Resource Director Technology (RDT) framework consists of:
8+
- Cache Monitoring Technology (CMT)
9+
- Memory Bandwidth Monitoring (MBM)
10+
- Cache Allocation Technology (CAT)
11+
- Code and Data Prioritization (CDP)
12+
13+
As multithreaded and multicore platform architectures emerge, the last level cache and
14+
memory bandwidth are key resources to manage for running workloads in single-threaded,
15+
multithreaded, or complex virtual machine environments. Intel introduces CMT, MBM, CAT
16+
and CDP to manage these workloads across shared resources.
17+
18+
### Prerequsities - PQoS Tool
19+
To gather Intel RDT metrics, the `intel_rdt` plugin uses _pqos_ cli tool which is a
20+
part of [Intel(R) RDT Software Package](https://github.com/intel/intel-cmt-cat).
1421
Before using this plugin please be sure _pqos_ is properly installed and configured regarding that the plugin
1522
run _pqos_ to work with `OS Interface` mode. This plugin supports _pqos_ version 4.0.0 and above.
16-
Be aware pqos tool needs root privileges to work properly.
23+
Note: pqos tool needs root privileges to work properly.
1724

1825
Metrics will be constantly reported from the following `pqos` commands within the given interval:
1926

@@ -46,29 +53,29 @@ More about Intel RDT: https://www.intel.com/content/www/us/en/architecture-and-t
4653
### Configuration
4754
```toml
4855
# Read Intel RDT metrics
49-
[[inputs.IntelRDT]]
50-
## Optionally set sampling interval to Nx100ms.
51-
## This value is propagated to pqos tool. Interval format is defined by pqos itself.
52-
## If not provided or provided 0, will be set to 10 = 10x100ms = 1s.
53-
# sampling_interval = "10"
56+
[[inputs.intel_rdt]]
57+
## Optionally set sampling interval to Nx100ms.
58+
## This value is propagated to pqos tool. Interval format is defined by pqos itself.
59+
## If not provided or provided 0, will be set to 10 = 10x100ms = 1s.
60+
# sampling_interval = "10"
5461

55-
## Optionally specify the path to pqos executable.
56-
## If not provided, auto discovery will be performed.
57-
# pqos_path = "/usr/local/bin/pqos"
62+
## Optionally specify the path to pqos executable.
63+
## If not provided, auto discovery will be performed.
64+
# pqos_path = "/usr/local/bin/pqos"
5865

59-
## Optionally specify if IPC and LLC_Misses metrics shouldn't be propagated.
60-
## If not provided, default value is false.
61-
# shortened_metrics = false
62-
63-
## Specify the list of groups of CPU core(s) to be provided as pqos input.
64-
## Mandatory if processes aren't set and forbidden if processes are specified.
65-
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
66-
# cores = ["0-3"]
67-
68-
## Specify the list of processes for which Metrics will be collected.
69-
## Mandatory if cores aren't set and forbidden if cores are specified.
70-
## e.g. ["qemu", "pmd"]
71-
# processes = ["process"]
66+
## Optionally specify if IPC and LLC_Misses metrics shouldn't be propagated.
67+
## If not provided, default value is false.
68+
# shortened_metrics = false
69+
70+
## Specify the list of groups of CPU core(s) to be provided as pqos input.
71+
## Mandatory if processes aren't set and forbidden if processes are specified.
72+
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
73+
# cores = ["0-3"]
74+
75+
## Specify the list of processes for which Metrics will be collected.
76+
## Mandatory if cores aren't set and forbidden if cores are specified.
77+
## e.g. ["qemu", "pmd"]
78+
# processes = ["process"]
7279
```
7380

7481
### Exposed metrics
@@ -78,20 +85,20 @@ More about Intel RDT: https://www.intel.com/content/www/us/en/architecture-and-t
7885
| MBR | Memory Bandwidth on Remote NUMA Node | Memory bandwidth utilization by the relevant CPU core/process on the remote NUMA memory channel |
7986
| MBT | Total Memory Bandwidth | Total memory bandwidth utilized by a CPU core/process on local and remote NUMA memory channels |
8087
| LLC | L3 Cache Occupancy | Total Last Level Cache occupancy by a CPU core/process |
81-
| *LLC_Misses | L3 Cache Misses | Total Last Level Cache misses by a CPU core/process |
82-
| *IPC | Instructions Per Cycle | Total instructions per cycle executed by a CPU core/process |
88+
| LLC_Misses* | L3 Cache Misses | Total Last Level Cache misses by a CPU core/process |
89+
| IPC* | Instructions Per Cycle | Total instructions per cycle executed by a CPU core/process |
8390

8491
*optional
8592

8693
### Troubleshooting
87-
Pointing to non-existing core will lead to throwing an error by _pqos_ and plugin will not work properly.
88-
Be sure to check if provided core number exists within desired system.
94+
Pointing to non-existing cores will lead to throwing an error by _pqos_ and the plugin will not work properly.
95+
Be sure to check provided core number exists within desired system.
8996

90-
Be aware reading Intel RDT metrics by _pqos_ cannot be done simultaneously on the same resource.
91-
So be sure to not use any other _pqos_ instance which is monitoring the same cores or PIDs within working system.
92-
Also there is no possibility to monitor same cores or PIDs on different groups.
97+
Be aware, reading Intel RDT metrics by _pqos_ cannot be done simultaneously on the same resource.
98+
Do not use any other _pqos_ instance that is monitoring the same cores or PIDs within the working system.
99+
It is not possible to monitor same cores or PIDs on different groups.
93100

94-
Pids association for the given process could be manually checked by `pidof` command. E.g:
101+
PIDs associated for the given process could be manually checked by `pidof` command. E.g:
95102
```
96103
pidof PROCESS
97104
```
@@ -105,4 +112,4 @@ where `PROCESS` is process name.
105112
> rdt_metric,cores=12\,19,host=r2-compute-20,name=MBL,process=top value=0 1598962030000000000
106113
> rdt_metric,cores=12\,19,host=r2-compute-20,name=MBR,process=top value=0 1598962030000000000
107114
> rdt_metric,cores=12\,19,host=r2-compute-20,name=MBT,process=top value=0 1598962030000000000
108-
```
115+
```

plugins/inputs/intel_rdt/intel_rdt.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ func makeRange(min, max int) []int {
541541
}
542542

543543
func init() {
544-
inputs.Add("IntelRDT", func() telegraf.Input {
544+
inputs.Add("intel_rdt", func() telegraf.Input {
545545
rdt := IntelRDT{}
546546
pathPqos, _ := exec.LookPath("pqos")
547547
if len(pathPqos) > 0 {

0 commit comments

Comments
 (0)