Chapter 5. collectd plugins
You can configure multiple collectd plugins depending on your Red Hat OpenStack Platform (RHOSP) 16.2 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.
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
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
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.
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.
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"
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.
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.
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.
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.
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.
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.
collectd::plugin::cpufreq
Use the cpufreq
plugin to collect the current CPU frequency. There are no parameters for this plugin.
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 |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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
collectd::plugin::uptime
Use the uptime
plugin to collect information about system uptime.
This plugin is enabled by default.
Parameter | Type |
---|---|
interval | Integer |
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.
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
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.
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.