Chapter 4. collectd plugins
You can configure multiple collectd plugins depending on your Red Hat OpenStack Platform (RHOSP) environment.
The following list of plugins shows the available heat template ExtraConfig
parameters that you can set to override the default values. Each section provides the general configuration name for the ExtraConfig
option. For example, if there is a collectd plugin called example_plugin
, the format of the plugin title is collectd::plugin::example_plugin
.
Reference the tables of available parameters for specific plugins, such as in the following example:
ExtraConfig: collectd::plugin::example_plugin::<parameter>: <value>
Reference the metrics tables of specific plugins for Prometheus or Grafana queries.
4.1. collectd::plugin::aggregation
You can aggregate several values into one with the aggregation
plugin. Use the aggregation functions such as sum
, average
, min
, and max
to calculate metrics, for example average and total CPU statistics.
Parameter | Type |
---|---|
host | String |
plugin | String |
plugininstance | Integer |
agg_type | String |
typeinstance | String |
sethost | String |
setplugin | String |
setplugininstance | Integer |
settypeinstance | String |
groupby | Array of Strings |
calculatesum | Boolean |
calculatenum | Boolean |
calculateaverage | Boolean |
calculateminimum | Boolean |
calculatemaximum | Boolean |
calculatestddev | Boolean |
Example configuration:
Deploy three aggregate configurations to create the following files:
-
aggregator-calcCpuLoadAvg.conf
: average CPU load for all CPU cores grouped by host and state -
aggregator-calcCpuLoadMinMax.conf
: minimum and maximum CPU load groups by host and state -
aggregator-calcMemoryTotalMaxAvg.conf
: maximum, average, and total for memory grouped by type
The aggregation configurations use the default cpu
and memory
plugin configurations.
parameter_defaults: CollectdExtraPlugins: - aggregation ExtraConfig: collectd::plugin::aggregation::aggregators: calcCpuLoadAvg: plugin: "cpu" agg_type: "cpu" groupby: - "Host" - "TypeInstance" calculateaverage: True calcCpuLoadMinMax: plugin: "cpu" agg_type: "cpu" groupby: - "Host" - "TypeInstance" calculatemaximum: True calculateminimum: True calcMemoryTotalMaxAvg: plugin: "memory" agg_type: "memory" groupby: - "TypeInstance" calculatemaximum: True calculateaverage: True calculatesum: True
4.2. collectd::plugin::amqp1
Use the amqp1
plugin to write values to an amqp1 message bus, for example, AMQ Interconnect.
Parameter | Type |
---|---|
manage_package | Boolean |
transport | String |
host | String |
port | Integer |
user | String |
password | String |
address | String |
instances | Hash |
retry_delay | Integer |
send_queue_limit | Integer |
interval | Integer |
Use the send_queue_limit
parameter to limit the length of the outgoing metrics queue.
If there is no AMQP1 connection, the plugin continues to queue messages to send, which can result in unbounded memory consumption. The default value is 0, which disables the outgoing metrics queue.
Increase the value of the send_queue_limit
parameter if metrics are missing.
Example configuration:
parameter_defaults: CollectdExtraPlugins: - amqp1 ExtraConfig: collectd::plugin::amqp1::send_queue_limit: 5000
4.3. collectd::plugin::apache
Use the apache
plugin to collect Apache data from the mod_status
plugin that is provided by the Apache web server. Each instance provided has a per-interval
value specified in seconds. If you provide the timeout
interval parameter for an instance, the value is in milliseconds.
Parameter | Type |
---|---|
instances | Hash |
interval | Integer |
manage-package | Boolean |
package_install_options | List |
Parameter | Type |
---|---|
url | HTTP URL |
user | String |
password | String |
verifypeer | Boolean |
verifyhost | Boolean |
cacert | AbsolutePath |
sslciphers | String |
timeout | Integer |
Example configuration:
In this example, the instance name is localhost
, which connects to the Apache web server at http://10.0.0.111/mod_status?auto. You must append ?auto
to the end of the URL to prevent the status page returning as a type that is incompatible with the plugin.
parameter_defaults: CollectdExtraPlugins: - apache ExtraConfig: collectd::plugin::apache::instances: localhost: url: "http://10.0.0.111/mod_status?auto"
Additional resources
For more information about configuring the apache
plugin, see apache.
4.4. collectd::plugin::battery
Use the battery
plugin to report the remaining capacity, power, or voltage of laptop batteries.
Parameter | Type |
---|---|
values_percentage | Boolean |
report_degraded | Boolean |
query_state_fs | Boolean |
interval | Integer |
Additional resources
For more information about configuring the battery
plugin, see battery.
4.5. collectd::plugin::bind
Use the bind
plugin to retrieve encoded statistics about queries and responses from a DNS server, and submit those values to collectd.
Parameter | Type |
---|---|
url | HTTP URL |
memorystats | Boolean |
opcodes | Boolean |
parsetime | Boolean |
qtypes | Boolean |
resolverstats | Boolean |
serverstats | Boolean |
zonemaintstats | Boolean |
views | Array |
interval | Integer |
Parameter | Type |
---|---|
name | String |
qtypes | Boolean |
resolverstats | Boolean |
cacherrsets | Boolean |
zones | List of strings |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - bind ExtraConfig: collectd::plugins::bind: url: http://localhost:8053/ memorystats: true opcodes: true parsetime: false qtypes: true resolverstats: true serverstats: true zonemaintstats: true views: - name: internal qtypes: true resolverstats: true cacherrsets: true - name: external qtypes: true resolverstats: true cacherrsets: true zones: - "example.com/IN"
4.6. collectd::plugin::ceph
Use the ceph
plugin to gather data from ceph daemons.
Parameter | Type |
---|---|
daemons | Array |
longrunavglatency | Boolean |
convertspecialmetrictypes | Boolean |
package_name | String |
Example configuration:
parameter_defaults: ExtraConfig: collectd::plugin::ceph::daemons: - ceph-osd.0 - ceph-osd.1 - ceph-osd.2 - ceph-osd.3 - ceph-osd.4
If an Object Storage Daemon (OSD) is not on every node, you must list the OSDs.
When you deploy collectd, the ceph
plugin is added to the Ceph nodes. Do not add the ceph
plugin on Ceph nodes to CollectdExtraPlugins
because this results in a deployment failure.
Additional resources
For more information about configuring the ceph
plugin, see ceph.
4.7. collectd::plugins::cgroups
Use the cgroups
plugin to collect information for processes in a cgroup.
Parameter | Type |
---|---|
ignore_selected | Boolean |
interval | Integer |
cgroups | List |
Additional resources
For more information about configuring the cgroups
plugin, see cgroups.
4.8. collectd::plugin::connectivity
Use the connectivity plugin to monitor the state of network interfaces.
If no interfaces are listed, all interfaces are monitored by default.
Parameter | Type |
---|---|
interfaces | Array |
Example configuration:
parameter_defaults: ExtraConfig: collectd::plugin::connectivity::interfaces: - eth0 - eth1
Additional resources
For more information about configuring the connectivity
plugin, see connectivity.
4.9. collectd::plugin::conntrack
Use the conntrack
plugin to track the number of entries in the Linux connection-tracking table. There are no parameters for this plugin.
4.10. collectd::plugin::contextswitch
Use the ContextSwitch
plugin to collect the number of context switches that the system handles. The only parameter available is interval
, which is a polling interval defined in seconds.
Additional resources
For more information about configuring the contextswitch
plugin, see contextswitch.
4.11. collectd::plugin::cpu
Use the cpu
plugin to monitor the time that the CPU spends in various states, for example, idle, executing user code, executing system code, waiting for IO-operations, and other states.
The cpu
plugin collects jiffies, not percentage values. The value of a jiffy depends on the clock frequency of your hardware platform, and therefore is not an absolute time interval unit.
To report a percentage value, set the Boolean parameters reportbycpu
and reportbystate
to true
, and then set the Boolean parameter valuespercentage
to true.
This plugin is enabled by default.
Name | Description | Query |
---|---|---|
idle | Amount of idle time |
|
interrupt | CPU blocked by interrupts |
|
nice | Amount of time running low priority processes |
|
softirq | Amount of cycles spent in servicing interrupt requests |
|
steal | The percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor |
|
system | Amount of time spent on system level (kernel) |
|
user | Jiffies that user processes use |
|
wait | CPU waiting on outstanding I/O request |
|
Parameter | Type | Defaults |
---|---|---|
reportbystate | Boolean | true |
valuespercentage | Boolean | true |
reportbycpu | Boolean | true |
reportnumcpu | Boolean | false |
reportgueststate | Boolean | false |
subtractgueststate | Boolean | true |
interval | Integer | 120 |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - cpu ExtraConfig: collectd::plugin::cpu::reportbystate: true
Additional resources
For more information about configuring the cpu
plugin, see cpu.
4.12. collectd::plugin::cpufreq
Use the cpufreq
plugin to collect the current CPU frequency. There are no parameters for this plugin.
4.13. collectd::plugin::csv
Use the csv
plugin to write values to a local file in CSV format.
Parameter | Type |
---|---|
datadir | String |
storerates | Boolean |
interval | Integer |
4.14. collectd::plugin::df
Use the df
plugin to collect disk space usage information for file systems.
This plugin is enabled by default.
Name | Description | Query |
---|---|---|
free | Amount of free disk space |
|
reserved | Amount of reserved disk space |
|
used | Amount of used disk space |
|
Parameter | Type | Defaults |
---|---|---|
devices | Array |
|
fstypes | Array |
|
ignoreselected | Boolean | true |
mountpoints | Array |
|
reportbydevice | Boolean | true |
reportinodes | Boolean | true |
reportreserved | Boolean | true |
valuesabsolute | Boolean | true |
valuespercentage | Boolean | false |
Example configuration:
parameter_defaults: ExtraConfig: collectd::plugin::df::fstypes: ['tmpfs','xfs']
Additional resources
For more information about configuring the df
plugin, see df.
4.15. collectd::plugin::disk
Use the disk
plugin to collect performance statistics of hard disks and, if supported, partitions.
The disk
plugin monitors all disks by default. You can use the ignoreselected
parameter to ignore a list of disks. The example configuration ignores the sda, sdb, and sdc disks, and monitors all disks not included in the list.
This plugin is enabled by default.
Parameter | Type | Defaults |
---|---|---|
disks | Array |
|
ignoreselected | Boolean | false |
udevnameattr | String | <undefined> |
Name | Description |
---|---|
merged | The number of queued operations that can be merged together, for example, one physical disk access served two or more logical operations. |
time | The average time an I/O-operation takes to complete. The values might not be accurate. |
io_time | Time spent doing I/Os (ms). You can use this metric as a device load percentage. A value of 1 second matches 100% of load. |
weighted_io_time | Measure of both I/O completion time and the backlog that might be accumulating. |
pending_operations | Shows queue size of pending I/O operations. |
Example configuration:
parameter_defaults: ExtraConfig: collectd::plugin::disk::disks: ['sda', 'sdb', 'sdc'] collectd::plugin::disk::ignoreselected: true
Additional resources
For more information about configuring the disk
plugin, see disk.
4.16. collectd::plugin::hugepages
Use the hugepages plugin to collect hugepages information.
This plugin is enabled by default.
Parameter | Type | Defaults |
---|---|---|
report_per_node_hp | Boolean | true |
report_root_hp | Boolean | true |
values_pages | Boolean | true |
values_bytes | Boolean | false |
values_percentage | Boolean | false |
Example configuration:
parameter_defaults: ExtraConfig: collectd::plugin::hugepages::values_percentage: true
Additional resources
-
For more information about configuring the
hugepages
plugin, see hugepages.
4.17. collectd::plugin::interface
Use the interface
plugin to measure interface traffic in octets, packets per second, and error rate per second.
This plugin is enabled by default.
Parameter | Type | Default |
---|---|---|
interfaces | Array |
|
ignoreselected | Boolean | false |
reportinactive | Boolean | true |
Example configuration:
parameter_defaults: ExtraConfig: collectd::plugin::interface::interfaces: - lo collectd::plugin::interface::ignoreselected: true
Additional resources
-
For more information about configuring the
interfaces
plugin, see interfaces.
4.18. collectd::plugin::load
Use the load
plugin to collect the system load and an overview of the system use.
This plugin is enabled by default.
Parameter | Type | Default |
---|---|---|
report_relative | Boolean | true |
Example configuration:
parameter_defaults: ExtraConfig: collectd::plugin::load::report_relative: false
Additional resources
-
For more information about configuring the
load
plugin, see load.
4.19. collectd::plugin::mcelog
Use the mcelog
plugin to send notifications and statistics that are relevant to Machine Check Exceptions when they occur. Configure mcelog
to run in daemon mode and enable logging capabilities.
Parameter | Type |
---|---|
Mcelogfile | String |
Memory |
Hash |
Example configuration:
parameter_defaults: CollectdExtraPlugins: mcelog CollectdEnableMcelog: true
Additional resources
-
For more information about configuring the
mcelog
plugin, see mcelog.
4.20. collectd::plugin::memcached
Use the memcached
plugin to retrieve information about memcached cache usage, memory, and other related information.
Parameter | Type |
---|---|
instances | Hash |
interval | Integer |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - memcached ExtraConfig: collectd::plugin::memcached::instances: local: host: "%{hiera('fqdn_canonical')}" port: 11211
Additional resources
-
For more information about configuring the
memcached
plugin, see memcached.
4.21. collectd::plugin::memory
Use the memory
plugin to retrieve information about the memory of the system.
This plugin is enabled by default.
Parameter | Type |
---|---|
Defaults | valuesabsolute |
Boolean | true |
valuespercentage | Boolean |
Example configuration:
parameter_defaults: ExtraConfig: collectd::plugin::memory::valuesabsolute: true collectd::plugin::memory::valuespercentage: false
Additional resources
-
For more information about configuring the
memory
plugin, see memory.
4.22. collectd::plugin::ntpd
Use the ntpd
plugin to query a local NTP server that is configured to allow access to statistics, and retrieve information about the configured parameters and the time sync status.
Parameter | Type |
---|---|
host | Hostname |
port | Port number (Integer) |
reverselookups | Boolean |
includeunitid | Boolean |
interval | Integer |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - ntpd ExtraConfig: collectd::plugin::ntpd::host: localhost collectd::plugin::ntpd::port: 123 collectd::plugin::ntpd::reverselookups: false collectd::plugin::ntpd::includeunitid: false
Additional resources
-
For more information about configuring the
ntpd
plugin, see ntpd.
4.23. collectd::plugin::ovs_stats
Use the ovs_stats
plugin to collect statistics of OVS-connected interfaces. The ovs_stats
plugin uses the OVSDB management protocol (RFC7047) monitor mechanism to get statistics from OVSDB.
Parameter | Type |
---|---|
address | String |
bridges | List |
port | Integer |
socket | String |
Example configuration:
The following example shows how to enable the ovs_stats
plugin. If you deploy your overcloud with OVS, you do not need to enable the ovs_stats
plugin.
parameter_defaults: CollectdExtraPlugins: - ovs_stats ExtraConfig: collectd::plugin::ovs_stats::socket: '/run/openvswitch/db.sock'
Additional resources
-
For more information about configuring the
ovs_stats
plugin, see ovs_stats.
4.24. collectd::plugin::processes
The processes
plugin provides information about system processes. If you do not specify custom process matching, the plugin collects only the number of processes by state and the process fork rate.
To collect more details about specific processes, you can use the process
parameter to specify a process name or the process_match
option to specify process names that match a regular expression. The statistics for a process_match
output are grouped by process name.
Parameter | Type | Defaults |
---|---|---|
processes | Array | <undefined> |
process_matches | Array | <undefined> |
collect_context_switch | Boolean | <undefined> |
collect_file_descriptor | Boolean | <undefined> |
collect_memory_maps | Boolean | <undefined> |
Additional resources
-
For more information about configuring the
processes
plugin, see [processes].
4.25. collectd::plugin::smart
Use the smart
plugin to collect SMART (self-monitoring, analysis and reporting technology) information from physical disks on the node. You must also set the parameter CollectdContainerAdditionalCapAdd
to CAP_SYS_RAWIO
to allow the smart
plugin to read SMART telemetry. If you do not set the CollectdContainerAdditionalCapAdd
parameter, the following message is written to the collectd error logs:
smart plugin: Running collectd as root, but the CAP_SYS_RAWIO capability is missing. The plugin's read function will probably fail. Is your init system dropping capabilities?
.
Parameter | Type |
---|---|
disks | Array |
ignoreselected | Boolean |
interval | Integer |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - smart CollectdContainerAdditionalCapAdd: "CAP_SYS_RAWIO"
Additional information
-
For more information about configuring the
smart
plugin, see smart.
4.26. collectd::plugin::swap
Use the swap
plugin to collect information about the available and used swap space.
Parameter | Type |
---|---|
reportbydevice | Boolean |
reportbytes | Boolean |
valuesabsolute | Boolean |
valuespercentage | Boolean |
reportio | Boolean |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - swap ExtraConfig: collectd::plugin::swap::reportbydevice: false collectd::plugin::swap::reportbytes: true collectd::plugin::swap::valuesabsolute: true collectd::plugin::swap::valuespercentage: false collectd::plugin::swap::reportio: true
4.27. collectd::plugin::tcpconns
Use the tcpconns
plugin to collect information about the number of TCP connections inbound or outbound from the configured port. The local port configuration represents ingress connections. The remote port configuration represents egress connections.
Parameter | Type |
---|---|
localports | Port (Array) |
remoteports | Port (Array) |
listening | Boolean |
allportssummary | Boolean |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - tcpconns ExtraConfig: collectd::plugin::tcpconns::listening: false collectd::plugin::tcpconns::localports: - 22 collectd::plugin::tcpconns::remoteports: - 22
4.28. collectd::plugin::thermal
Use the thermal
plugin to retrieve ACPI thermal zone information.
Parameter | Type |
---|---|
devices | Array |
ignoreselected | Boolean |
interval | Integer |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - thermal
4.29. collectd::plugin::uptime
Use the uptime
plugin to collect information about system uptime.
This plugin is enabled by default.
Parameter | Type |
---|---|
interval | Integer |
4.30. collectd::plugin::virt
Use the virt
plugin to collect CPU, disk, network load, and other metrics through the libvirt
API for virtual machines on the host.
This plugin is enabled by default on compute hosts.
Parameter | Type |
---|---|
connection | String |
refresh_interval | Hash |
domain | String |
block_device | String |
interface_device | String |
ignore_selected | Boolean |
plugin_instance_format | String |
hostname_format | String |
interface_format | String |
extra_stats | String |
Example configuration:
ExtraConfig: collectd::plugin::virt::hostname_format: "name uuid hostname" collectd::plugin::virt::plugin_instance_format: metadata
Additional resources
For more information about configuring the virt
plugin, see virt.
4.31. collectd::plugin::vmem
Use the vmem
plugin to collect information about virtual memory from the kernel subsystem.
Parameter | Type |
---|---|
verbose | Boolean |
interval | Integer |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - vmem ExtraConfig: collectd::plugin::vmem::verbose: true
4.32. collectd::plugin::write_http
Use the write_http
output plugin to submit values to an HTTP server by using POST requests and encoding metrics with JSON, or by using the PUTVAL
command.
Parameter | Type |
---|---|
ensure | Enum[present, absent] |
nodes | Hash[String, Hash[String, Scalar]] |
urls | Hash[String, Hash[String, Scalar]] |
manage_package | Boolean |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - write_http ExtraConfig: collectd::plugin::write_http::nodes: collectd: url: “http://collectd.tld.org/collectd” metrics: true header: “X-Custom-Header: custom_value"
Additional resources
-
For more information about configuring the
write_http
plugin, see write_http.
4.33. collectd::plugin::write_kafka
Use the write_kafka
plugin to send values to a Kafka topic. Configure the write_kafka
plugin with one or more topic blocks. For each topic block, you must specify a unique name and one Kafka producer. You can use the following per-topic parameters inside the topic block:
Parameter | Type |
---|---|
kafka_hosts | Array[String] |
topics | Hash |
properties | Hash |
meta | Hash |
Example configuration:
parameter_defaults: CollectdExtraPlugins: - write_kafka ExtraConfig: collectd::plugin::write_kafka::kafka_hosts: - remote.tld:9092 collectd::plugin::write_kafka::topics: mytopic: format: JSON
Additional resources:
For more information about how to configure the write_kafka
plugin, see write_kafka.
4.34. Other collectd plugins
The following plugins are available, but with undefined use cases for many Red Hat OpenStack Platform (RHOSP) environments.
Parameter | Notes |
---|---|
cURL |
You can use this plugin to read files with |
cURL-JSON | You can use this plugin to query JSON data using the cURL library and parse the data according to the configuration. |
DNS | You can use this plugin to interpret the packets and collect statistics of your DNS traffic on UDP port 53. |
Entropy | You can use this plugin to report the available entropy on a system. |
Ethstat | You can use this plugin to read performance statistics from the Ethernet cards. |
Exec | You can use this plugin to execute scripts or applications and print to STDOUT. |
fhcount | You can use this plugin to provide statistics about used, unused, and total number of file handles on Linux. |
FileCount | You can use this plugin to count the number of files in a directory and its subdirectories. |
FSCache | You can use this plugin to collect information about the file-system-based caching infrastructure for network file systems and other slow media. |
HDDTemp | You can use this plugin to collect the temperature of hard disks. |
IntelRDT | You can use this plugin to collect information provided by monitoring features of Intel Resource Director Technology. |
IPMI | You can use this plugin to read hardware sensors from servers using the Intelligent Platform Management Interface (IPMI). |
IRQ | You can use this plugin to collect the number of times each interrupt is handled by the operating system. |
LogFile | You can use this plugin to write to a log file. |
MySQL | You can use this plugin to connect to a MySQL database and issue a SHOW STATS command periodically. The command returns the server status variables, many of which are collected. |
Netlink | You can use this plugin to get statistics for interfaces, qdiscs, classes, or filters. |
Network |
You can use this plugin to interact with other |
NFS | You can use this plugin to get information about the usage of the Network File System (NFS), version 2, 3, and 4. |
numa | You can use this plugin to report statistics of the Non-Uniform Memory Access (NUMA) subsystem of Linux. |
OpenLDAP | You can use this plugin to report the status of OpenLDAP. |
OpenVPN | You can use this plugin to read the status file printed by OpenVPN. |
OVS Events | You can use this plugin to monitor the link status of OpenvSwitch-connected interfaces and send notifications when the link state change occurs. |
PCIe Errors | You can use this plugin to monitor and report PCI Express errors. |
Ping | You can use this plugin to measure network latency using Internet Control Message Protocol (ICMP) echo requests. |
procevent | You can use this plugin to monitor process starts and exits. |
Python | You can use this plugin to bind to python. |
Sensors |
You can use this plugin to read hardware sensors using |
Serial | You can use this plugin to collect traffic on the serial interface. |
SNMP | You can use this plugin to read values from network devices using the Simple Network Management Protocol (SNMP). |
SNMP Agent | You can use this plugin to handle queries from the principal SNMP agent and return the data collected by read plugins. |
StatsD |
You can use this plugin to implement the |
sysevent |
You can use this plugin to listen for incoming |
SysLog |
You can use this plugin to receive log messages from the |
Table | You can use this plugin to parse plain text files in table format. |
Tail |
You can use this plugin to tail log files, in a similar way as the |
Tail CSV | You can use this plugin to tail CSV files. |
threshold | You can use this plugin to generate notifications on given thresholds. |
turbostat | You can use this plugin to read CPU frequency and C-state residency on modern Intel turbo-capable processors. |
UnixSock |
You can use this plugin to communicate with the |
Users | You can use this plugin to count the number of users currently logged into the system. |
UUID | You can use this plugin to determine the uniquie identifier (UUID) of the system that it is running on. |
Write Graphite |
You can use this plugin to store values in |
Write HTTP |
You can use this plugin to send the values collected by |
Write Log | You can use this plugin to write metrics as INFO log messages. |
Write Prometheus | You can use this plugin to implement a web server that can be scraped by Prometheus. |