docs(inputs): Add plugin metadata and update description for g* to i* (#16486)
This commit is contained in:
parent
c38792949d
commit
e839ad17de
|
|
@ -1,9 +1,18 @@
|
||||||
# GitHub Input Plugin
|
# GitHub Input Plugin
|
||||||
|
|
||||||
Gather repository information from [GitHub][] hosted repositories.
|
This plugin gathers information from projects and repositories hosted on
|
||||||
|
[GitHub][github].
|
||||||
|
|
||||||
**Note:** Telegraf also contains the [webhook][] input which can be used as an
|
> [!NOTE]
|
||||||
alternative method for collecting repository information.
|
> Telegraf also contains the [webhook input plugin][webhook] which can be used
|
||||||
|
> as an alternative method for collecting repository information.
|
||||||
|
|
||||||
|
⭐ Telegraf v1.11.0
|
||||||
|
🏷️ applications
|
||||||
|
💻 all
|
||||||
|
|
||||||
|
[github]: https://www.github.com
|
||||||
|
[webhook]: /plugins/inputs/webhooks/github
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -60,11 +69,11 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
- stars (int)
|
- stars (int)
|
||||||
- watchers (int)
|
- watchers (int)
|
||||||
|
|
||||||
When the [internal][] input is enabled:
|
When the [internal][internal] input is enabled:
|
||||||
|
|
||||||
- internal_github
|
- internal_github
|
||||||
- tags:
|
- tags:
|
||||||
- access_token - An obfuscated reference to the configured access token or "Unauthenticated"
|
- access_token - obfuscated reference to access token or "Unauthenticated"
|
||||||
- fields:
|
- fields:
|
||||||
- limit - How many requests you are limited to (per hour)
|
- limit - How many requests you are limited to (per hour)
|
||||||
- remaining - How many requests you have remaining (per hour)
|
- remaining - How many requests you have remaining (per hour)
|
||||||
|
|
@ -88,6 +97,4 @@ github_repository,language=Go,license=MIT\ License,name=telegraf,owner=influxdat
|
||||||
internal_github,access_token=Unauthenticated closed_pull_requests=3522i,rate_limit_remaining=59i,rate_limit_limit=60i,rate_limit_blocks=0i,open_pull_requests=260i 1552653551000000000
|
internal_github,access_token=Unauthenticated closed_pull_requests=3522i,rate_limit_remaining=59i,rate_limit_limit=60i,rate_limit_blocks=0i,open_pull_requests=260i 1552653551000000000
|
||||||
```
|
```
|
||||||
|
|
||||||
[GitHub]: https://www.github.com
|
|
||||||
[internal]: /plugins/inputs/internal
|
[internal]: /plugins/inputs/internal
|
||||||
[webhook]: /plugins/inputs/webhooks/github
|
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
# gNMI (gRPC Network Management Interface) Input Plugin
|
# gNMI (gRPC Network Management Interface) Input Plugin
|
||||||
|
|
||||||
This plugin consumes telemetry data based on the [gNMI][1] Subscribe method. TLS
|
This plugin consumes telemetry data based on [gNMI][gnmi] subscriptions. TLS is
|
||||||
is supported for authentication and encryption. This input plugin is
|
supported for authentication and encryption. This plugin is vendor-agnostic and
|
||||||
vendor-agnostic and is supported on any platform that supports the gNMI spec.
|
is supported on any platform that supports the gNMI specification.
|
||||||
|
|
||||||
For Cisco devices:
|
For Cisco devices the plugin has been optimized to support gNMI telemetry as
|
||||||
|
produced by Cisco IOS XR (64-bit) version 6.5.1, Cisco NX-OS 9.3 and
|
||||||
|
Cisco IOS XE 16.12 and later.
|
||||||
|
|
||||||
It has been optimized to support gNMI telemetry as produced by Cisco IOS XR
|
⭐ Telegraf v1.15.0
|
||||||
(64-bit) version 6.5.1, Cisco NX-OS 9.3 and Cisco IOS XE 16.12 and later.
|
🏷️ network
|
||||||
|
💻 all
|
||||||
|
|
||||||
[1]: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md
|
[gnmi]: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md
|
||||||
|
|
||||||
Please check the [troubleshooting section](#troubleshooting) in case of
|
|
||||||
problems, e.g. when getting an *empty metric-name warning*!
|
|
||||||
|
|
||||||
## Service Input <!-- @/docs/includes/service_input.md -->
|
## Service Input <!-- @/docs/includes/service_input.md -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,14 @@
|
||||||
# Google Cloud Storage Input Plugin
|
# Google Cloud Storage Input Plugin
|
||||||
|
|
||||||
The Google Cloud Storage plugin will collect metrics
|
This plugin will collect metrics from the given [Google Cloud Storage][gcs]
|
||||||
on the given Google Cloud Storage Buckets.
|
buckets in any of the supported [data formats][data_formats].
|
||||||
|
|
||||||
|
⭐ Telegraf v1.25.0
|
||||||
|
🏷️ cloud, datastore
|
||||||
|
💻 all
|
||||||
|
|
||||||
|
[gcs]: https://cloud.google.com/storage
|
||||||
|
[data_formats]: /docs/DATA_FORMATS_INPUT.md
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -43,9 +50,8 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
- Measurements will reside on Google Cloud Storage with the format specified
|
Measurements will reside on Google Cloud Storage with the format specified, for
|
||||||
|
example like
|
||||||
- example when [[inputs.google_cloud_storage.data_format]] is json
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|
@ -66,6 +72,8 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
when the [data format][data_formats] is set to `json`.
|
||||||
|
|
||||||
## Example Output
|
## Example Output
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,23 @@
|
||||||
# GrayLog Input Plugin
|
# GrayLog Input Plugin
|
||||||
|
|
||||||
The Graylog plugin can collect data from remote Graylog service URLs.
|
This plugin collects data from [Graylog servers][graylog], currently supporting
|
||||||
|
two type of end points `multiple`
|
||||||
|
(e.g. `http://<host>:9000/api/system/metrics/multiple`) and `namespace`
|
||||||
|
(e.g. `http://<host>:9000/api/system/metrics/namespace/{namespace}`).
|
||||||
|
|
||||||
Plugin currently support two type of end points:-
|
Multiple endpoint can be queried and mixing `multiple` and serveral `namespace`
|
||||||
|
end points is possible. Check `http://<host>:9000/api/api-browser` for the full
|
||||||
|
list of available endpoints.
|
||||||
|
|
||||||
- multiple (e.g. `http://[graylog-server-ip]:9000/api/system/metrics/multiple`)
|
> [!NOTE]
|
||||||
- namespace (e.g. `http://[graylog-server-ip]:9000/api/system/metrics/namespace/{namespace}`)
|
> When specifying a `namespace` endpoint without an actual namespace, the
|
||||||
|
> metrics array will be ignored.
|
||||||
|
|
||||||
End Point can be a mix of one multiple end point and several namespaces end
|
⭐ Telegraf v1.0.0
|
||||||
points
|
🏷️ logging
|
||||||
|
💻 all
|
||||||
|
|
||||||
Note: if namespace end point specified metrics array will be ignored for that
|
[graylog]: https://graylog.org/
|
||||||
call.
|
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -65,7 +71,7 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
# insecure_skip_verify = false
|
# insecure_skip_verify = false
|
||||||
```
|
```
|
||||||
|
|
||||||
Please refer to GrayLog metrics api browser for full metric end points:
|
Please refer to GrayLog metrics API browser for full metric end points:
|
||||||
`http://host:9000/api/api-browser`
|
`http://host:9000/api/api-browser`
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
# HAProxy Input Plugin
|
# HAProxy Input Plugin
|
||||||
|
|
||||||
The [HAProxy](http://www.haproxy.org/) input plugin gathers [statistics][1]
|
This plugin gathers statistics of [HAProxy][haproxy] servers using sockets or
|
||||||
using the [stats socket][2] or [HTTP statistics page][3] of a HAProxy server.
|
the HTTP protocol.
|
||||||
|
|
||||||
[1]: https://cbonte.github.io/haproxy-dconv/1.9/intro.html#3.3.16
|
⭐ Telegraf v0.1.5
|
||||||
[2]: https://cbonte.github.io/haproxy-dconv/1.9/management.html#9.3
|
🏷️ network, server
|
||||||
[3]: https://cbonte.github.io/haproxy-dconv/1.9/management.html#9
|
💻 all
|
||||||
|
|
||||||
|
[haproxy]: http://www.haproxy.org/
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,26 @@
|
||||||
# HDDtemp Input Plugin
|
# HDDtemp Input Plugin
|
||||||
|
|
||||||
This plugin reads data from hddtemp daemon.
|
This plugin reads data from a [hddtemp][hddtemp] daemon.
|
||||||
|
|
||||||
Hddtemp should be installed and its daemon running.
|
> [!IMPORTANT]
|
||||||
|
> This plugin requires `hddtemp` to be installed and running as a daemon.
|
||||||
|
|
||||||
## OS Support & Alternatives
|
As the upstream project is not activly maintained anymore and various
|
||||||
|
distributions (e.g. Debian Bookwork and later) don't ship packages for `hddtemp`
|
||||||
|
anymore, the binary might not be available (e.g. in Ubuntu 22.04 or later).
|
||||||
|
|
||||||
This plugin depends on the availability of the `hddtemp` binary. The upstream
|
> [!TIP]
|
||||||
project is not active and Debian made the decision to remove it in Debian
|
> As an alternative consider using the [smartctl][smartctl] relying on
|
||||||
Bookworm. This means the rest of the Debian ecosystem no longer has this binary
|
> SMART information or [sensors][sensors] plugins to retrieve temperature data
|
||||||
in later releases, like Ubuntu 22.04.
|
> of your hard-drive.
|
||||||
|
|
||||||
As an alternative consider using the [`smartctl` plugin]. This parses the full
|
⭐ Telegraf v1.0.0
|
||||||
JSON output from `smartctl`, which includes temperature data, in addition to
|
🏷️ hardware, system
|
||||||
much more data about devices in a system.
|
💻 all
|
||||||
|
|
||||||
[`smartctl` plugin]: ../smartctl/README.md
|
[hddtemp]: https://savannah.nongnu.org/projects/hddtemp/
|
||||||
|
[smartctl]: /plugins/inputs/smartctl/README.md
|
||||||
|
[sensors]: /plugins/inputs/sensors/README.md
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
# HTTP Input Plugin
|
# HTTP Input Plugin
|
||||||
|
|
||||||
The HTTP input plugin collects metrics from one or more HTTP(S) endpoints. The
|
This plugin collects metrics from one or more HTTP endpoints providing data in
|
||||||
endpoint should have metrics formatted in one of the supported [input data
|
one of the supported [data formats][data_formats].
|
||||||
formats](../../../docs/DATA_FORMATS_INPUT.md). Each data format has its own
|
|
||||||
unique set of configuration options which can be added to the input
|
⭐ Telegraf v1.6.0
|
||||||
configuration.
|
🏷️ applications, server
|
||||||
|
💻 all
|
||||||
|
|
||||||
|
[data_formats]: /docs/DATA_FORMATS_INPUT.md
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,22 @@
|
||||||
# HTTP Listener v2 Input Plugin
|
# HTTP Listener v2 Input Plugin
|
||||||
|
|
||||||
The HTTP Listener v2 is a service input plugin that listens for metrics sent
|
This plugin listens for metrics sent via HTTP in any of the supported
|
||||||
via HTTP. Metrics may be sent in any supported [data-format][data_format].
|
[data formats][data_formats].
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If you would like Telegraf to act as a proxy/relay for InfluxDB v1 or
|
> If you would like Telegraf to act as a proxy/relay for InfluxDB v1 or
|
||||||
> InfluxDB v2 it is recommended to use the
|
> InfluxDB v2 it is recommended to use the
|
||||||
> [`influxdb__listener`][influxdb_listener] or
|
> [influxdb__listener][influxdb_listener] or
|
||||||
> [`influxdb_v2_listener`][influxdb_v2_listener] plugin instead.
|
> [influxdb_v2_listener][influxdb_v2_listener] plugin instead.
|
||||||
|
|
||||||
⭐ Telegraf v1.30.0
|
⭐ Telegraf v1.9.0
|
||||||
🏷️ servers, web
|
🏷️ server
|
||||||
💻 all
|
💻 all
|
||||||
|
|
||||||
|
[data_formats]: /docs/DATA_FORMATS_INPUT.md
|
||||||
|
[influxdb_listener]: /plugins/inputs/influxdb_listener/README.md
|
||||||
|
[influxdb_v2_listener]: /plugins/inputs/influxdb_v2_listener/README.md
|
||||||
|
|
||||||
## Service Input <!-- @/docs/includes/service_input.md -->
|
## Service Input <!-- @/docs/includes/service_input.md -->
|
||||||
|
|
||||||
This plugin is a service input. Normal plugins gather metrics determined by the
|
This plugin is a service input. Normal plugins gather metrics determined by the
|
||||||
|
|
@ -137,7 +141,3 @@ Send query params:
|
||||||
```shell
|
```shell
|
||||||
curl -i -XGET 'http://localhost:8080/telegraf?host=server01&value=0.42'
|
curl -i -XGET 'http://localhost:8080/telegraf?host=server01&value=0.42'
|
||||||
```
|
```
|
||||||
|
|
||||||
[data_format]: /docs/DATA_FORMATS_INPUT.md
|
|
||||||
[influxdb_listener]: /plugins/inputs/influxdb_listener/README.md
|
|
||||||
[influxdb_v2_listener]: /plugins/inputs/influxdb_v2_listener/README.md
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,11 @@
|
||||||
# HTTP Response Input Plugin
|
# HTTP Response Input Plugin
|
||||||
|
|
||||||
This input plugin checks HTTP/HTTPS connections.
|
This plugin generates metrics from HTTP responses including the status code and
|
||||||
|
response statistics.
|
||||||
|
|
||||||
|
⭐ Telegraf v0.12.1
|
||||||
|
🏷️ server
|
||||||
|
💻 all
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
# Hugepages Input Plugin
|
# Hugepages Input Plugin
|
||||||
|
|
||||||
Transparent Huge Pages (THP) is a Linux memory management system that reduces
|
This plugin gathers metrics from the Linux'
|
||||||
|
[Transparent Huge Pages (THP) memory management system][hugetlb] that reduces
|
||||||
the overhead of Translation Lookaside Buffer (TLB) lookups on machines with
|
the overhead of Translation Lookaside Buffer (TLB) lookups on machines with
|
||||||
large amounts of memory by using larger memory pages.
|
large amounts of memory.
|
||||||
|
|
||||||
Consult [the website][website] for more details.
|
⭐ Telegraf v1.22.0
|
||||||
|
🏷️ system
|
||||||
|
💻 linux
|
||||||
|
|
||||||
[website]: https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html
|
[hugetlb]: https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
# Icinga2 Input Plugin
|
# Icinga2 Input Plugin
|
||||||
|
|
||||||
This plugin gather services & hosts status using Icinga2 Remote API.
|
This plugin gather services and hosts status information using the
|
||||||
|
[Icinga2 remote API][remote_api].
|
||||||
|
|
||||||
The icinga2 plugin uses the icinga2 remote API to gather status on running
|
⭐ Telegraf v1.8.0
|
||||||
services and hosts. You can read Icinga2's documentation for their remote API
|
🏷️ network, server, system
|
||||||
[here][1].
|
💻 all
|
||||||
|
|
||||||
[1]: https://docs.icinga.com/icinga2/latest/doc/module/icinga2/chapter/icinga2-api
|
[remote_api]: https://docs.icinga.com/icinga2/latest/doc/module/icinga2/chapter/icinga2-api
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,9 @@ system. These are the counters that can be found in
|
||||||
and RDMA counters can be found in
|
and RDMA counters can be found in
|
||||||
`/sys/class/infiniband/<dev>/ports/<port>/hw_counters/`
|
`/sys/class/infiniband/<dev>/ports/<port>/hw_counters/`
|
||||||
|
|
||||||
**Supported Platforms**: Linux
|
⭐ Telegraf v1.14.0
|
||||||
|
🏷️ network
|
||||||
|
💻 linux
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,29 @@
|
||||||
# InfluxDB Input Plugin
|
# InfluxDB Input Plugin
|
||||||
|
|
||||||
The InfluxDB plugin will collect metrics on the given InfluxDB v1 servers from
|
This plugin collects metrics on the given InfluxDB v1 servers from the
|
||||||
the `/debug/vars` endpoint. Read the [documentation][1] for detailed
|
`/debug/vars` endpoint. Read the [documentation][doc_v1] for detailed
|
||||||
information about `influxdb` metrics. For InfluxDB v2 and the `metrics`
|
information about `influxdb` metrics.
|
||||||
endpoint please see the section below.
|
|
||||||
|
|
||||||
This plugin can also gather metrics from endpoints that expose
|
Additionally, this plugin can gather metrics from endpoints exposing
|
||||||
InfluxDB-formatted endpoints. See below for more information.
|
InfluxDB-formatted endpoints.
|
||||||
|
|
||||||
[1]: https://docs.influxdata.com/platform/monitoring/influxdata-platform/tools/measurements-internal/
|
> [!TIP]
|
||||||
|
> To gather [InfluxDB v2 metrics][docs_v2] use the
|
||||||
|
> [prometheus plugin][prometheus] with
|
||||||
|
>
|
||||||
|
> ```toml
|
||||||
|
> [[inputs.prometheus]]
|
||||||
|
> urls = ["http://localhost:8086/metrics"]
|
||||||
|
> metric_version = 1
|
||||||
|
> ```
|
||||||
|
|
||||||
## InfluxDB v2 Metrics
|
⭐ Telegraf v0.2.5
|
||||||
|
🏷️ datastores
|
||||||
|
💻 all
|
||||||
|
|
||||||
For [InfluxDB v2 metrics][2] are produced in Prometheus plain-text format. To
|
[doc_v1]: https://docs.influxdata.com/platform/monitoring/influxdata-platform/tools/measurements-internal/
|
||||||
collect metrics at the new `/metrics` endpoint, please use the Prometheus
|
[docs_v2]: https://docs.influxdata.com/influxdb/latest/reference/internals/metrics/
|
||||||
input plugin. This is an example to collect from a local database:
|
[prometheus]: /plugins/inputs/prometheus/README.md
|
||||||
|
|
||||||
```toml
|
|
||||||
[[inputs.prometheus]]
|
|
||||||
urls = ["http://localhost:8086/metrics"]
|
|
||||||
metric_version = 1
|
|
||||||
```
|
|
||||||
|
|
||||||
[2]: https://docs.influxdata.com/influxdb/latest/reference/internals/metrics/
|
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -63,10 +64,26 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
timeout = "5s"
|
timeout = "5s"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## InfluxDB-formatted endpoints
|
||||||
|
|
||||||
|
The influxdb plugin can collect InfluxDB-formatted data from JSON endpoints.
|
||||||
|
Whether associated with an Influx database or not.
|
||||||
|
|
||||||
|
With a configuration of:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[[inputs.influxdb]]
|
||||||
|
urls = [
|
||||||
|
"http://127.0.0.1:8086/debug/vars",
|
||||||
|
"http://192.168.2.1:8086/debug/vars"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
**Note:** The measurements and fields included in this plugin are dynamically
|
> [!NOTE]
|
||||||
built from the InfluxDB source, and may vary between versions:
|
> The measurements and fields included in this plugin are dynamically
|
||||||
|
> built from the InfluxDB source, and may vary between versions.
|
||||||
|
|
||||||
- **influxdb_ae** _(Enterprise Only)_ : Statistics related to the Anti-Entropy
|
- **influxdb_ae** _(Enterprise Only)_ : Statistics related to the Anti-Entropy
|
||||||
(AE) engine in InfluxDB Enterprise clusters.
|
(AE) engine in InfluxDB Enterprise clusters.
|
||||||
|
|
@ -440,18 +457,3 @@ influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wa
|
||||||
influxdb_write,host=tyrion,url=http://localhost:8086/debug/vars pointReq=7274,pointReqLocal=7274,req=280,subWriteOk=280,writeOk=280 1463590500247354636
|
influxdb_write,host=tyrion,url=http://localhost:8086/debug/vars pointReq=7274,pointReqLocal=7274,req=280,subWriteOk=280,writeOk=280 1463590500247354636
|
||||||
influxdb_shard,host=tyrion n_shards=4i 1463590500247354636
|
influxdb_shard,host=tyrion n_shards=4i 1463590500247354636
|
||||||
```
|
```
|
||||||
|
|
||||||
## InfluxDB-formatted endpoints
|
|
||||||
|
|
||||||
The influxdb plugin can collect InfluxDB-formatted data from JSON endpoints.
|
|
||||||
Whether associated with an Influx database or not.
|
|
||||||
|
|
||||||
With a configuration of:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[[inputs.influxdb]]
|
|
||||||
urls = [
|
|
||||||
"http://127.0.0.1:8086/debug/vars",
|
|
||||||
"http://192.168.2.1:8086/debug/vars"
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,30 @@
|
||||||
# InfluxDB Listener Input Plugin
|
# InfluxDB Listener Input Plugin
|
||||||
|
|
||||||
InfluxDB Listener is a service input plugin that listens for requests sent
|
This plugin listens for requests sent according to the
|
||||||
according to the [InfluxDB HTTP API][influxdb_http_api]. The intent of the
|
[InfluxDB HTTP v1 API][influxdb_http_api]. This allows Telegraf to serve as a
|
||||||
plugin is to allow Telegraf to serve as a proxy/router for the `/write`
|
proxy/router for the `/write` endpoint of the InfluxDB HTTP API.
|
||||||
endpoint of the InfluxDB HTTP API.
|
|
||||||
|
|
||||||
**Note:** This plugin was previously known as `http_listener`. If you wish to
|
> [!NOTE]
|
||||||
send general metrics via HTTP it is recommended to use the
|
> This plugin was previously known as `http_listener`. If you wish to
|
||||||
[`http_listener_v2`][http_listener_v2] instead.
|
> send general metrics via HTTP it is recommended to use the
|
||||||
|
> [`http_listener_v2`][http_listener_v2] instead.
|
||||||
|
|
||||||
The `/write` endpoint supports the `precision` query parameter and can be set
|
The `/write` endpoint supports the `precision` query parameter and can be set
|
||||||
to one of `ns`, `u`, `ms`, `s`, `m`, `h`. All other parameters are ignored and
|
to one of `ns`, `u`, `ms`, `s`, `m`, `h`. All other parameters are ignored and
|
||||||
defer to the output plugins configuration.
|
defer to the output plugins configuration.
|
||||||
|
|
||||||
When chaining Telegraf instances using this plugin, CREATE DATABASE requests
|
> [!IMPORTANT]
|
||||||
receive a 200 OK response with message body `{"results":[]}` but they are not
|
> When chaining Telegraf instances using this plugin, `CREATE DATABASE` requests
|
||||||
relayed. The output configuration of the Telegraf instance which ultimately
|
> receive a `200 OK` response with message body `{"results":[]}` but they are
|
||||||
submits data to InfluxDB determines the destination database.
|
> not relayed. The configuration of the output plugin ultimately submits data
|
||||||
|
> to InfluxDB determines the destination database.
|
||||||
|
|
||||||
|
⭐ Telegraf v1.9.0
|
||||||
|
🏷️ datastores
|
||||||
|
💻 all
|
||||||
|
|
||||||
|
[influxdb_http_api]: https://docs.influxdata.com/influxdb/v1.8/guides/write_data/
|
||||||
|
[http_listener_v2]: /plugins/inputs/http_listener_v2/README.md
|
||||||
|
|
||||||
## Service Input <!-- @/docs/includes/service_input.md -->
|
## Service Input <!-- @/docs/includes/service_input.md -->
|
||||||
|
|
||||||
|
|
@ -102,15 +110,16 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
|
|
||||||
Metrics are created from InfluxDB Line Protocol in the request body.
|
Metrics are created from InfluxDB Line Protocol in the request body.
|
||||||
|
|
||||||
## Troubleshooting
|
## Example Output
|
||||||
|
|
||||||
**Example Query:**
|
Using
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
curl -i -XPOST 'http://localhost:8186/write' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
|
curl -i -XPOST 'http://localhost:8186/write' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
|
||||||
```
|
```
|
||||||
|
|
||||||
[influxdb_http_api]: https://docs.influxdata.com/influxdb/v1.8/guides/write_data/
|
will produce the following metric
|
||||||
[http_listener_v2]: /plugins/inputs/http_listener_v2/README.md
|
|
||||||
|
|
||||||
## Example Output
|
```text
|
||||||
|
cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,18 @@
|
||||||
# InfluxDB V2 Listener Input Plugin
|
# InfluxDB V2 Listener Input Plugin
|
||||||
|
|
||||||
InfluxDB V2 Listener is a service input plugin that listens for requests sent
|
This plugin listens for requests sent according to the
|
||||||
according to the [InfluxDB HTTP API][influxdb_http_api]. The intent of the
|
[InfluxDB HTTP v2 API][influxdb_http_api]. This allows Telegraf to serve as a
|
||||||
plugin is to allow Telegraf to serve as a proxy/router for the `/api/v2/write`
|
proxy/router for the `/api/v2/write` endpoint of the InfluxDB HTTP API.
|
||||||
endpoint of the InfluxDB HTTP API.
|
|
||||||
|
|
||||||
The `/api/v2/write` endpoint supports the `precision` query parameter and can be
|
The `/api/v2/write` endpoint supports the `precision` query parameter and can be
|
||||||
set to one of `ns`, `us`, `ms`, `s`. All other parameters are ignored and defer
|
set to one of `ns`, `us`, `ms`, `s`. All other parameters are ignored and defer
|
||||||
to the output plugins configuration.
|
to the output plugins configuration.
|
||||||
|
|
||||||
Telegraf minimum version: Telegraf 1.16.0
|
⭐ Telegraf v1.16.0
|
||||||
|
🏷️ datastores
|
||||||
|
💻 all
|
||||||
|
|
||||||
|
[influxdb_http_api]: https://docs.influxdata.com/influxdb/v2/api/
|
||||||
|
|
||||||
## Service Input <!-- @/docs/includes/service_input.md -->
|
## Service Input <!-- @/docs/includes/service_input.md -->
|
||||||
|
|
||||||
|
|
@ -90,14 +93,16 @@ to use them.
|
||||||
|
|
||||||
Metrics are created from InfluxDB Line Protocol in the request body.
|
Metrics are created from InfluxDB Line Protocol in the request body.
|
||||||
|
|
||||||
## Troubleshooting
|
## Example Output
|
||||||
|
|
||||||
**Example Query:**
|
Using
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
curl -i -XPOST 'http://localhost:8186/api/v2/write' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
|
curl -i -XPOST 'http://localhost:8186/api/v2/write' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
|
||||||
```
|
```
|
||||||
|
|
||||||
[influxdb_http_api]: https://docs.influxdata.com/influxdb/latest/api/
|
will produce the following metric
|
||||||
|
|
||||||
## Example Output
|
```text
|
||||||
|
cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,36 @@
|
||||||
# Intel Baseband Accelerator Input Plugin
|
# Intel Baseband Accelerator Input Plugin
|
||||||
|
|
||||||
Intel Baseband Accelerator Input Plugin collects metrics from both dedicated and
|
This plugin collects metrics from both dedicated and integrated Intel devices
|
||||||
integrated Intel devices that provide Wireless Baseband hardware acceleration.
|
providing Wireless Baseband hardware acceleration. These devices play a key role
|
||||||
These devices play a key role in accelerating 5G and 4G Virtualized Radio Access
|
in accelerating 5G and 4G Virtualized Radio Access Networks (vRAN) workloads,
|
||||||
Networks (vRAN) workloads, increasing the overall compute capacity of
|
increasing the overall compute capacity of commercial, off-the-shelf platforms
|
||||||
a commercial, off-the-shelf platforms.
|
by integrating e.g.
|
||||||
|
|
||||||
Intel Baseband devices integrate various features critical for 5G and
|
|
||||||
LTE (Long Term Evolution) networks, including e.g.:
|
|
||||||
|
|
||||||
- Forward Error Correction (FEC) processing,
|
- Forward Error Correction (FEC) processing,
|
||||||
- 4G Turbo FEC processing,
|
- 4G Turbo FEC processing,
|
||||||
- 5G Low Density Parity Check (LDPC)
|
- 5G Low Density Parity Check (LDPC)
|
||||||
- a Fast Fourier Transform (FFT) block providing DFT/iDFT processing offload
|
- Fast Fourier Transform (FFT) block providing DFT/iDFT processing offload for
|
||||||
for the 5G Sounding Reference Signal (SRS)
|
the 5G Sounding Reference Signal (SRS)
|
||||||
|
|
||||||
Supported hardware:
|
⭐ Telegraf v1.27.0
|
||||||
|
🏷️ hardware, network, system
|
||||||
|
💻 linux
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- supported Intel Baseband device installed and configured
|
||||||
|
- Linux kernel 5.7+
|
||||||
|
- [pf-bb-config](https://github.com/intel/pf-bb-config) (version >= v23.03)
|
||||||
|
installed and running
|
||||||
|
|
||||||
|
This plugin supports the following hardware:
|
||||||
|
|
||||||
- Intel® vRAN Boost integrated accelerators:
|
- Intel® vRAN Boost integrated accelerators:
|
||||||
- 4th Gen Intel® Xeon® Scalable processor with Intel® vRAN Boost (also known as Sapphire Rapids Edge Enhanced / SPR-EE)
|
- 4th Gen Intel® Xeon® Scalable processor with Intel® vRAN Boost
|
||||||
|
(also known as Sapphire Rapids Edge Enhanced / SPR-EE)
|
||||||
- External expansion cards connected to the PCI bus:
|
- External expansion cards connected to the PCI bus:
|
||||||
- Intel® vRAN Dedicated Accelerator ACC100 SoC (code named Mount Bryce)
|
- Intel® vRAN Dedicated Accelerator ACC100 SoC (code named Mount Bryce)
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
- Intel Baseband device installed and configured.
|
|
||||||
- Minimum Linux kernel version required is 5.7.
|
|
||||||
- [pf-bb-config](https://github.com/intel/pf-bb-config) (version >= v23.03) installed and running.
|
|
||||||
|
|
||||||
For more information regarding system configuration, please follow DPDK
|
For more information regarding system configuration, please follow DPDK
|
||||||
installation guides:
|
installation guides:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,53 +1,25 @@
|
||||||
# Intel® Dynamic Load Balancer (Intel® DLB) Input Plugin
|
# Intel® Dynamic Load Balancer Input Plugin
|
||||||
|
|
||||||
The `Intel DLB` plugin collects metrics exposed by applications built with
|
This plugin collects metrics exposed by applications built with the
|
||||||
[Data Plane Development Kit](https://www.dpdk.org/) which is an extensive
|
[Data Plane Development Kit][dpdk], an extensive set of open source libraries
|
||||||
set of open source libraries designed for accelerating packet processing
|
designed for accelerating packet processing workloads, plugin is also using
|
||||||
workloads, plugin is also using bifurcated driver. More specifically it's
|
bifurcated driver. More specifically it's targeted for applications using
|
||||||
targeted for applications that use Intel DLB as eventdev devices accessed
|
Intel DLB as eventdev devices accessed via bifurcated driver
|
||||||
via bifurcated driver (allowing access from kernel and user-space).
|
(allowing access from kernel and user-space).
|
||||||
|
|
||||||
## Metrics
|
⭐ Telegraf v1.25.0
|
||||||
|
🏷️ applications
|
||||||
|
💻 linux
|
||||||
|
|
||||||
There are two sources of metrics:
|
[dpdk]: https://www.dpdk.org/
|
||||||
|
|
||||||
- DPDK-based app for detailed eventdev metrics per device, per port and per queue
|
## Requirements
|
||||||
- Sysfs entries from kernel driver for RAS metrics
|
|
||||||
|
|
||||||
## About Intel® Dynamic Load Balancer (Intel® DLB)
|
|
||||||
|
|
||||||
The Intel® Dynamic Load Balancer (Intel® DLB) is a PCIe device that provides
|
|
||||||
load-balanced, prioritized scheduling of events (that is, packets) across
|
|
||||||
CPU cores enabling efficient core-to-core communication. It is a hardware
|
|
||||||
accelerator located inside the latest Intel® Xeon® devices offered by Intel.
|
|
||||||
It supports the event-driven programming model of DPDK's Event Device Library.
|
|
||||||
This library is used in packet processing pipelines for multi-core scalability,
|
|
||||||
dynamic load-balancing, and variety of packet distribution and synchronization
|
|
||||||
schemes.
|
|
||||||
|
|
||||||
## About DPDK Event Device Library
|
|
||||||
|
|
||||||
The DPDK Event device library is an abstraction that provides the application
|
|
||||||
with features to schedule events. The eventdev framework introduces the event
|
|
||||||
driven programming model. In a polling model, lcores poll ethdev ports and
|
|
||||||
associated Rx queues directly to look for a packet. By contrast in an event
|
|
||||||
driven model, lcores call the scheduler that selects packets for them based on
|
|
||||||
programmer-specified criteria. The Eventdev library adds support for an event
|
|
||||||
driven programming model, which offers applications automatic multicore scaling,
|
|
||||||
dynamic load balancing, pipelining, packet ingress order maintenance and
|
|
||||||
synchronization services to simplify application packet processing.
|
|
||||||
By introducing an event driven programming model, DPDK can support
|
|
||||||
both polling and event driven programming models for packet processing,
|
|
||||||
and applications are free to choose whatever model (or combination of the two)
|
|
||||||
best suits their needs.
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
|
- Linux kernel 5.12+
|
||||||
- [DLB >= v7.4](https://www.intel.com/content/www/us/en/download/686372/intel-dynamic-load-balancer.html)
|
- [DLB >= v7.4](https://www.intel.com/content/www/us/en/download/686372/intel-dynamic-load-balancer.html)
|
||||||
- [DPDK >= 20.11.3](http://core.dpdk.org/download/)
|
- [DPDK >= 20.11.3](http://core.dpdk.org/download/)
|
||||||
- Linux kernel >= 5.12
|
|
||||||
|
|
||||||
> **NOTE:** It may happen that sysfs entries or the socket telemetry interface
|
> [!NOTE] It may happen that sysfs entries or the socket telemetry interface
|
||||||
> exposed by DPDK-based app will require root access. This means that either
|
> exposed by DPDK-based app will require root access. This means that either
|
||||||
> access permissions have to be adjusted for sysfs / socket telemetry
|
> access permissions have to be adjusted for sysfs / socket telemetry
|
||||||
> interface to allow Telegraf to access it, or Telegraf should run with root
|
> interface to allow Telegraf to access it, or Telegraf should run with root
|
||||||
|
|
@ -97,6 +69,13 @@ reported via `/eventdev/` command:
|
||||||
- `/eventdev/queue_xstats`
|
- `/eventdev/queue_xstats`
|
||||||
- `/eventdev/queue_links`
|
- `/eventdev/queue_links`
|
||||||
|
|
||||||
|
## Metrics
|
||||||
|
|
||||||
|
There are two sources of metrics:
|
||||||
|
|
||||||
|
- DPDK-based app for detailed eventdev metrics per device, per port and per queue
|
||||||
|
- Sysfs entries from kernel driver for RAS metrics
|
||||||
|
|
||||||
## Example Output
|
## Example Output
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,49 @@
|
||||||
# Intel® Platform Monitoring Technology (Intel® PMT) Input Plugin
|
# Intel® Platform Monitoring Technology Input Plugin
|
||||||
|
|
||||||
This plugin collects metrics via the Linux kernel driver for
|
This plugin collects metrics via the Linux kernel driver for
|
||||||
Intel® Platform Monitoring Technology (Intel® PMT).
|
Intel® Platform Monitoring Technology (Intel® PMT), an architecture capable of
|
||||||
Intel® PMT is an architecture capable of enumerating
|
enumerating and accessing hardware monitoring capabilities on supported devices.
|
||||||
and accessing hardware monitoring capabilities on a supported device.
|
|
||||||
|
|
||||||
Support has been added to the mainline Linux kernel under the
|
⭐ Telegraf v1.28.0
|
||||||
platform driver (`drivers/platform/x86/intel/pmt`) which exposes
|
🏷️ hardware, system
|
||||||
the Intel PMT telemetry space as a sysfs entry at
|
💻 linux
|
||||||
`/sys/class/intel_pmt/`. Each discovered telemetry aggregator is
|
|
||||||
exposed as a directory (with a `telem` prefix) containing a `guid`
|
|
||||||
identifying the unique PMT space. This file is associated with a
|
|
||||||
set of XML specification files which can be found in the
|
|
||||||
[Intel-PMT Repository].
|
|
||||||
|
|
||||||
This plugin discovers and parses the telemetry data exposed by
|
## Requirements
|
||||||
the kernel driver using the specification inside the XML files.
|
|
||||||
Furthermore, the plugin then reads low level samples/counters
|
- supported device
|
||||||
and evaluates high level samples/counters according to
|
- Linux kernel >= 5.11
|
||||||
transformation formulas, and then reports the collected values.
|
- `intel_pmt_telemetry` module loaded (on kernels 5.11-5.14)
|
||||||
|
- `intel_pmt` module loaded (on kernels 5.14+)
|
||||||
|
|
||||||
|
This plugin supports devices exposing PMT, e.g.
|
||||||
|
|
||||||
|
- 4th Generation Intel® Xeon® Scalable Processors (Sapphire Rapids / SPR)
|
||||||
|
- 6th Generation Intel® Xeon® Scalable Processors (Granite Rapids / GNR)
|
||||||
|
|
||||||
|
Support has been added to the mainline Linux kernel under the platform driver
|
||||||
|
(`drivers/platform/x86/intel/pmt`) which exposes the Intel PMT telemetry space
|
||||||
|
as a sysfs entry at `/sys/class/intel_pmt/`. Each discovered telemetry
|
||||||
|
aggregator is exposed as a directory (with a `telem` prefix) containing a `guid`
|
||||||
|
identifying the unique PMT space. This file is associated with a set of XML
|
||||||
|
specification files which can be found in the [Intel-PMT Repository][repo].
|
||||||
|
The XML specification must be specified as an absolute path to the `pmt.xml`
|
||||||
|
file using the `spec` setting .
|
||||||
|
|
||||||
|
This plugin discovers and parses the telemetry data exposed by the kernel driver
|
||||||
|
using the specification inside the XML files. Furthermore, the plugin then reads
|
||||||
|
low level samples/counters and evaluates high level samples/counters according
|
||||||
|
to transformation formulas, and then reports the collected values.
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> PMT space is located in `/sys/class/intel_pmt` with `telem` files requiring
|
||||||
|
> **root privileges** to be read. If Telegraf is not running as root you should
|
||||||
|
> add the following capability to the Telegraf executable:
|
||||||
|
>
|
||||||
|
> ```sh
|
||||||
|
> sudo setcap cap_dac_read_search+ep /usr/bin/telegraf
|
||||||
|
> ```
|
||||||
|
|
||||||
|
[repo]: https://github.com/intel/Intel-PMT
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -29,14 +54,6 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
|
|
||||||
[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins
|
[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
Intel PMT Input Plugin requires an XML specification as `spec`.
|
|
||||||
It can be provided as a filepath.
|
|
||||||
|
|
||||||
The provided filepath should be an absolute path to `pmt.xml` within
|
|
||||||
local copies of XML files from the cloned [Intel-PMT Repository].
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
```toml @sample.conf
|
```toml @sample.conf
|
||||||
|
|
@ -60,78 +77,7 @@ local copies of XML files from the cloned [Intel-PMT Repository].
|
||||||
# samples_enabled = []
|
# samples_enabled = []
|
||||||
```
|
```
|
||||||
|
|
||||||
## Example Configuration: C-State residency and temperature with a datatype metric filter
|
### Enabling metrics
|
||||||
|
|
||||||
This configuration allows getting only a subset of metrics
|
|
||||||
with the use of a datatype filter:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[[inputs.intel_pmt]]
|
|
||||||
spec = "/home/telegraf/Intel-PMT/xml/pmt.xml"
|
|
||||||
datatypes_enabled = ["tbandwidth_28b","ttemperature"]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Example Configuration: C-State residency and temperature with a sample metric filter
|
|
||||||
|
|
||||||
This configuration allows getting only a subset of metrics
|
|
||||||
with the use of a sample filter:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[[inputs.intel_pmt]]
|
|
||||||
spec = "/home/telegraf/Intel-PMT/xml/pmt.xml"
|
|
||||||
samples_enabled = ["C0Residency","C1Residency", "Cx_TEMP"]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
Minimum Linux kernel version 5.11 with
|
|
||||||
|
|
||||||
- the `intel_pmt_telemetry` module loaded (on kernels 5.11-5.14)
|
|
||||||
- the `intel_pmt` module loaded (on kernels 5.14+)
|
|
||||||
|
|
||||||
Intel PMT is exposed on a limited number of devices, e.g.
|
|
||||||
|
|
||||||
- 4th Generation Intel® Xeon® Scalable Processors
|
|
||||||
(codenamed Sapphire Rapids / SPR)
|
|
||||||
- 6th Generation Intel® Xeon® Scalable Processors
|
|
||||||
(codenamed Granite Rapids / GNR)
|
|
||||||
|
|
||||||
PMT space is located in `/sys/class/intel_pmt` with `telem` files requiring
|
|
||||||
root privileges to read.
|
|
||||||
|
|
||||||
### If Telegraf is not running as a root user
|
|
||||||
|
|
||||||
By default, the `telem` binary file requires root privileges to be read.
|
|
||||||
|
|
||||||
To avoid running Telegraf as a root,
|
|
||||||
add the following capability to the Telegraf executable:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo setcap cap_dac_read_search+ep /usr/bin/telegraf
|
|
||||||
```
|
|
||||||
|
|
||||||
## Metrics
|
|
||||||
|
|
||||||
All metrics have the following tags:
|
|
||||||
|
|
||||||
- `guid` (unique id of an Intel PMT space).
|
|
||||||
- `numa_node` (NUMA node the sample is collected from).
|
|
||||||
- `pci_bdf` (PCI Bus:Device.Function (BDF) the sample is collected from).
|
|
||||||
- `sample_name` (name of the gathered sample).
|
|
||||||
- `sample_group` (name of a group to which the sample belongs).
|
|
||||||
- `datatype_idref` (datatype to which the sample belongs).
|
|
||||||
|
|
||||||
`sample_name` prefixed in XMLs with `Cx_` where `x`
|
|
||||||
is the core number also have the following tag:
|
|
||||||
|
|
||||||
- `core` (core to which the metric relates).
|
|
||||||
|
|
||||||
`sample_name` prefixed in XMLs with `CHAx_` where `x`
|
|
||||||
is the CHA number also have the following tag:
|
|
||||||
|
|
||||||
- `cha` (Caching and Home Agent to which the metric relates).
|
|
||||||
|
|
||||||
## Enabling metrics
|
|
||||||
|
|
||||||
By default, the plugin collects all available metrics.
|
By default, the plugin collects all available metrics.
|
||||||
|
|
||||||
|
|
@ -277,6 +223,49 @@ See the table below for available datatypes and related metrics:
|
||||||
| `ttw_unit` | `TW` | Time window. Valid TW range is 0 to 17. The unit is calculated as `2.3 * 2^TW` ms (e.g. `2.3 * 2^17` ms = ~302 seconds). |
|
| `ttw_unit` | `TW` | Time window. Valid TW range is 0 to 17. The unit is calculated as `2.3 * 2^TW` ms (e.g. `2.3 * 2^17` ms = ~302 seconds). |
|
||||||
| `tcore_stress_level` | `STRESS_LEVEL` | Accumulating counter indicating relative stress level for a core (per core) |
|
| `tcore_stress_level` | `STRESS_LEVEL` | Accumulating counter indicating relative stress level for a core (per core) |
|
||||||
|
|
||||||
|
### Example: C-State residency and temperature with a datatype metric filter
|
||||||
|
|
||||||
|
This configuration allows getting only a subset of metrics
|
||||||
|
with the use of a datatype filter:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[[inputs.intel_pmt]]
|
||||||
|
spec = "/home/telegraf/Intel-PMT/xml/pmt.xml"
|
||||||
|
datatypes_enabled = ["tbandwidth_28b","ttemperature"]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Example: C-State residency and temperature with a sample metric filter
|
||||||
|
|
||||||
|
This configuration allows getting only a subset of metrics
|
||||||
|
with the use of a sample filter:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[[inputs.intel_pmt]]
|
||||||
|
spec = "/home/telegraf/Intel-PMT/xml/pmt.xml"
|
||||||
|
samples_enabled = ["C0Residency","C1Residency", "Cx_TEMP"]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Metrics
|
||||||
|
|
||||||
|
All metrics have the following tags:
|
||||||
|
|
||||||
|
- `guid` (unique id of an Intel PMT space).
|
||||||
|
- `numa_node` (NUMA node the sample is collected from).
|
||||||
|
- `pci_bdf` (PCI Bus:Device.Function (BDF) the sample is collected from).
|
||||||
|
- `sample_name` (name of the gathered sample).
|
||||||
|
- `sample_group` (name of a group to which the sample belongs).
|
||||||
|
- `datatype_idref` (datatype to which the sample belongs).
|
||||||
|
|
||||||
|
`sample_name` prefixed in XMLs with `Cx_` where `x`
|
||||||
|
is the core number also have the following tag:
|
||||||
|
|
||||||
|
- `core` (core to which the metric relates).
|
||||||
|
|
||||||
|
`sample_name` prefixed in XMLs with `CHAx_` where `x`
|
||||||
|
is the CHA number also have the following tag:
|
||||||
|
|
||||||
|
- `cha` (Caching and Home Agent to which the metric relates).
|
||||||
|
|
||||||
## Example Output
|
## Example Output
|
||||||
|
|
||||||
Example output with `tpvp_throttle_counter` as a datatype metric filter:
|
Example output with `tpvp_throttle_counter` as a datatype metric filter:
|
||||||
|
|
@ -411,5 +400,3 @@ intel_pmt,core=61,datatype_idref=tpvp_throttle_counter,guid=0x87b6fef1,pmt,numa_
|
||||||
intel_pmt,core=62,datatype_idref=tpvp_throttle_counter,guid=0x87b6fef1,pmt,numa_node=0,pci_bdf=0000:e7:03.1,sample_group=C62_PVP_THROTTLE_1024,sample_name=PVP_THROTTLE_1024 value=0i 1693766334000000000
|
intel_pmt,core=62,datatype_idref=tpvp_throttle_counter,guid=0x87b6fef1,pmt,numa_node=0,pci_bdf=0000:e7:03.1,sample_group=C62_PVP_THROTTLE_1024,sample_name=PVP_THROTTLE_1024 value=0i 1693766334000000000
|
||||||
intel_pmt,core=63,datatype_idref=tpvp_throttle_counter,guid=0x87b6fef1,pmt,numa_node=0,pci_bdf=0000:e7:03.1,sample_group=C63_PVP_THROTTLE_1024,sample_name=PVP_THROTTLE_1024 value=0i 1693766334000000000
|
intel_pmt,core=63,datatype_idref=tpvp_throttle_counter,guid=0x87b6fef1,pmt,numa_node=0,pci_bdf=0000:e7:03.1,sample_group=C63_PVP_THROTTLE_1024,sample_name=PVP_THROTTLE_1024 value=0i 1693766334000000000
|
||||||
```
|
```
|
||||||
|
|
||||||
[Intel-PMT repository]: https://github.com/intel/Intel-PMT
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,41 @@
|
||||||
# Intel Performance Monitoring Unit Plugin
|
# Intel Performance Monitoring Unit Plugin
|
||||||
|
|
||||||
This input plugin exposes Intel PMU (Performance Monitoring Unit) metrics
|
This plugin gathers Intel Performance Monitoring Unit metrics available via the
|
||||||
available through [Linux Perf](https://perf.wiki.kernel.org/index.php/Main_Page)
|
[Linux Perf][linux_perf] subsystem.
|
||||||
subsystem.
|
|
||||||
|
|
||||||
PMU metrics gives insight into performance and health of IA processor's internal
|
PMU metrics provide insights into performance and health of IA processors'
|
||||||
components, including core and uncore units. With the number of cores increasing
|
internal components, including core and uncore units. With the number of cores
|
||||||
and processor topology getting more complex the insight into those metrics is
|
increasing and processor topology getting more complex the insight into those
|
||||||
vital to assure the best CPU performance and utilization.
|
metrics is vital to assure the best CPU performance and utilization.
|
||||||
|
|
||||||
Performance counters are CPU hardware registers that count hardware events such
|
Performance counters are CPU hardware registers that count hardware events such
|
||||||
as instructions executed, cache-misses suffered, or branches mispredicted. They
|
as instructions executed, cache-misses suffered, or branches mispredicted. They
|
||||||
form a basis for profiling applications to trace dynamic control flow and
|
form a basis for profiling applications to trace dynamic control flow and
|
||||||
identify hotspots.
|
identify hotspots.
|
||||||
|
|
||||||
|
⭐ Telegraf v1.21.0
|
||||||
|
🏷️ hardware, system
|
||||||
|
💻 linux
|
||||||
|
|
||||||
|
[linux_perf]: https://perf.wiki.kernel.org/index.php/Main_Page
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
The plugin uses the [iaevents library][iaevents_lib] that eases accessing the
|
||||||
|
Linux kernel's perf interface.
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> The Intel PMU plugin is only intended for use on **Linux 64-bit** systems.
|
||||||
|
|
||||||
|
Event definition JSON files for specific architectures can be found at the
|
||||||
|
[Github repository][repo]. Download the event definitions appropriate for your
|
||||||
|
system e.g. using the [`event_download.py` PMU tool][pmu_tools] and keep them
|
||||||
|
in a safe place on your system.
|
||||||
|
|
||||||
|
[iaevents_lib]: https://github.com/intel/iaevents
|
||||||
|
[repo]: https://github.com/intel/perfmon
|
||||||
|
[pmu_tools]: https://github.com/andikleen/pmu-tools
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
In addition to the plugin-specific configuration settings, plugins support
|
In addition to the plugin-specific configuration settings, plugins support
|
||||||
|
|
@ -104,20 +126,6 @@ where:
|
||||||
| G | perf_event_attr.exclude_hv | don't count hypervisor |
|
| G | perf_event_attr.exclude_hv | don't count hypervisor |
|
||||||
| D | perf_event_attr.pinned | must always be on PMU |
|
| D | perf_event_attr.pinned | must always be on PMU |
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
The plugin is using [iaevents](https://github.com/intel/iaevents) library which
|
|
||||||
is a golang package that makes accessing the Linux kernel's perf interface
|
|
||||||
easier.
|
|
||||||
|
|
||||||
Intel PMU plugin, is only intended for use on **linux 64-bit** systems.
|
|
||||||
|
|
||||||
Event definition JSON files for specific architectures can be found at
|
|
||||||
[github](https://github.com/intel/perfmon). A script to download the event
|
|
||||||
definitions that are appropriate for your system (event_download.py) is
|
|
||||||
available at [pmu-tools](https://github.com/andikleen/pmu-tools). Please keep
|
|
||||||
these files in a safe place on your system.
|
|
||||||
|
|
||||||
## Measuring
|
## Measuring
|
||||||
|
|
||||||
Plugin allows measuring both core and uncore events. During plugin
|
Plugin allows measuring both core and uncore events. During plugin
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,207 @@
|
||||||
# Intel PowerStat Input Plugin
|
# Intel PowerStat Input Plugin
|
||||||
|
|
||||||
This input plugin monitors power statistics on Intel-based platforms and
|
This plugin gathers power statistics on Intel-based platforms providing insights
|
||||||
assumes presence of Linux based OS.
|
into power saving and workload migration. Those are beneficial for Monitoring
|
||||||
|
and Analytics systems to take preventive or corrective actions based on platform
|
||||||
|
busyness, CPU temperature, actual CPU utilization and power statistics.
|
||||||
|
|
||||||
Not all CPUs are supported, please see the software and hardware dependencies
|
⭐ Telegraf v1.17.0
|
||||||
sections below to ensure platform support.
|
🏷️ hardware, system
|
||||||
|
💻 linux
|
||||||
|
|
||||||
Main use cases are power saving and workload migration. Telemetry frameworks
|
## Requirements
|
||||||
allow users to monitor critical platform level metrics. Key source of platform
|
|
||||||
telemetry is power domain that is beneficial for MANO Monitoring&Analytics
|
### Kernel modules
|
||||||
systems to take preventive/corrective actions based on platform busyness, CPU
|
|
||||||
temperature, actual CPU utilization and power statistics.
|
Plugin is mostly based on Linux Kernel modules that expose specific metrics over
|
||||||
|
`sysfs` or `devfs` interfaces. The following dependencies are expected:
|
||||||
|
|
||||||
|
- `intel-rapl` kernel module which exposes Intel Runtime Power Limiting metrics over
|
||||||
|
`sysfs` (`/sys/devices/virtual/powercap/intel-rapl`),
|
||||||
|
- `msr` kernel module that provides access to processor model specific
|
||||||
|
registers over `devfs` (`/dev/cpu/cpu%d/msr`),
|
||||||
|
- `cpufreq` kernel module - which exposes per-CPU Frequency over `sysfs`
|
||||||
|
(`/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq`),
|
||||||
|
- `intel-uncore-frequency` kernel module exposes Intel uncore frequency metrics
|
||||||
|
over `sysfs` (`/sys/devices/system/cpu/intel_uncore_frequency`).
|
||||||
|
|
||||||
|
Make sure the required kernel modules are loaded and running. Modules might have
|
||||||
|
to be manually enabled by using `modprobe`. Depending on the kernel version,
|
||||||
|
run the following commands:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# rapl modules:
|
||||||
|
## kernel < 4.0
|
||||||
|
sudo modprobe intel_rapl
|
||||||
|
## kernel >= 4.0
|
||||||
|
sudo modprobe rapl
|
||||||
|
sudo modprobe intel_rapl_common
|
||||||
|
sudo modprobe intel_rapl_msr
|
||||||
|
|
||||||
|
# msr module:
|
||||||
|
sudo modprobe msr
|
||||||
|
|
||||||
|
# cpufreq module:
|
||||||
|
### integrated in kernel
|
||||||
|
|
||||||
|
# intel-uncore-frequency module:
|
||||||
|
## only for kernel >= 5.6.0
|
||||||
|
sudo modprobe intel-uncore-frequency
|
||||||
|
```
|
||||||
|
|
||||||
|
### Kernel's perf interface
|
||||||
|
|
||||||
|
For perf-related metrics, when Telegraf is not running as root, the following
|
||||||
|
capability should be added to the Telegraf executable:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo setcap cap_sys_admin+ep <path_to_telegraf_binary>
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, `/proc/sys/kernel/perf_event_paranoid` has to be set to value
|
||||||
|
less than 1.
|
||||||
|
|
||||||
|
Depending on environment and configuration (number of monitored CPUs and number
|
||||||
|
of enabled metrics), it might be required to increase the limit on the number of
|
||||||
|
open file descriptors allowed. This can be done for example by using `ulimit -n`
|
||||||
|
command.
|
||||||
|
|
||||||
|
### Root privileges
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> Telegraf with Intel PowerStat plugin enabled may require root privileges to
|
||||||
|
> read all the metrics (depending on OS type or configuration).
|
||||||
|
|
||||||
|
Alternatively, the following capabilities can be added to the Telegraf
|
||||||
|
executable:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
#without perf-related metrics:
|
||||||
|
sudo setcap cap_sys_rawio,cap_dac_read_search+ep <path_to_telegraf_binary>
|
||||||
|
|
||||||
|
#with perf-related metrics:
|
||||||
|
sudo setcap cap_sys_rawio,cap_dac_read_search,cap_sys_admin+ep <path_to_telegraf_binary>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Supported hardware
|
||||||
|
|
||||||
|
Specific metrics require certain processor features to be present, otherwise
|
||||||
|
Intel PowerStat plugin won't be able to read them. The user can detect supported
|
||||||
|
processor features by reading `/proc/cpuinfo` file.
|
||||||
|
Plugin assumes crucial properties are the same for all CPU cores in the system.
|
||||||
|
|
||||||
|
The following `processor` properties are examined in more detail
|
||||||
|
in this section:
|
||||||
|
|
||||||
|
- `vendor_id`
|
||||||
|
- `cpu family`
|
||||||
|
- `model`
|
||||||
|
- `flags`
|
||||||
|
|
||||||
|
The following processor properties are required by the plugin:
|
||||||
|
|
||||||
|
- Processor `vendor_id` must be `GenuineIntel` and `cpu family` must be `6` -
|
||||||
|
since data used by the plugin are Intel-specific.
|
||||||
|
- The following processor flags shall be present:
|
||||||
|
- `msr` shall be present for plugin to read platform data from processor
|
||||||
|
model specific registers and collect the following metrics:
|
||||||
|
- `cpu_c0_state_residency`
|
||||||
|
- `cpu_c1_state_residency`
|
||||||
|
- `cpu_c3_state_residency`
|
||||||
|
- `cpu_c6_state_residency`
|
||||||
|
- `cpu_c7_state_residency`
|
||||||
|
- `cpu_busy_cycles` (**DEPRECATED** - superseded by `cpu_c0_state_residency_percent`)
|
||||||
|
- `cpu_busy_frequency`
|
||||||
|
- `cpu_temperature`
|
||||||
|
- `cpu_base_frequency`
|
||||||
|
- `max_turbo_frequency`
|
||||||
|
- `uncore_frequency` (for kernel < 5.18)
|
||||||
|
- `aperfmperf` shall be present to collect the following metrics:
|
||||||
|
- `cpu_c0_state_residency`
|
||||||
|
- `cpu_c1_state_residency`
|
||||||
|
- `cpu_busy_cycles` (**DEPRECATED** - superseded by `cpu_c0_state_residency_percent`)
|
||||||
|
- `cpu_busy_frequency`
|
||||||
|
- `dts` shall be present to collect:
|
||||||
|
- `cpu_temperature`
|
||||||
|
- supported CPU model. To see which metrics are supported by your `model`. The
|
||||||
|
following metrics exist:
|
||||||
|
- `cpu_c1_state_residency`
|
||||||
|
- `cpu_c3_state_residency`
|
||||||
|
- `cpu_c6_state_residency`
|
||||||
|
- `cpu_c7_state_residency`
|
||||||
|
- `cpu_temperature`
|
||||||
|
- `cpu_base_frequency`
|
||||||
|
- `uncore_frequency`
|
||||||
|
|
||||||
|
### Supported CPU models
|
||||||
|
|
||||||
|
| Model number | Processor name | `cpu_c1_state_residency`<br/>`cpu_c6_state_residency`<br/>`cpu_temperature`<br/>`cpu_base_frequency` | `cpu_c3_state_residency` | `cpu_c7_state_residency` | `uncore_frequency` |
|
||||||
|
|--------------|---------------------------------|:----------------------------------------------------------------------------------------------------:|:------------------------:|:------------------------:|:------------------:|
|
||||||
|
| 0x1E | Intel Nehalem | ✓ | ✓ | | |
|
||||||
|
| 0x1F | Intel Nehalem-G | ✓ | ✓ | | |
|
||||||
|
| 0x1A | Intel Nehalem-EP | ✓ | ✓ | | |
|
||||||
|
| 0x2E | Intel Nehalem-EX | ✓ | ✓ | | |
|
||||||
|
| 0x25 | Intel Westmere | ✓ | ✓ | | |
|
||||||
|
| 0x2C | Intel Westmere-EP | ✓ | ✓ | | |
|
||||||
|
| 0x2F | Intel Westmere-EX | ✓ | ✓ | | |
|
||||||
|
| 0x2A | Intel Sandybridge | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x2D | Intel Sandybridge-X | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x3A | Intel Ivybridge | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x3E | Intel Ivybridge-X | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x3C | Intel Haswell | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x3F | Intel Haswell-X | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x45 | Intel Haswell-L | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x46 | Intel Haswell-G | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x3D | Intel Broadwell | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x47 | Intel Broadwell-G | ✓ | ✓ | ✓ | ✓ |
|
||||||
|
| 0x4F | Intel Broadwell-X | ✓ | ✓ | | ✓ |
|
||||||
|
| 0x56 | Intel Broadwell-D | ✓ | ✓ | | ✓ |
|
||||||
|
| 0x4E | Intel Skylake-L | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x5E | Intel Skylake | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x55 | Intel Skylake-X | ✓ | | | ✓ |
|
||||||
|
| 0x8E | Intel KabyLake-L | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x9E | Intel KabyLake | ✓ | ✓ | ✓ | |
|
||||||
|
| 0xA5 | Intel CometLake | ✓ | ✓ | ✓ | |
|
||||||
|
| 0xA6 | Intel CometLake-L | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x66 | Intel CannonLake-L | ✓ | | ✓ | |
|
||||||
|
| 0x6A | Intel IceLake-X | ✓ | | | ✓ |
|
||||||
|
| 0x6C | Intel IceLake-D | ✓ | | | ✓ |
|
||||||
|
| 0x7D | Intel IceLake | ✓ | | | |
|
||||||
|
| 0x7E | Intel IceLake-L | ✓ | | ✓ | |
|
||||||
|
| 0x9D | Intel IceLake-NNPI | ✓ | | ✓ | |
|
||||||
|
| 0xA7 | Intel RocketLake | ✓ | | ✓ | |
|
||||||
|
| 0x8C | Intel TigerLake-L | ✓ | | ✓ | |
|
||||||
|
| 0x8D | Intel TigerLake | ✓ | | ✓ | |
|
||||||
|
| 0x8F | Intel Sapphire Rapids X | ✓ | | | ✓ |
|
||||||
|
| 0xCF | Intel Emerald Rapids X | ✓ | | | ✓ |
|
||||||
|
| 0xAD | Intel Granite Rapids X | ✓ | | | |
|
||||||
|
| 0xAE | Intel Granite Rapids D | ✓ | | | |
|
||||||
|
| 0x8A | Intel Lakefield | ✓ | | ✓ | |
|
||||||
|
| 0x97 | Intel AlderLake | ✓ | | ✓ | ✓ |
|
||||||
|
| 0x9A | Intel AlderLake-L | ✓ | | ✓ | ✓ |
|
||||||
|
| 0xB7 | Intel RaptorLake | ✓ | | ✓ | ✓ |
|
||||||
|
| 0xBA | Intel RaptorLake-P | ✓ | | ✓ | ✓ |
|
||||||
|
| 0xBF | Intel RaptorLake-S | ✓ | | ✓ | ✓ |
|
||||||
|
| 0xAC | Intel MeteorLake | ✓ | | ✓ | ✓ |
|
||||||
|
| 0xAA | Intel MeteorLake-L | ✓ | | ✓ | ✓ |
|
||||||
|
| 0xC6 | Intel ArrowLake | ✓ | | ✓ | |
|
||||||
|
| 0xBD | Intel LunarLake | ✓ | | ✓ | |
|
||||||
|
| 0x37 | Intel Atom® Bay Trail | ✓ | | | |
|
||||||
|
| 0x4D | Intel Atom® Avaton | ✓ | | | |
|
||||||
|
| 0x4A | Intel Atom® Merrifield | ✓ | | | |
|
||||||
|
| 0x5A | Intel Atom® Moorefield | ✓ | | | |
|
||||||
|
| 0x4C | Intel Atom® Airmont | ✓ | ✓ | | |
|
||||||
|
| 0x5C | Intel Atom® Apollo Lake | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x5F | Intel Atom® Denverton | ✓ | | | |
|
||||||
|
| 0x7A | Intel Atom® Goldmont | ✓ | ✓ | ✓ | |
|
||||||
|
| 0x86 | Intel Atom® Jacobsville | ✓ | | | |
|
||||||
|
| 0x96 | Intel Atom® Elkhart Lake | ✓ | | ✓ | |
|
||||||
|
| 0x9C | Intel Atom® Jasper Lake | ✓ | | ✓ | |
|
||||||
|
| 0xBE | Intel AlderLake-N | ✓ | | ✓ | |
|
||||||
|
| 0xAF | Intel Sierra Forest | ✓ | | | |
|
||||||
|
| 0xB6 | Intel Grand Ridge | ✓ | | | |
|
||||||
|
| 0x57 | Intel Xeon® PHI Knights Landing | ✓ | | | |
|
||||||
|
| 0x85 | Intel Xeon® PHI Knights Mill | ✓ | | | |
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -53,15 +244,13 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
## "cpu_c0_substate_c02", "cpu_c0_substate_c0_wait"
|
## "cpu_c0_substate_c02", "cpu_c0_substate_c0_wait"
|
||||||
# cpu_metrics = []
|
# cpu_metrics = []
|
||||||
|
|
||||||
## Optionally the user can choose for which CPUs metrics configured in cpu_metrics array should be gathered.
|
## CPUs metrics to include from those configured in cpu_metrics array
|
||||||
## Can't be combined with excluded_cpus.
|
## Can't be combined with excluded_cpus. Empty means all CPUs are gathered.
|
||||||
## Empty or missing array means CPU metrics are gathered for all CPUs.
|
|
||||||
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
|
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
|
||||||
# included_cpus = []
|
# included_cpus = []
|
||||||
|
|
||||||
## Optionally the user can choose which CPUs should be excluded from gathering metrics configured in cpu_metrics array.
|
## CPUs metrics to exclude from those configured in cpu_metrics array
|
||||||
## Can't be combined with included_cpus.
|
## Can't be combined with included_cpus. Empty means all CPUs are gathered.
|
||||||
## Empty or missing array means CPU metrics are gathered for all CPUs.
|
|
||||||
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
|
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
|
||||||
# excluded_cpus = []
|
# excluded_cpus = []
|
||||||
|
|
||||||
|
|
@ -76,19 +265,51 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
# msr_read_timeout = "0ms"
|
# msr_read_timeout = "0ms"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Configuration notes
|
1. The configuration of `included_cpus` or `excluded_cpus` may affect the
|
||||||
|
ability to collect `package_metrics`. Some of them
|
||||||
|
(`max_turbo_frequency`, `cpu_base_frequency`, and `uncore_frequency`) need to
|
||||||
|
read data from exactly one processor for each package. If `included_cpus` or
|
||||||
|
`excluded_cpus` exclude all processors from the package, reading th
|
||||||
|
mentioned metrics for that package will not be possible.
|
||||||
|
2. `event_definitions` JSON file for specific architecture can be found at
|
||||||
|
[perfmon][perfmon]. A script to download the event definition that is
|
||||||
|
appropriate for current environment (`event_download.py`) is available at
|
||||||
|
[pmu-tools][pmu_tools]. For perf-related metrics supported by this plugin,
|
||||||
|
an event definition JSON file with events for the `core` is required, e.g.
|
||||||
|
`sapphirerapids_core.json` or `GenuineIntel-6-8F-core.json`.
|
||||||
|
|
||||||
1. The configuration of `included_cpus` or `excluded_cpus` may affect the ability to collect `package_metrics`.
|
[perfmon]: https://github.com/intel/perfmon
|
||||||
Some of them (`max_turbo_frequency`, `cpu_base_frequency`, and `uncore_frequency`) need to read data
|
[pmu_tools]: https://github.com/andikleen/pmu-tools
|
||||||
from exactly one processor for each package. If `included_cpus` or `excluded_cpus` exclude all processors
|
|
||||||
from the package, reading the mentioned metrics for that package will not be possible.
|
|
||||||
2. `event_definitions` JSON file for specific architecture can be found at [perfmon](https://github.com/intel/perfmon).
|
|
||||||
A script to download the event definition that is appropriate for current environment (`event_download.py`) is
|
|
||||||
available at [pmu-tools](https://github.com/andikleen/pmu-tools).
|
|
||||||
For perf-related metrics supported by this plugin, an event definition JSON file
|
|
||||||
with events for the `core` is required.
|
|
||||||
|
|
||||||
For example: `sapphirerapids_core.json` or `GenuineIntel-6-8F-core.json`.
|
### Dependencies of metrics on system configuration
|
||||||
|
|
||||||
|
Details of these dependencies are discussed above:
|
||||||
|
|
||||||
|
| Configuration option | Type | Dependency |
|
||||||
|
|--------------------------------------------------------------------------|-------------------|-------------------|
|
||||||
|
| `current_power_consumption` | `package_metrics` | `rapl` module |
|
||||||
|
| `current_dram_power_consumption` | `package_metrics` | `rapl` module |
|
||||||
|
| `thermal_design_power` | `package_metrics` | `rapl` module |
|
||||||
|
| `max_turbo_frequency` | `package_metrics` | `msr` module |
|
||||||
|
| `uncore_frequency` | `package_metrics` | `intel-uncore-frequency` module* |
|
||||||
|
| `cpu_base_frequency` | `package_metrics` | `msr` module |
|
||||||
|
| `cpu_frequency` | `cpu_metrics` | `cpufreq` module |
|
||||||
|
| `cpu_c0_state_residency` | `cpu_metrics` | `msr` module |
|
||||||
|
| `cpu_c1_state_residency` | `cpu_metrics` | `msr` module |
|
||||||
|
| `cpu_c3_state_residency` | `cpu_metrics` | `msr` module |
|
||||||
|
| `cpu_c6_state_residency` | `cpu_metrics` | `msr` module |
|
||||||
|
| `cpu_c7_state_residency` | `cpu_metrics` | `msr` module |
|
||||||
|
| `cpu_busy_cycles` (**DEPRECATED**, use `cpu_c0_state_residency_percent`) | `cpu_metrics` | `msr` module |
|
||||||
|
| `cpu_temperature` | `cpu_metrics` | `msr` module |
|
||||||
|
| `cpu_busy_frequency` | `cpu_metrics` | `msr` module |
|
||||||
|
| `cpu_c0_substate_c01` | `cpu_metrics` | `perf` interface |
|
||||||
|
| `cpu_c0_substate_c02` | `cpu_metrics` | `perf` interface |
|
||||||
|
| `cpu_c0_substate_c0_wait` | `cpu_metrics` | `perf` interface |
|
||||||
|
|
||||||
|
*for all metrics enabled by the configuration option `uncore_frequency`,
|
||||||
|
starting from kernel version 5.18, only the `intel-uncore-frequency` module
|
||||||
|
is required. For older kernel versions, the metric `uncore_frequency_mhz_cur`
|
||||||
|
requires the `msr` module to be enabled.
|
||||||
|
|
||||||
### Example: Configuration with no per-CPU telemetry
|
### Example: Configuration with no per-CPU telemetry
|
||||||
|
|
||||||
|
|
@ -146,167 +367,13 @@ all per-CPU metrics:
|
||||||
event_definitions = "/home/telegraf/.cache/pmu-events/GenuineIntel-6-8F-core.json"
|
event_definitions = "/home/telegraf/.cache/pmu-events/GenuineIntel-6-8F-core.json"
|
||||||
```
|
```
|
||||||
|
|
||||||
## SW Dependencies
|
|
||||||
|
|
||||||
### Kernel modules
|
|
||||||
|
|
||||||
Plugin is mostly based on Linux Kernel modules that expose specific metrics over
|
|
||||||
`sysfs` or `devfs` interfaces. The following dependencies are expected by
|
|
||||||
plugin:
|
|
||||||
|
|
||||||
- `intel-rapl` kernel module which exposes Intel Runtime Power Limiting metrics over
|
|
||||||
`sysfs` (`/sys/devices/virtual/powercap/intel-rapl`),
|
|
||||||
- `msr` kernel module that provides access to processor model specific
|
|
||||||
registers over `devfs` (`/dev/cpu/cpu%d/msr`),
|
|
||||||
- `cpufreq` kernel module - which exposes per-CPU Frequency over `sysfs`
|
|
||||||
(`/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq`),
|
|
||||||
- `intel-uncore-frequency` kernel module exposes Intel uncore frequency metrics
|
|
||||||
over `sysfs` (`/sys/devices/system/cpu/intel_uncore_frequency`).
|
|
||||||
|
|
||||||
Make sure that required kernel modules are loaded and running.
|
|
||||||
Modules might have to be manually enabled by using `modprobe`.
|
|
||||||
Depending on the kernel version, run commands:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# rapl modules:
|
|
||||||
## kernel < 4.0
|
|
||||||
sudo modprobe intel_rapl
|
|
||||||
## kernel >= 4.0
|
|
||||||
sudo modprobe rapl
|
|
||||||
sudo modprobe intel_rapl_common
|
|
||||||
sudo modprobe intel_rapl_msr
|
|
||||||
|
|
||||||
# msr module:
|
|
||||||
sudo modprobe msr
|
|
||||||
|
|
||||||
# cpufreq module:
|
|
||||||
### integrated in kernel
|
|
||||||
|
|
||||||
# intel-uncore-frequency module:
|
|
||||||
## only for kernel >= 5.6.0
|
|
||||||
sudo modprobe intel-uncore-frequency
|
|
||||||
```
|
|
||||||
|
|
||||||
### Kernel's perf interface
|
|
||||||
|
|
||||||
For perf-related metrics, when Telegraf is not running as root,
|
|
||||||
the following capability should be added to the Telegraf executable:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo setcap cap_sys_admin+ep <path_to_telegraf_binary>
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively, `/proc/sys/kernel/perf_event_paranoid` has to be set to
|
|
||||||
value less than 1.
|
|
||||||
|
|
||||||
Depending on environment and configuration (number of monitored CPUs
|
|
||||||
and number of enabled metrics), it might be required to increase
|
|
||||||
the limit on the number of open file descriptors allowed.
|
|
||||||
This can be done for example by using `ulimit -n` command.
|
|
||||||
|
|
||||||
### Dependencies of metrics on system configuration
|
|
||||||
|
|
||||||
Details of these dependencies are discussed above:
|
|
||||||
|
|
||||||
| Configuration option | Type | Dependency |
|
|
||||||
|-------------------------------------------------------------------------------------|-------------------|------------------------------------------------|
|
|
||||||
| `current_power_consumption` | `package_metrics` | `rapl` kernel module(s) |
|
|
||||||
| `current_dram_power_consumption` | `package_metrics` | `rapl` kernel module(s) |
|
|
||||||
| `thermal_design_power` | `package_metrics` | `rapl` kernel module(s) |
|
|
||||||
| `max_turbo_frequency` | `package_metrics` | `msr` kernel module |
|
|
||||||
| `uncore_frequency` | `package_metrics` | `intel-uncore-frequency`/`msr` kernel modules* |
|
|
||||||
| `cpu_base_frequency` | `package_metrics` | `msr` kernel module |
|
|
||||||
| `cpu_frequency` | `cpu_metrics` | `cpufreq` kernel module |
|
|
||||||
| `cpu_c0_state_residency` | `cpu_metrics` | `msr` kernel module |
|
|
||||||
| `cpu_c1_state_residency` | `cpu_metrics` | `msr` kernel module |
|
|
||||||
| `cpu_c3_state_residency` | `cpu_metrics` | `msr` kernel module |
|
|
||||||
| `cpu_c6_state_residency` | `cpu_metrics` | `msr` kernel module |
|
|
||||||
| `cpu_c7_state_residency` | `cpu_metrics` | `msr` kernel module |
|
|
||||||
| `cpu_busy_cycles` (**DEPRECATED** - superseded by `cpu_c0_state_residency_percent`) | `cpu_metrics` | `msr` kernel module |
|
|
||||||
| `cpu_temperature` | `cpu_metrics` | `msr` kernel module |
|
|
||||||
| `cpu_busy_frequency` | `cpu_metrics` | `msr` kernel module |
|
|
||||||
| `cpu_c0_substate_c01` | `cpu_metrics` | kernel's `perf` interface |
|
|
||||||
| `cpu_c0_substate_c02` | `cpu_metrics` | kernel's `perf` interface |
|
|
||||||
| `cpu_c0_substate_c0_wait` | `cpu_metrics` | kernel's `perf` interface |
|
|
||||||
|
|
||||||
*for all metrics enabled by the configuration option `uncore_frequency`,
|
|
||||||
starting from kernel version 5.18, only the `intel-uncore-frequency` module
|
|
||||||
is required. For older kernel versions, the metric `uncore_frequency_mhz_cur`
|
|
||||||
requires the `msr` module to be enabled.
|
|
||||||
|
|
||||||
### Root privileges
|
|
||||||
|
|
||||||
**Telegraf with Intel PowerStat plugin enabled may require
|
|
||||||
root privileges to read all the metrics**
|
|
||||||
(depending on OS type or configuration).
|
|
||||||
|
|
||||||
Alternatively, the following capabilities can be added to
|
|
||||||
the Telegraf executable:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
#without perf-related metrics:
|
|
||||||
sudo setcap cap_sys_rawio,cap_dac_read_search+ep <path_to_telegraf_binary>
|
|
||||||
|
|
||||||
#with perf-related metrics:
|
|
||||||
sudo setcap cap_sys_rawio,cap_dac_read_search,cap_sys_admin+ep <path_to_telegraf_binary>
|
|
||||||
```
|
|
||||||
|
|
||||||
## HW Dependencies
|
|
||||||
|
|
||||||
Specific metrics require certain processor features to be present, otherwise
|
|
||||||
Intel PowerStat plugin won't be able to read them. The user can detect supported
|
|
||||||
processor features by reading `/proc/cpuinfo` file.
|
|
||||||
Plugin assumes crucial properties are the same for all CPU cores in the system.
|
|
||||||
|
|
||||||
The following `processor` properties are examined in more detail
|
|
||||||
in this section:
|
|
||||||
|
|
||||||
- `vendor_id`
|
|
||||||
- `cpu family`
|
|
||||||
- `model`
|
|
||||||
- `flags`
|
|
||||||
|
|
||||||
The following processor properties are required by the plugin:
|
|
||||||
|
|
||||||
- Processor `vendor_id` must be `GenuineIntel` and `cpu family` must be `6` -
|
|
||||||
since data used by the plugin are Intel-specific.
|
|
||||||
- The following processor flags shall be present:
|
|
||||||
- `msr` shall be present for plugin to read platform data from processor
|
|
||||||
model specific registers and collect the following metrics:
|
|
||||||
- `cpu_c0_state_residency`
|
|
||||||
- `cpu_c1_state_residency`
|
|
||||||
- `cpu_c3_state_residency`
|
|
||||||
- `cpu_c6_state_residency`
|
|
||||||
- `cpu_c7_state_residency`
|
|
||||||
- `cpu_busy_cycles` (**DEPRECATED** - superseded by `cpu_c0_state_residency_percent`)
|
|
||||||
- `cpu_busy_frequency`
|
|
||||||
- `cpu_temperature`
|
|
||||||
- `cpu_base_frequency`
|
|
||||||
- `max_turbo_frequency`
|
|
||||||
- `uncore_frequency` (for kernel < 5.18)
|
|
||||||
- `aperfmperf` shall be present to collect the following metrics:
|
|
||||||
- `cpu_c0_state_residency`
|
|
||||||
- `cpu_c1_state_residency`
|
|
||||||
- `cpu_busy_cycles` (**DEPRECATED** - superseded by `cpu_c0_state_residency_percent`)
|
|
||||||
- `cpu_busy_frequency`
|
|
||||||
- `dts` shall be present to collect:
|
|
||||||
- `cpu_temperature`
|
|
||||||
- Please consult the table of [supported CPU models](#supported-cpu-models) to see which metrics are supported by your `model`. The following metrics exist:
|
|
||||||
- `cpu_c1_state_residency`
|
|
||||||
- `cpu_c3_state_residency`
|
|
||||||
- `cpu_c6_state_residency`
|
|
||||||
- `cpu_c7_state_residency`
|
|
||||||
- `cpu_temperature`
|
|
||||||
- `cpu_base_frequency`
|
|
||||||
- `uncore_frequency`
|
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
All metrics collected by Intel PowerStat plugin are collected in fixed
|
All metrics collected by Intel PowerStat plugin are collected in fixed
|
||||||
intervals. Metrics that reports processor C-state residency or power are
|
intervals. Metrics that reports processor C-state residency or power are
|
||||||
calculated over elapsed intervals.
|
calculated over elapsed intervals.
|
||||||
|
|
||||||
**The following measurements are supported by Intel PowerStat plugin:**
|
The following measurements are supported by Intel PowerStat plugin:
|
||||||
|
|
||||||
- `powerstat_core`
|
- `powerstat_core`
|
||||||
- The following tags are returned by plugin with
|
- The following tags are returned by plugin with
|
||||||
|
|
@ -409,73 +476,3 @@ powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c0_substate_c01_p
|
||||||
powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c0_substate_c02_percent=5.68 1606494744000000000
|
powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c0_substate_c02_percent=5.68 1606494744000000000
|
||||||
powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c0_substate_c0_wait_percent=43.74 1606494744000000000
|
powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c0_substate_c0_wait_percent=43.74 1606494744000000000
|
||||||
```
|
```
|
||||||
|
|
||||||
## Supported CPU models
|
|
||||||
|
|
||||||
| Model number | Processor name | `cpu_c1_state_residency`<br/>`cpu_c6_state_residency`<br/>`cpu_temperature`<br/>`cpu_base_frequency` | `cpu_c3_state_residency` | `cpu_c7_state_residency` | `uncore_frequency` |
|
|
||||||
|--------------|---------------------------------|:----------------------------------------------------------------------------------------------------:|:------------------------:|:------------------------:|:------------------:|
|
|
||||||
| 0x1E | Intel Nehalem | ✓ | ✓ | | |
|
|
||||||
| 0x1F | Intel Nehalem-G | ✓ | ✓ | | |
|
|
||||||
| 0x1A | Intel Nehalem-EP | ✓ | ✓ | | |
|
|
||||||
| 0x2E | Intel Nehalem-EX | ✓ | ✓ | | |
|
|
||||||
| 0x25 | Intel Westmere | ✓ | ✓ | | |
|
|
||||||
| 0x2C | Intel Westmere-EP | ✓ | ✓ | | |
|
|
||||||
| 0x2F | Intel Westmere-EX | ✓ | ✓ | | |
|
|
||||||
| 0x2A | Intel Sandybridge | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x2D | Intel Sandybridge-X | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x3A | Intel Ivybridge | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x3E | Intel Ivybridge-X | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x3C | Intel Haswell | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x3F | Intel Haswell-X | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x45 | Intel Haswell-L | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x46 | Intel Haswell-G | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x3D | Intel Broadwell | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x47 | Intel Broadwell-G | ✓ | ✓ | ✓ | ✓ |
|
|
||||||
| 0x4F | Intel Broadwell-X | ✓ | ✓ | | ✓ |
|
|
||||||
| 0x56 | Intel Broadwell-D | ✓ | ✓ | | ✓ |
|
|
||||||
| 0x4E | Intel Skylake-L | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x5E | Intel Skylake | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x55 | Intel Skylake-X | ✓ | | | ✓ |
|
|
||||||
| 0x8E | Intel KabyLake-L | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x9E | Intel KabyLake | ✓ | ✓ | ✓ | |
|
|
||||||
| 0xA5 | Intel CometLake | ✓ | ✓ | ✓ | |
|
|
||||||
| 0xA6 | Intel CometLake-L | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x66 | Intel CannonLake-L | ✓ | | ✓ | |
|
|
||||||
| 0x6A | Intel IceLake-X | ✓ | | | ✓ |
|
|
||||||
| 0x6C | Intel IceLake-D | ✓ | | | ✓ |
|
|
||||||
| 0x7D | Intel IceLake | ✓ | | | |
|
|
||||||
| 0x7E | Intel IceLake-L | ✓ | | ✓ | |
|
|
||||||
| 0x9D | Intel IceLake-NNPI | ✓ | | ✓ | |
|
|
||||||
| 0xA7 | Intel RocketLake | ✓ | | ✓ | |
|
|
||||||
| 0x8C | Intel TigerLake-L | ✓ | | ✓ | |
|
|
||||||
| 0x8D | Intel TigerLake | ✓ | | ✓ | |
|
|
||||||
| 0x8F | Intel Sapphire Rapids X | ✓ | | | ✓ |
|
|
||||||
| 0xCF | Intel Emerald Rapids X | ✓ | | | ✓ |
|
|
||||||
| 0xAD | Intel Granite Rapids X | ✓ | | | |
|
|
||||||
| 0xAE | Intel Granite Rapids D | ✓ | | | |
|
|
||||||
| 0x8A | Intel Lakefield | ✓ | | ✓ | |
|
|
||||||
| 0x97 | Intel AlderLake | ✓ | | ✓ | ✓ |
|
|
||||||
| 0x9A | Intel AlderLake-L | ✓ | | ✓ | ✓ |
|
|
||||||
| 0xB7 | Intel RaptorLake | ✓ | | ✓ | ✓ |
|
|
||||||
| 0xBA | Intel RaptorLake-P | ✓ | | ✓ | ✓ |
|
|
||||||
| 0xBF | Intel RaptorLake-S | ✓ | | ✓ | ✓ |
|
|
||||||
| 0xAC | Intel MeteorLake | ✓ | | ✓ | ✓ |
|
|
||||||
| 0xAA | Intel MeteorLake-L | ✓ | | ✓ | ✓ |
|
|
||||||
| 0xC6 | Intel ArrowLake | ✓ | | ✓ | |
|
|
||||||
| 0xBD | Intel LunarLake | ✓ | | ✓ | |
|
|
||||||
| 0x37 | Intel Atom® Bay Trail | ✓ | | | |
|
|
||||||
| 0x4D | Intel Atom® Avaton | ✓ | | | |
|
|
||||||
| 0x4A | Intel Atom® Merrifield | ✓ | | | |
|
|
||||||
| 0x5A | Intel Atom® Moorefield | ✓ | | | |
|
|
||||||
| 0x4C | Intel Atom® Airmont | ✓ | ✓ | | |
|
|
||||||
| 0x5C | Intel Atom® Apollo Lake | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x5F | Intel Atom® Denverton | ✓ | | | |
|
|
||||||
| 0x7A | Intel Atom® Goldmont | ✓ | ✓ | ✓ | |
|
|
||||||
| 0x86 | Intel Atom® Jacobsville | ✓ | | | |
|
|
||||||
| 0x96 | Intel Atom® Elkhart Lake | ✓ | | ✓ | |
|
|
||||||
| 0x9C | Intel Atom® Jasper Lake | ✓ | | ✓ | |
|
|
||||||
| 0xBE | Intel AlderLake-N | ✓ | | ✓ | |
|
|
||||||
| 0xAF | Intel Sierra Forest | ✓ | | | |
|
|
||||||
| 0xB6 | Intel Grand Ridge | ✓ | | | |
|
|
||||||
| 0x57 | Intel Xeon® PHI Knights Landing | ✓ | | | |
|
|
||||||
| 0x85 | Intel Xeon® PHI Knights Mill | ✓ | | | |
|
|
||||||
|
|
|
||||||
|
|
@ -27,15 +27,13 @@
|
||||||
## "cpu_c0_substate_c02", "cpu_c0_substate_c0_wait"
|
## "cpu_c0_substate_c02", "cpu_c0_substate_c0_wait"
|
||||||
# cpu_metrics = []
|
# cpu_metrics = []
|
||||||
|
|
||||||
## Optionally the user can choose for which CPUs metrics configured in cpu_metrics array should be gathered.
|
## CPUs metrics to include from those configured in cpu_metrics array
|
||||||
## Can't be combined with excluded_cpus.
|
## Can't be combined with excluded_cpus. Empty means all CPUs are gathered.
|
||||||
## Empty or missing array means CPU metrics are gathered for all CPUs.
|
|
||||||
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
|
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
|
||||||
# included_cpus = []
|
# included_cpus = []
|
||||||
|
|
||||||
## Optionally the user can choose which CPUs should be excluded from gathering metrics configured in cpu_metrics array.
|
## CPUs metrics to exclude from those configured in cpu_metrics array
|
||||||
## Can't be combined with included_cpus.
|
## Can't be combined with included_cpus. Empty means all CPUs are gathered.
|
||||||
## Empty or missing array means CPU metrics are gathered for all CPUs.
|
|
||||||
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
|
## e.g. ["0-3", "4,5,6"] or ["1-3,4"]
|
||||||
# excluded_cpus = []
|
# excluded_cpus = []
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
# Intel RDT Input Plugin
|
# Intel RDT Input Plugin
|
||||||
|
|
||||||
The `intel_rdt` plugin collects information provided by monitoring features of
|
This plugin collects information provided by monitoring features of the
|
||||||
the Intel Resource Director Technology (Intel(R) RDT). Intel RDT provides the
|
[Intel Resource Director Technology][rdt], a hardware framework to monitor and
|
||||||
hardware framework to monitor and control the utilization of shared resources
|
control the utilization of shared resources (e.g. last level cache,
|
||||||
(ex: last level cache, memory bandwidth).
|
memory bandwidth).
|
||||||
|
|
||||||
## About Intel RDT
|
|
||||||
|
|
||||||
Intel’s Resource Director Technology (RDT) framework consists of:
|
Intel’s Resource Director Technology (RDT) framework consists of:
|
||||||
|
|
||||||
|
|
@ -20,76 +18,30 @@ single-threaded, multithreaded, or complex virtual machine environments. Intel
|
||||||
introduces CMT, MBM, CAT and CDP to manage these workloads across shared
|
introduces CMT, MBM, CAT and CDP to manage these workloads across shared
|
||||||
resources.
|
resources.
|
||||||
|
|
||||||
## Prerequsities - PQoS Tool
|
⭐ Telegraf v1.16.0
|
||||||
|
🏷️ hardware, system
|
||||||
|
💻 linux, freebsd, macos
|
||||||
|
|
||||||
To gather Intel RDT metrics, the `intel_rdt` plugin uses _pqos_ cli tool which
|
[rdt]: https://www.intel.com/content/www/us/en/architecture-and-technology/resource-director-technology.html
|
||||||
is a part of [Intel(R) RDT Software
|
|
||||||
Package](https://github.com/intel/intel-cmt-cat). Before using this plugin
|
|
||||||
please be sure _pqos_ is properly installed and configured regarding that the
|
|
||||||
plugin run _pqos_ to work with `OS Interface` mode. This plugin supports _pqos_
|
|
||||||
version 4.0.0 and above. Note: pqos tool needs root privileges to work
|
|
||||||
properly.
|
|
||||||
|
|
||||||
Metrics will be constantly reported from the following `pqos` commands within
|
## Requirements
|
||||||
the given interval:
|
|
||||||
|
|
||||||
### If telegraf does not run as the root user
|
The plugin requires the `pqos` cli tool in version 4.0+ to be installed and
|
||||||
|
configured to work in `OS Interface` mode. The tool is part of the
|
||||||
|
[Intel(R) RDT Software Package][cmt_cat].
|
||||||
|
|
||||||
The `pqos` binary needs to run as root. If telegraf is running as a non-root
|
> [!IMPORTANT]
|
||||||
user, you may enable sudo to allow `pqos` to run correctly. The `pqos` command
|
> The `pqos` binary needs to run as root. If telegraf is not running as root
|
||||||
requires root level access to run. There are two options to overcome this if
|
> you need to enable sudo for `pqos` and set the `use_sudo` option to `true`.
|
||||||
you run telegraf as a non-root user.
|
|
||||||
|
|
||||||
It is possible to update the pqos binary with setuid using `chmod u+s
|
To setup `pqos` correctly check the [installation guide][install]. For help on
|
||||||
/path/to/pqos`. This approach is simple and requires no modification to the
|
how to configure the tool visit the [wiki][wiki] and read the
|
||||||
Telegraf configuration, however pqos is not a read-only tool and there are
|
[resource control documentation][resctl]
|
||||||
security implications for making such a command setuid root.
|
|
||||||
|
|
||||||
Alternately, you may enable sudo to allow `pqos` to run correctly, as follows:
|
[cmt_cat]: https://github.com/intel/intel-cmt-cat
|
||||||
|
[install]: https://github.com/intel/intel-cmt-cat/blob/master/INSTALL
|
||||||
Add the following to your sudoers file (assumes telegraf runs as a user named
|
[wiki]: https://github.com/intel/intel-cmt-cat/wiki
|
||||||
`telegraf`):
|
[resctl]: https://github.com/intel/intel-cmt-cat/wiki/resctrl
|
||||||
|
|
||||||
```sh
|
|
||||||
telegraf ALL=(ALL) NOPASSWD:/usr/sbin/pqos -r --iface-os --mon-file-type=csv --mon-interval=*
|
|
||||||
```
|
|
||||||
|
|
||||||
If you wish to use sudo, you must also add `use_sudo = true` to the Telegraf
|
|
||||||
configuration (see below).
|
|
||||||
|
|
||||||
### In case of cores monitoring
|
|
||||||
|
|
||||||
```sh
|
|
||||||
pqos -r --iface-os --mon-file-type=csv --mon-interval=INTERVAL --mon-core=all:[CORES]\;mbt:[CORES]
|
|
||||||
```
|
|
||||||
|
|
||||||
where `CORES` is equal to group of cores provided in config. User can provide
|
|
||||||
many groups.
|
|
||||||
|
|
||||||
### In case of process monitoring
|
|
||||||
|
|
||||||
```sh
|
|
||||||
pqos -r --iface-os --mon-file-type=csv --mon-interval=INTERVAL --mon-pid=all:[PIDS]\;mbt:[PIDS]
|
|
||||||
```
|
|
||||||
|
|
||||||
where `PIDS` is group of processes IDs which name are equal to provided process
|
|
||||||
name in a config. User can provide many process names which lead to create many
|
|
||||||
processes groups.
|
|
||||||
|
|
||||||
In both cases `INTERVAL` is equal to sampling_interval from config.
|
|
||||||
|
|
||||||
Because PIDs association within system could change in every moment, Intel RDT
|
|
||||||
plugin provides a functionality to check on every interval if desired processes
|
|
||||||
change their PIDs association. If some change is reported, plugin will restart
|
|
||||||
_pqos_ tool with new arguments. If provided by user process name is not equal to
|
|
||||||
any of available processes, will be omitted and plugin will constantly check for
|
|
||||||
process availability.
|
|
||||||
|
|
||||||
## Useful links
|
|
||||||
|
|
||||||
- Pqos installation process: <https://github.com/intel/intel-cmt-cat/blob/master/INSTALL>
|
|
||||||
- Enabling OS interface: <https://github.com/intel/intel-cmt-cat/wiki>, <https://github.com/intel/intel-cmt-cat/wiki/resctrl>
|
|
||||||
- More about Intel RDT: <https://www.intel.com/content/www/us/en/architecture-and-technology/resource-director-technology.html>
|
|
||||||
|
|
||||||
## Service Input <!-- @/docs/includes/service_input.md -->
|
## Service Input <!-- @/docs/includes/service_input.md -->
|
||||||
|
|
||||||
|
|
@ -145,19 +97,6 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
# use_sudo = false
|
# use_sudo = false
|
||||||
```
|
```
|
||||||
|
|
||||||
## Metrics
|
|
||||||
|
|
||||||
| Name | Full name | Description |
|
|
||||||
|---------------|-----------------------------------------------|-------------|
|
|
||||||
| MBL | Memory Bandwidth on Local NUMA Node | Memory bandwidth utilization by the relevant CPU core/process on the local NUMA memory channel |
|
|
||||||
| MBR | Memory Bandwidth on Remote NUMA Node | Memory bandwidth utilization by the relevant CPU core/process on the remote NUMA memory channel |
|
|
||||||
| MBT | Total Memory Bandwidth | Total memory bandwidth utilized by a CPU core/process on local and remote NUMA memory channels |
|
|
||||||
| LLC | L3 Cache Occupancy | Total Last Level Cache occupancy by a CPU core/process |
|
|
||||||
| LLC_Misses* | L3 Cache Misses | Total Last Level Cache misses by a CPU core/process |
|
|
||||||
| IPC* | Instructions Per Cycle | Total instructions per cycle executed by a CPU core/process |
|
|
||||||
|
|
||||||
*optional
|
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
Pointing to non-existing cores will lead to throwing an error by _pqos_ and the
|
Pointing to non-existing cores will lead to throwing an error by _pqos_ and the
|
||||||
|
|
@ -178,6 +117,19 @@ pidof PROCESS
|
||||||
|
|
||||||
where `PROCESS` is process name.
|
where `PROCESS` is process name.
|
||||||
|
|
||||||
|
## Metrics
|
||||||
|
|
||||||
|
| Name | Full name | Description |
|
||||||
|
|---------------|-----------------------------------------------|-------------|
|
||||||
|
| MBL | Memory Bandwidth on Local NUMA Node | Memory bandwidth utilization by the relevant CPU core/process on the local NUMA memory channel |
|
||||||
|
| MBR | Memory Bandwidth on Remote NUMA Node | Memory bandwidth utilization by the relevant CPU core/process on the remote NUMA memory channel |
|
||||||
|
| MBT | Total Memory Bandwidth | Total memory bandwidth utilized by a CPU core/process on local and remote NUMA memory channels |
|
||||||
|
| LLC | L3 Cache Occupancy | Total Last Level Cache occupancy by a CPU core/process |
|
||||||
|
| LLC_Misses* | L3 Cache Misses | Total Last Level Cache misses by a CPU core/process |
|
||||||
|
| IPC* | Instructions Per Cycle | Total instructions per cycle executed by a CPU core/process |
|
||||||
|
|
||||||
|
*optional
|
||||||
|
|
||||||
## Example Output
|
## Example Output
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
# Telegraf Internal Input Plugin
|
# Telegraf Internal Input Plugin
|
||||||
|
|
||||||
The `internal` plugin collects metrics about the telegraf agent itself.
|
This plugin collects metrics about the telegraf agent and its plugins.
|
||||||
|
|
||||||
Note that some metrics are aggregates across all instances of one type of
|
> [!NOTE]
|
||||||
plugin.
|
> Some metrics are aggregates across all instances of a plugin type.
|
||||||
|
|
||||||
|
⭐ Telegraf v1.2.0
|
||||||
|
🏷️ applications
|
||||||
|
💻 all
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -29,8 +33,7 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
memstats are taken from the Go runtime:
|
memstats are collected using the [Go runtime framework][memstats]
|
||||||
<https://golang.org/pkg/runtime/#MemStats>
|
|
||||||
|
|
||||||
- internal_memstats
|
- internal_memstats
|
||||||
- alloc_bytes
|
- alloc_bytes
|
||||||
|
|
@ -85,11 +88,11 @@ plugin and `version=<telegraf_version>`.
|
||||||
- internal_<plugin_name>
|
- internal_<plugin_name>
|
||||||
- individual plugin-specific fields, such as requests counts.
|
- individual plugin-specific fields, such as requests counts.
|
||||||
|
|
||||||
## Tags
|
|
||||||
|
|
||||||
All measurements for specific plugins are tagged with information relevant
|
All measurements for specific plugins are tagged with information relevant
|
||||||
to each particular plugin and with `version=<telegraf_version>`.
|
to each particular plugin and with `version=<telegraf_version>`.
|
||||||
|
|
||||||
|
[memstats]: https://golang.org/pkg/runtime/#MemStats
|
||||||
|
|
||||||
## Example Output
|
## Example Output
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
# Internet Speed Monitor Input Plugin
|
# Internet Speed Monitor Input Plugin
|
||||||
|
|
||||||
The `Internet Speed Monitor` collects data about the internet speed on the
|
This plugin collects metrics about the internet speed on the system like
|
||||||
system.
|
download/upload speed, latency etc using the [speedtest.net service][speedtest].
|
||||||
|
|
||||||
On some systems, the default settings may cause speed tests to fail; if this
|
⭐ Telegraf v1.20.0
|
||||||
affects you then try enabling `memory_saving_mode`. This reduces the memory
|
🏷️ network
|
||||||
requirements for the test, and may reduce the runtime of the test. However,
|
💻 all
|
||||||
please be aware that this may also reduce the accuracy of the test for fast
|
|
||||||
(>30Mb/s) connections. This setting enables the upstream
|
[speedtest]: https://www.speedtest.net/
|
||||||
[Memory Saving Mode](https://github.com/showwin/speedtest-go#memory-saving-mode)
|
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -60,6 +59,15 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
# server_id_include = []
|
# server_id_include = []
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> On some systems, the default settings may cause speed tests to fail. If this
|
||||||
|
> affects your system, try enabling `memory_saving_mode`, which reduces the
|
||||||
|
> memory requirements and the runtime of the test at the cost of a reduced
|
||||||
|
> accuracy especially for fast (>30Mb/s) connections. Check the
|
||||||
|
> [upstream documentation][docs] for details
|
||||||
|
|
||||||
|
[docs]: https://github.com/showwin/speedtest-go#memory-saving-mode
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
It collects the following fields:
|
It collects the following fields:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
# Interrupts Input Plugin
|
# Interrupts Input Plugin
|
||||||
|
|
||||||
The interrupts plugin gathers metrics about IRQs from `/proc/interrupts` and
|
This plugin gathers metrics about IRQs from interrupts (`/proc/interrupts`) and
|
||||||
`/proc/softirqs`.
|
soft-interrupts (`/proc/softirqs`).
|
||||||
|
|
||||||
|
⭐ Telegraf v1.3.0
|
||||||
|
🏷️ system
|
||||||
|
💻 all
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,34 +1,19 @@
|
||||||
# IPMI Sensor Input Plugin
|
# IPMI Sensor Input Plugin
|
||||||
|
|
||||||
Get bare metal metrics using the command line utility
|
This plugin gathers metrics from the
|
||||||
[`ipmitool`](https://github.com/ipmitool/ipmitool).
|
[Intelligent Platform Management Interface][ipmi_spec] using the
|
||||||
|
[`ipmitool`][ipmitool] command line utility.
|
||||||
|
|
||||||
If no servers are specified, the plugin will query the local machine sensor
|
> [!IMPORTANT]
|
||||||
stats via the following command:
|
> The `ipmitool` requires access to the IPMI device. Please check the
|
||||||
|
> [permission section](#permissions) for possible solutions.
|
||||||
|
|
||||||
```sh
|
⭐ Telegraf v0.12.0
|
||||||
ipmitool sdr
|
🏷️ hardware, system
|
||||||
```
|
💻 all
|
||||||
|
|
||||||
or with the version 2 schema:
|
[ipmi_spec]: https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/ipmi-intelligent-platform-mgt-interface-spec-2nd-gen-v2-0-spec-update.pdf
|
||||||
|
[ipmitool]: https://github.com/ipmitool/ipmitool
|
||||||
```sh
|
|
||||||
ipmitool sdr elist
|
|
||||||
```
|
|
||||||
|
|
||||||
When one or more servers are specified, the plugin will use the following
|
|
||||||
command to collect remote host sensor stats:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
ipmitool -I lan -H SERVER -U USERID -P PASSW0RD sdr
|
|
||||||
```
|
|
||||||
|
|
||||||
Any of the following parameters will be added to the aforementioned query if
|
|
||||||
they're configured:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
-y hex_key -L privilege
|
|
||||||
```
|
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -93,6 +78,33 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
# cache_path = ""
|
# cache_path = ""
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If no servers are specified, the plugin will query the local machine sensor
|
||||||
|
stats via the following command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ipmitool sdr
|
||||||
|
```
|
||||||
|
|
||||||
|
or with the version 2 schema:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ipmitool sdr elist
|
||||||
|
```
|
||||||
|
|
||||||
|
When one or more servers are specified, the plugin will use the following
|
||||||
|
command to collect remote host sensor stats:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ipmitool -I lan -H SERVER -U USERID -P PASSW0RD sdr
|
||||||
|
```
|
||||||
|
|
||||||
|
Any of the following parameters will be added to the aforementioned query if
|
||||||
|
they're configured:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
-y hex_key -L privilege
|
||||||
|
```
|
||||||
|
|
||||||
## Sensors
|
## Sensors
|
||||||
|
|
||||||
By default the plugin collects data via the `sdr` command and returns those
|
By default the plugin collects data via the `sdr` command and returns those
|
||||||
|
|
|
||||||
|
|
@ -1,48 +1,16 @@
|
||||||
# Ipset Input Plugin
|
# Ipset Input Plugin
|
||||||
|
|
||||||
The ipset plugin gathers packets and bytes counters from Linux ipset.
|
This plugin gathers packets and bytes counters from [Linux IP sets][ipsets]
|
||||||
It uses the output of the command "ipset save".
|
using the `ipset` command line tool.
|
||||||
Ipsets created without the "counters" option are ignored.
|
|
||||||
|
|
||||||
Results are tagged with:
|
> [!NOTE]
|
||||||
|
> IP sets created without the "counters" option are ignored.
|
||||||
|
|
||||||
- ipset name
|
⭐ Telegraf v1.6.0
|
||||||
- ipset entry
|
🏷️ network, system
|
||||||
|
💻 linux
|
||||||
|
|
||||||
There are 3 ways to grant telegraf the right to run ipset:
|
[ipsets]: https://ipset.netfilter.org/
|
||||||
|
|
||||||
- Run as root (strongly discouraged)
|
|
||||||
- Use sudo
|
|
||||||
- Configure systemd to run telegraf with CAP_NET_ADMIN and CAP_NET_RAW capabilities.
|
|
||||||
|
|
||||||
## Using systemd capabilities
|
|
||||||
|
|
||||||
You may run `systemctl edit telegraf.service` and add the following:
|
|
||||||
|
|
||||||
```text
|
|
||||||
[Service]
|
|
||||||
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN
|
|
||||||
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN
|
|
||||||
```
|
|
||||||
|
|
||||||
## Using sudo
|
|
||||||
|
|
||||||
You will need the following in your telegraf config:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[[inputs.ipset]]
|
|
||||||
use_sudo = true
|
|
||||||
```
|
|
||||||
|
|
||||||
You will also need to update your sudoers file:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ visudo
|
|
||||||
# Add the following line:
|
|
||||||
Cmnd_Alias IPSETSAVE = /sbin/ipset save
|
|
||||||
telegraf ALL=(root) NOPASSWD: IPSETSAVE
|
|
||||||
Defaults!IPSETSAVE !logfile, !syslog, !pam_session
|
|
||||||
```
|
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -60,19 +28,69 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
[[inputs.ipset]]
|
[[inputs.ipset]]
|
||||||
## By default, we only show sets which have already matched at least 1 packet.
|
## By default, we only show sets which have already matched at least 1 packet.
|
||||||
## set include_unmatched_sets = true to gather them all.
|
## set include_unmatched_sets = true to gather them all.
|
||||||
include_unmatched_sets = false
|
# include_unmatched_sets = false
|
||||||
|
|
||||||
## Adjust your sudo settings appropriately if using this option ("sudo ipset save")
|
## Adjust your sudo settings appropriately if using this option ("sudo ipset save")
|
||||||
## You can avoid using sudo or root, by setting appropriate privileges for
|
## You can avoid using sudo or root, by setting appropriate privileges for
|
||||||
## the telegraf.service systemd service.
|
## the telegraf.service systemd service.
|
||||||
use_sudo = false
|
# use_sudo = false
|
||||||
|
|
||||||
## Add number of entries and number of individual IPs (resolve CIDR syntax) for each ipset
|
## Add number of entries and number of individual IPs (resolve CIDR syntax) for each ipset
|
||||||
count_per_ip_entries = false
|
# count_per_ip_entries = false
|
||||||
|
|
||||||
## The default timeout of 1s for ipset execution can be overridden here:
|
## The default timeout of 1s for ipset execution can be overridden here:
|
||||||
# timeout = "1s"
|
# timeout = "1s"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Permissions
|
||||||
|
|
||||||
|
There are 3 ways to grant telegraf the right to run ipset:
|
||||||
|
|
||||||
|
- Run as root (strongly discouraged)
|
||||||
|
- Use sudo
|
||||||
|
- Configure systemd to run telegraf with CAP_NET_ADMIN and CAP_NET_RAW
|
||||||
|
capabilities
|
||||||
|
|
||||||
|
#### Using sudo
|
||||||
|
|
||||||
|
To use sudo set the `use_sudo` option to `true` and update your sudoers file:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ visudo
|
||||||
|
# Add the following line:
|
||||||
|
Cmnd_Alias IPSETSAVE = /sbin/ipset save
|
||||||
|
telegraf ALL=(root) NOPASSWD: IPSETSAVE
|
||||||
|
Defaults!IPSETSAVE !logfile, !syslog, !pam_session
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Using systemd capabilities
|
||||||
|
|
||||||
|
You may run `systemctl edit telegraf.service` and add the following:
|
||||||
|
|
||||||
|
```text
|
||||||
|
[Service]
|
||||||
|
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN
|
||||||
|
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN
|
||||||
|
```
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
|
- ipset
|
||||||
|
- tags:
|
||||||
|
- rule
|
||||||
|
- set
|
||||||
|
- fields:
|
||||||
|
- timeout
|
||||||
|
- packets
|
||||||
|
- bytes
|
||||||
|
|
||||||
|
- ipset (for `count_per_ip_entries = true`)
|
||||||
|
- tags:
|
||||||
|
- set
|
||||||
|
- fields:
|
||||||
|
- entries
|
||||||
|
- ips
|
||||||
|
|
||||||
## Example Output
|
## Example Output
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,15 @@
|
||||||
[[inputs.ipset]]
|
[[inputs.ipset]]
|
||||||
## By default, we only show sets which have already matched at least 1 packet.
|
## By default, we only show sets which have already matched at least 1 packet.
|
||||||
## set include_unmatched_sets = true to gather them all.
|
## set include_unmatched_sets = true to gather them all.
|
||||||
include_unmatched_sets = false
|
# include_unmatched_sets = false
|
||||||
|
|
||||||
## Adjust your sudo settings appropriately if using this option ("sudo ipset save")
|
## Adjust your sudo settings appropriately if using this option ("sudo ipset save")
|
||||||
## You can avoid using sudo or root, by setting appropriate privileges for
|
## You can avoid using sudo or root, by setting appropriate privileges for
|
||||||
## the telegraf.service systemd service.
|
## the telegraf.service systemd service.
|
||||||
use_sudo = false
|
# use_sudo = false
|
||||||
|
|
||||||
## Add number of entries and number of individual IPs (resolve CIDR syntax) for each ipset
|
## Add number of entries and number of individual IPs (resolve CIDR syntax) for each ipset
|
||||||
count_per_ip_entries = false
|
# count_per_ip_entries = false
|
||||||
|
|
||||||
## The default timeout of 1s for ipset execution can be overridden here:
|
## The default timeout of 1s for ipset execution can be overridden here:
|
||||||
# timeout = "1s"
|
# timeout = "1s"
|
||||||
|
|
|
||||||
|
|
@ -1,67 +1,25 @@
|
||||||
# Iptables Input Plugin
|
# Iptables Input Plugin
|
||||||
|
|
||||||
The iptables plugin gathers packets and bytes counters for rules within a set
|
This plugin gathers packets and bytes counters for rules within a set of table
|
||||||
of table and chain from the Linux's iptables firewall.
|
and chain from the Linux's iptables firewall.
|
||||||
|
|
||||||
Rules are identified through associated comment. **Rules without comment are
|
> [!IMPORTANT]
|
||||||
ignored**. Indeed we need a unique ID for the rule and the rule number is not
|
> Rules are identified through associated comment, so you must ensure that the
|
||||||
a constant: it may vary when rules are inserted/deleted at start-up or by
|
> rules you want to monitor do have a **unique** comment using the `--comment`
|
||||||
automatic tools (interactive firewalls, fail2ban, ...). Also when the rule set
|
> flag when adding them. Rules without comments are ignored.
|
||||||
is becoming big (hundreds of lines) most people are interested in monitoring
|
|
||||||
only a small part of the rule set.
|
|
||||||
|
|
||||||
Before using this plugin **you must ensure that the rules you want to monitor
|
The rule number cannot be used as identifier as it is not constant and
|
||||||
are named with a unique comment**. Comments are added using the `-m comment
|
may vary when rules are inserted/deleted at start-up or by automatic tools
|
||||||
--comment "my comment"` iptables options.
|
(interactive firewalls, fail2ban, ...).
|
||||||
|
|
||||||
The iptables command requires CAP_NET_ADMIN and CAP_NET_RAW capabilities. You
|
> [!IMPORTANT]
|
||||||
have several options to grant telegraf to run iptables:
|
> The `iptables` command requires `CAP_NET_ADMIN` and `CAP_NET_RAW`
|
||||||
|
> capabilities. Check the [permissions section](#permissions) for ways to
|
||||||
|
> grant them.
|
||||||
|
|
||||||
* Run telegraf as root. This is strongly discouraged.
|
⭐ Telegraf v1.1.0
|
||||||
* Configure systemd to run telegraf with CAP_NET_ADMIN and CAP_NET_RAW. This is
|
🏷️ network, system
|
||||||
the simplest and recommended option.
|
💻 linux
|
||||||
* Configure sudo to grant telegraf to run iptables. This is the most
|
|
||||||
restrictive option, but require sudo setup.
|
|
||||||
|
|
||||||
## Using systemd capabilities
|
|
||||||
|
|
||||||
You may run `systemctl edit telegraf.service` and add the following:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
[Service]
|
|
||||||
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN
|
|
||||||
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN
|
|
||||||
```
|
|
||||||
|
|
||||||
Since telegraf will fork a process to run iptables, `AmbientCapabilities` is
|
|
||||||
required to transmit the capabilities bounding set to the forked process.
|
|
||||||
|
|
||||||
## Using sudo
|
|
||||||
|
|
||||||
You will need the following in your telegraf config:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[[inputs.iptables]]
|
|
||||||
use_sudo = true
|
|
||||||
```
|
|
||||||
|
|
||||||
You will also need to update your sudoers file:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ visudo
|
|
||||||
# Add the following line:
|
|
||||||
Cmnd_Alias IPTABLESSHOW = /usr/bin/iptables -nvL *
|
|
||||||
telegraf ALL=(root) NOPASSWD: IPTABLESSHOW
|
|
||||||
Defaults!IPTABLESSHOW !logfile, !syslog, !pam_session
|
|
||||||
```
|
|
||||||
|
|
||||||
## Using IPtables lock feature
|
|
||||||
|
|
||||||
Defining multiple instances of this plugin in telegraf.conf can lead to
|
|
||||||
concurrent IPtables access resulting in "ERROR in input [inputs.iptables]: exit
|
|
||||||
status 4" messages in telegraf.log and missing metrics. Setting 'use_lock =
|
|
||||||
true' in the plugin configuration will run IPtables with the '-w' switch,
|
|
||||||
allowing a lock usage to prevent this error.
|
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -83,37 +41,78 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
## Users must configure sudo to allow telegraf user to run iptables with
|
## Users must configure sudo to allow telegraf user to run iptables with
|
||||||
## no password.
|
## no password.
|
||||||
## iptables can be restricted to only list command "iptables -nvL".
|
## iptables can be restricted to only list command "iptables -nvL".
|
||||||
use_sudo = false
|
# use_sudo = false
|
||||||
|
|
||||||
## Setting 'use_lock' to true runs iptables with the "-w" option.
|
## Setting 'use_lock' to true runs iptables with the "-w" option.
|
||||||
## Adjust your sudo settings appropriately if using this option
|
## Adjust your sudo settings appropriately if using this option
|
||||||
## ("iptables -w 5 -nvl")
|
## ("iptables -w 5 -nvl")
|
||||||
use_lock = false
|
# use_lock = false
|
||||||
|
|
||||||
## Define an alternate executable, such as "ip6tables". Default is "iptables".
|
## Define an alternate executable, such as "ip6tables". Default is "iptables".
|
||||||
# binary = "ip6tables"
|
# binary = "ip6tables"
|
||||||
## defines the table to monitor:
|
## defines the table to monitor:
|
||||||
table = "filter"
|
table = "filter"
|
||||||
|
|
||||||
## defines the chains to monitor.
|
## defines the chains to monitor.
|
||||||
## NOTE: iptables rules without a comment will not be monitored.
|
## NOTE: iptables rules without a comment will not be monitored.
|
||||||
## Read the plugin documentation for more information.
|
## Read the plugin documentation for more information.
|
||||||
chains = [ "INPUT" ]
|
chains = [ "INPUT" ]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Permissions
|
||||||
|
|
||||||
|
The `iptables` command requires `CAP_NET_ADMIN` and `CAP_NET_RAW capabilities`.
|
||||||
|
You have several options to grant permissions to telegraf:
|
||||||
|
|
||||||
|
- Run telegraf as root. This is strongly discouraged.
|
||||||
|
- Configure systemd to run telegraf with CAP_NET_ADMIN and CAP_NET_RAW. This is
|
||||||
|
the simplest and recommended option.
|
||||||
|
- Configure sudo to grant telegraf to run iptables. This is the most
|
||||||
|
restrictive option, but require sudo setup.
|
||||||
|
|
||||||
|
#### Using systemd capabilities
|
||||||
|
|
||||||
|
You may run `systemctl edit telegraf.service` and add the following:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
[Service]
|
||||||
|
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN
|
||||||
|
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN
|
||||||
|
```
|
||||||
|
|
||||||
|
Since telegraf will fork a process to run iptables, `AmbientCapabilities` is
|
||||||
|
required to transmit the capabilities bounding set to the forked process.
|
||||||
|
|
||||||
|
#### Using sudo
|
||||||
|
|
||||||
|
To use sudo set the `use_sudo` option to `true` and update your sudoers file:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ visudo
|
||||||
|
# Add the following line:
|
||||||
|
Cmnd_Alias IPTABLESSHOW = /usr/bin/iptables -nvL *
|
||||||
|
telegraf ALL=(root) NOPASSWD: IPTABLESSHOW
|
||||||
|
Defaults!IPTABLESSHOW !logfile, !syslog, !pam_session
|
||||||
|
```
|
||||||
|
|
||||||
|
### Using IPtables lock feature
|
||||||
|
|
||||||
|
Defining multiple instances of this plugin in telegraf.conf can lead to
|
||||||
|
concurrent IPtables access resulting in "ERROR in input [inputs.iptables]: exit
|
||||||
|
status 4" messages in telegraf.log and missing metrics. Setting 'use_lock =
|
||||||
|
true' in the plugin configuration will run IPtables with the '-w' switch,
|
||||||
|
allowing a lock usage to prevent this error.
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
### Measurements & Fields
|
- iptables
|
||||||
|
- tags:
|
||||||
* iptables
|
- table
|
||||||
* pkts (integer, count)
|
- chain
|
||||||
* bytes (integer, bytes)
|
- ruleid (comment associated to the rule)
|
||||||
|
- fields:
|
||||||
### Tags
|
- pkts (integer, count)
|
||||||
|
- bytes (integer, bytes)
|
||||||
* All measurements have the following tags:
|
|
||||||
* table
|
|
||||||
* chain
|
|
||||||
* ruleid
|
|
||||||
|
|
||||||
The `ruleid` is the comment associated to the rule.
|
|
||||||
|
|
||||||
## Example Output
|
## Example Output
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,18 @@
|
||||||
## Users must configure sudo to allow telegraf user to run iptables with
|
## Users must configure sudo to allow telegraf user to run iptables with
|
||||||
## no password.
|
## no password.
|
||||||
## iptables can be restricted to only list command "iptables -nvL".
|
## iptables can be restricted to only list command "iptables -nvL".
|
||||||
use_sudo = false
|
# use_sudo = false
|
||||||
|
|
||||||
## Setting 'use_lock' to true runs iptables with the "-w" option.
|
## Setting 'use_lock' to true runs iptables with the "-w" option.
|
||||||
## Adjust your sudo settings appropriately if using this option
|
## Adjust your sudo settings appropriately if using this option
|
||||||
## ("iptables -w 5 -nvl")
|
## ("iptables -w 5 -nvl")
|
||||||
use_lock = false
|
# use_lock = false
|
||||||
|
|
||||||
## Define an alternate executable, such as "ip6tables". Default is "iptables".
|
## Define an alternate executable, such as "ip6tables". Default is "iptables".
|
||||||
# binary = "ip6tables"
|
# binary = "ip6tables"
|
||||||
## defines the table to monitor:
|
## defines the table to monitor:
|
||||||
table = "filter"
|
table = "filter"
|
||||||
|
|
||||||
## defines the chains to monitor.
|
## defines the chains to monitor.
|
||||||
## NOTE: iptables rules without a comment will not be monitored.
|
## NOTE: iptables rules without a comment will not be monitored.
|
||||||
## Read the plugin documentation for more information.
|
## Read the plugin documentation for more information.
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,17 @@
|
||||||
# IPVS Input Plugin
|
# IPVS Input Plugin
|
||||||
|
|
||||||
The IPVS input plugin uses the linux kernel netlink socket interface to gather
|
This plugin gathers metrics about the [IPVS virtual and real servers][ipvs]
|
||||||
metrics about ipvs virtual and real servers.
|
using the netlink socket interface of the Linux kernel.
|
||||||
|
|
||||||
**Supported Platforms:** Linux
|
> [!IMPORTANT]
|
||||||
|
> The plugin requires `CAP_NET_ADMIN` and `CAP_NET_RAW` capabilities.
|
||||||
|
> Check the [permissions section](#permissions) for ways to grant them.
|
||||||
|
|
||||||
|
⭐ Telegraf v1.9.0
|
||||||
|
🏷️ network, system
|
||||||
|
💻 linux
|
||||||
|
|
||||||
|
[ipvs]: http://www.linuxvirtualserver.org/software/ipvs.html
|
||||||
|
|
||||||
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
||||||
|
|
||||||
|
|
@ -25,11 +33,21 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
|
|
||||||
### Permissions
|
### Permissions
|
||||||
|
|
||||||
Assuming you installed the telegraf package via one of the published packages,
|
Assuming you installed the Telegraf package via one of the published packages,
|
||||||
the process will be running as the `telegraf` user. However, in order for this
|
the process will be running as the `telegraf` user. However, in order for this
|
||||||
plugin to communicate over netlink sockets it needs the telegraf process to be
|
plugin to communicate over netlink sockets it needs the telegraf process to have
|
||||||
running as `root` (or some user with `CAP_NET_ADMIN` and `CAP_NET_RAW`). Be sure
|
`CAP_NET_ADMIN` and `CAP_NET_RAW` capabilities.
|
||||||
to ensure these permissions before running telegraf with this plugin included.
|
|
||||||
|
This is the case when running Telegraf as `root` or some user with
|
||||||
|
`CAP_NET_ADMIN` and `CAP_NET_RAW`. Alternatively, you can add the capabilities
|
||||||
|
when starting Telegraf via systemd by running `systemctl edit telegraf.service`
|
||||||
|
and add the following:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
[Service]
|
||||||
|
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN
|
||||||
|
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN
|
||||||
|
```
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue