Chapter 5. collectd plugins

You can configure multiple collectd plugins depending on your Red Hat OpenStack Platform (RHOSP) 17.0 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.

5.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.

Table 5.1. aggregation parameters

ParameterType

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:

  1. aggregator-calcCpuLoadAvg.conf: average CPU load for all CPU cores grouped by host and state
  2. aggregator-calcCpuLoadMinMax.conf: minimum and maximum CPU load groups by host and state
  3. 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

5.2. collectd::plugin::amqp1

Use the amqp1 plugin to write values to an amqp1 message bus, for example, AMQ Interconnect.

Table 5.2. amqp1 parameters

ParameterType

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.

Note

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

5.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.

Table 5.3. apache parameters

ParameterType

instances

Hash

interval

Integer

manage-package

Boolean

package_install_options

List

Table 5.4. apache instances parameters

ParameterType

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.

5.4. collectd::plugin::battery

Use the battery plugin to report the remaining capacity, power, or voltage of laptop batteries.

Table 5.5. battery parameters

ParameterType

values_percentage

Boolean

report_degraded

Boolean

query_state_fs

Boolean

interval

Integer

Additional resources

For more information about configuring the battery plugin, see battery.

5.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.

Table 5.6. bind parameters

ParameterType

url

HTTP URL

memorystats

Boolean

opcodes

Boolean

parsetime

Boolean

qtypes

Boolean

resolverstats

Boolean

serverstats

Boolean

zonemaintstats

Boolean

views

Array

interval

Integer

Table 5.7. bind views parameters

ParameterType

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"

5.6. collectd::plugin::ceph

Use the ceph plugin to gather data from ceph daemons.

Table 5.8. ceph parameters

ParameterType

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

Note

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.

5.7. collectd::plugins::cgroups

Use the cgroups plugin to collect information for processes in a cgroup.

Table 5.9. cgroups parameters

ParameterType

ignore_selected

Boolean

interval

Integer

cgroups

List

Additional resources

For more information about configuring the cgroups plugin, see cgroups.

5.8. collectd::plugin::connectivity

Use the connectivity plugin to monitor the state of network interfaces.

Note

If no interfaces are listed, all interfaces are monitored by default.

Table 5.10. connectivity parameters

ParameterType

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.

5.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.

5.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.

5.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.

Table 5.11. cpu metrics

NameDescriptionQuery

idle

Amount of idle time

collectd_cpu_total{...,type_instance='idle'}

interrupt

CPU blocked by interrupts

collectd_cpu_total{...,type_instance='interrupt'}

nice

Amount of time running low priority processes

collectd_cpu_total{...,type_instance='nice'}

softirq

Amount of cycles spent in servicing interrupt requests

collectd_cpu_total{...,type_instance='waitirq'}

steal

The percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor

collectd_cpu_total{...,type_instance='steal'}

system

Amount of time spent on system level (kernel)

collectd_cpu_total{...,type_instance='system'}

user

Jiffies that user processes use

collectd_cpu_total{...,type_instance='user'}

wait

CPU waiting on outstanding I/O request

collectd_cpu_total{...,type_instance='wait'}

Table 5.12. cpu parameters

ParameterTypeDefaults

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.

5.12. collectd::plugin::cpufreq

Use the cpufreq plugin to collect the current CPU frequency. There are no parameters for this plugin.

5.13. collectd::plugin::csv

Use the csv plugin to write values to a local file in CSV format.

Table 5.13. csv parameters

ParameterType

datadir

String

storerates

Boolean

interval

Integer

5.14. collectd::plugin::df

Use the df plugin to collect disk space usage information for file systems.

This plugin is enabled by default.

Table 5.14. df metrics

NameDescriptionQuery

free

Amount of free disk space

collectd_df_df_complex{...,type_instance="free"}

reserved

Amount of reserved disk space

collectd_df_df_complex{...,type_instance="reserved"}

used

Amount of used disk space

collectd_df_df_complex{...,type_instance="used"}

Table 5.15. df parameters

ParameterTypeDefaults

devices

Array

[]

fstypes

Array

['xfs']

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.

5.15. collectd::plugin::disk

Use the disk plugin to collect performance statistics of hard disks and, if supported, partitions.

Note

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.

Table 5.16. disk parameters

ParameterTypeDefaults

disks

Array

[]

ignoreselected

Boolean

false

udevnameattr

String

<undefined>

Table 5.17. disk metrics

NameDescription

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.

5.16. collectd::plugin::hugepages

Use the hugepages plugin to collect hugepages information.

This plugin is enabled by default.

Table 5.18. hugepages parameters

ParameterTypeDefaults

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.

5.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.

Table 5.19. interface parameters

ParameterTypeDefault

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.

5.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.

Table 5.20. plugin parameters

ParameterTypeDefault

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.

5.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.

Table 5.21. mcelog parameters

ParameterType

Mcelogfile

String

Memory

Hash { mcelogclientsocket[string], persistentnotification[boolean] }

Example configuration:

parameter_defaults:
    CollectdExtraPlugins: mcelog
    CollectdEnableMcelog: true

Additional resources

  • For more information about configuring the mcelog plugin, see mcelog.

5.20. collectd::plugin::memcached

Use the memcached plugin to retrieve information about memcached cache usage, memory, and other related information.

Table 5.22. memcached parameters

ParameterType

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.

5.21. collectd::plugin::memory

Use the memory plugin to retrieve information about the memory of the system.

This plugin is enabled by default.

Table 5.23. memory parameters

ParameterType

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.

5.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.

Table 5.24. ntpd parameters

ParameterType

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.

5.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.

Table 5.25. ovs_stats parameters

ParameterType

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.

5.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.

Table 5.26. plugin parameters

ParameterTypeDefaults

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.

5.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?.

Table 5.27. smart parameters

ParameterType

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.

5.26. collectd::plugin::swap

Use the swap plugin to collect information about the available and used swap space.

Table 5.28. swap parameters

ParameterType

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

5.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.

Table 5.29. tcpconns parameters

ParameterType

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

5.28. collectd::plugin::thermal

Use the thermal plugin to retrieve ACPI thermal zone information.

Table 5.30. thermal parameters

ParameterType

devices

Array

ignoreselected

Boolean

interval

Integer

Example configuration:

parameter_defaults:
  CollectdExtraPlugins:
  - thermal

5.29. collectd::plugin::uptime

Use the uptime plugin to collect information about system uptime.

This plugin is enabled by default.

Table 5.31. uptime parameters

ParameterType

interval

Integer

5.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.

Table 5.32. virt parameters

ParameterType

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.

5.31. collectd::plugin::vmem

Use the vmem plugin to collect information about virtual memory from the kernel subsystem.

Table 5.33. vmem parameters

ParameterType

verbose

Boolean

interval

Integer

Example configuration:

parameter_defaults:
  CollectdExtraPlugins:
  - vmem

  ExtraConfig:
    collectd::plugin::vmem::verbose: true

5.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.

Table 5.34. write_http parameters

ParameterType

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.

5.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:

Table 5.35. write_kafka parameters

ParameterType

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.