Chapter 5. collectd plugins
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 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 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 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. 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 Parameter Type instances Hash interval Integer manage-package Boolean package_install_options List Table 5.4. apache instances parameters 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 . 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 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 . 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 Parameter Type 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 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" 5.6. collectd::plugin::ceph Use the ceph plugin to gather data from ceph daemons. Table 5.8. ceph parameters 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 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 Parameter Type 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 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 . 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 Name Description Query 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 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 . 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 Parameter Type 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 Name Description Query 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 Parameter Type Defaults 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 Parameter Type Defaults disks Array [] ignoreselected Boolean false udevnameattr String <undefined> Table 5.17. disk metrics 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 . 5.16. collectd::plugin::hugepages Use the hugepages plugin to collect hugepages information. Table 5.18. hugepages parameters 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 . 5.17. collectd::plugin::interface Use the interface plugin to measure interface traffic in octets, packets per second, and error rate per second. Table 5.19. interface parameters 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 . 5.18. collectd::plugin::load Use the load plugin to collect the system load and an overview of the system use. Table 5.20. plugin parameters 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 . 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 Parameter Type 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 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 . 5.21. collectd::plugin::memory Use the memory plugin to retrieve information about the memory of the system. Table 5.23. memory parameters 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 . 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 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 . 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 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 . 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 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 . 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 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 . 5.26. collectd::plugin::swap Use the swap plugin to collect information about the available and used swap space. Table 5.28. swap parameters 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 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 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 5.28. collectd::plugin::thermal Use the thermal plugin to retrieve ACPI thermal zone information. Table 5.30. thermal parameters Parameter Type 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. Table 5.31. uptime parameters Parameter Type 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 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 . 5.31. collectd::plugin::vmem Use the vmem plugin to collect information about virtual memory from the kernel subsystem. Table 5.33. vmem parameters Parameter Type 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 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 . 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 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 .
ExtraConfig: collectd::plugin::example_plugin::<parameter>: <value> 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 parameter_defaults: CollectdExtraPlugins: - amqp1 ExtraConfig: collectd::plugin::amqp1::send_queue_limit: 5000 parameter_defaults: CollectdExtraPlugins: - apache ExtraConfig: collectd::plugin::apache::instances: localhost: url: "http://10.0.0.111/mod_status?auto" 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" parameter_defaults: ExtraConfig: collectd::plugin::ceph::daemons: - ceph-osd.0 - ceph-osd.1 - ceph-osd.2 - ceph-osd.3 - ceph-osd.4 parameter_defaults: ExtraConfig: collectd::plugin::connectivity::interfaces: - eth0 - eth1 parameter_defaults: CollectdExtraPlugins: - cpu ExtraConfig: collectd::plugin::cpu::reportbystate: true parameter_defaults: ExtraConfig: collectd::plugin::df::fstypes: ['tmpfs','xfs'] parameter_defaults: ExtraConfig: collectd::plugin::disk::disks: ['sda', 'sdb', 'sdc'] collectd::plugin::disk::ignoreselected: true This plugin is enabled by default. parameter_defaults: ExtraConfig: collectd::plugin::hugepages::values_percentage: true This plugin is enabled by default. parameter_defaults: ExtraConfig: collectd::plugin::interface::interfaces: - lo collectd::plugin::interface::ignoreselected: true This plugin is enabled by default. parameter_defaults: ExtraConfig: collectd::plugin::load::report_relative: false parameter_defaults: CollectdExtraPlugins: mcelog CollectdEnableMcelog: true parameter_defaults: CollectdExtraPlugins: - memcached ExtraConfig: collectd::plugin::memcached::instances: local: host: "%{hiera('fqdn_canonical')}" port: 11211 This plugin is enabled by default. parameter_defaults: ExtraConfig: collectd::plugin::memory::valuesabsolute: true collectd::plugin::memory::valuespercentage: false 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 parameter_defaults: CollectdExtraPlugins: - ovs_stats ExtraConfig: collectd::plugin::ovs_stats::socket: '/run/openvswitch/db.sock' parameter_defaults: CollectdExtraPlugins: - smart CollectdContainerAdditionalCapAdd: "CAP_SYS_RAWIO" 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 parameter_defaults: CollectdExtraPlugins: - tcpconns ExtraConfig: collectd::plugin::tcpconns::listening: false collectd::plugin::tcpconns::localports: - 22 collectd::plugin::tcpconns::remoteports: - 22 parameter_defaults: CollectdExtraPlugins: - thermal This plugin is enabled by default. ExtraConfig: collectd::plugin::virt::hostname_format: "name uuid hostname" collectd::plugin::virt::plugin_instance_format: metadata parameter_defaults: CollectdExtraPlugins: - vmem ExtraConfig: collectd::plugin::vmem::verbose: true 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" parameter_defaults: CollectdExtraPlugins: - write_kafka ExtraConfig: collectd::plugin::write_kafka::kafka_hosts: - remote.tld:9092 collectd::plugin::write_kafka::topics: mytopic: format: JSON