Provided by Edgar Fuß.
Changes:
collectd: Build fix: duplicate switch case has been removed. Thanks to Sebastian Schmidt. #3536
collectd: Updated specfile for EL8. Thanks to Fabien Wernli. #3346
types.db(5): Documentation of metric definitions has been improved. Thanks to @octo. #3458
collection3: Some small titles has been improved from {type_instance} to {instance}. Thanks to Christian Tacke. #3476
AMQP1 plugin: New options to limit send queue length has been added. Thanks to Ryan McCabe. #3432
AMQP plugin: Updated option to allow multiple hosts to support failover. Thanks to Märt Bakhoff. #3410
capabilities plugin: Conditionalized return type for microhttpd callback functions. Thanks to José M. Guisado. #3512
Ceph plugin: An incorrect close on file descriptor 0 has been fixed. Thanks to @octo. #3459
CPU plugin: Implementation for NetBSD has been added. Thanks to Håvard Eidnes, Edgar Fuß. #3496
Curl Jolokia plugin: New plugin has been added to integrate jolokia to fetch jmx counters via HTTP/json. Thanks to Wilfried Goesgens. #2470
cURL plugin: Memory leak has been fixed. Thanks to Barbara Kaczorowska. #3547
Disk plugin: Provided an udev rule with ID_SERIAL based attribute so disk and partition data don't get mixed incorrectly in udev-based disk naming. Thanks to Maciej S. Szmigiero. #3441
DPDK Telemetry plugin: Build issues has been fixed. Thanks to Fabrice Fontaine. #3439
Entropy plugin: Implementation for NetBSD has been added. Thanks to Håvard Eidnes, Edgar Fuß. #3497
InfiniBand plugin: New plugin to collect metrics about IB ports has been added. Thanks to Luke Yeager. #3494
InfiniBand plugin: The build has been fixed by linking with libignorelist. Thanks to Luke Yeager. #3516
Intel PMU plugin: Check for libjevents version has been improved. Thanks to Kamil Wiatrowski. #3407
Intel PMU plugin: The possible crash on plugin init has been fixed. Thanks to Kamil Wiatrowski. #3480
IntelRDT plugin: A build issue of the plugin's unit test has been fixed. Thanks to @octo. #3566
IntelRDT plugin: NaN values in csv output has been fixed. Thanks to Michał Aleksiński, Paweł Tomaszewski. #3503
IRQ plugin: Implementation for NetBSD has been added. Thanks to Håvard Eidnes, Edgar Fuß. #3498
Mdevents plugin: New plugin to generate notifications about events in RAID arrays. Thanks to Krzysztof Kazimierczak, Maciej Fijałkowskii, Michał Kobyliński. #2841
Memory plugin: Implementation for NetBSD has been added. Thanks to Håvard Eidnes, Edgar Fuß. #3499
MQTT plugin: A problem with stuck after 20 (qos=1) messages has been fixed. Thanks to Viulian. #2730
MQTT plugin: Resubscribe after a reconnect. Thanks to Maciej S. Szmigiero. #3452
MySQL plugin: Compatibility with MariaDB >=10.5 has been fixed. Thanks to Alexander Meshcheryakov. #3548
MySQL plugin: Reporting of the fields Slave_IO_Running and Slave_SQL_Running has been added. Thanks to Thomas Mieslinger. #3463
Netlink plugin: VFs statistics and link info has been added. Thanks to Kamil Wiatrowski. #3487
Netstat UDP plugin: New plugin ((currently NetBSD-only) to report UDP summary statistics has been aded. Thanks to Håvard Eidnes, Edgar Fuß. #3502
Network plugin: Initialization of sockent_t has been simplified. Thanks to @octo, Dagobert Michelsen. #3543
NFS plugin: NetBSD implementation has been fixed, undefined suppress_warning variable has been removed. Thanks to Edgar Fuß. #3495
OpenVPN plugin: Parsing of empty fields has been fixed. Thanks to @rpv-tomsk. #3425
Processes plugin: Implementation for NetBSD has been added. Thanks to Håvard Eidnes, Edgar Fuß. #3500
Processes plugin: Size of reading buffer for /proc/stat has been increased. Thanks to Mhumpula. #3479
Python plugin: Error-handling code of PyType_Ready has been added. Thanks to Jia Zhouyang. #3402
Sensors plugin: The documentation has been improved. Thanks to @octo. #3443
Slurm plugin: Compatibility with Slurm versions >= 20.02 has been provided. Thanks to Pablo Llopis. #3518
SMART plugin: SMART plugin has been extended with NVMe device functionality. Thanks to Bartłomiej Kotłowski, Paweł Żak, Sławomir Strehlau. #3510
SNMP Agent plugin: A strncat() truncation warning has been fixed. Thanks to @octo. #3564
SNMP plugin: Count option was added allowing to gather the number of table entries (matching given criteria) rather than their values. Thanks to Edgar Fuß. #3504
Swap plugin: Implementation for NetBSD has been added. Thanks to Håvard Eidnes, Edgar Fuß. #3501
UBI plugin: Data source type has been fixed from counter to gauge. Thanks to Florian Eckert. #3486
Varnish plugin: Added varnish 6 support. Thanks to Charly Koza, Ismael Puerto. #3445
Varnish plugin: Target in category for varnish 6 has been added. Thanks to Charly Koza. #3446
Write HTTP plugin: libcurl default HTTP response has been moved to a buffer instead of stdout. Thanks to Duane Waddle. #3263
Write Prometheus plugin: fix for libmicrohttpd api change. Thanks to Bernd Zeimetz. #3514
Write Sensu plugin: IncludeSource option has been added. Thanks to Märt Bakhoff. #3398
Zookeeper plugin: Missing 3.5 mntr fields has been added. Thanks to Théophane Charbonnier. #3450
Zookeeper plugin: Missing mntr fields has been fixed. Thanks to Théophane Charbonnier. #3449
Temporarily disable the processes plugin for NetBSD, until the patch
is rewritten to build again.
Upstream changes since 5.7.2:
- collectd: The core daemon is now completely licensed under the MIT
license.
- collectd: Added daemon option to avoid making BaseDir.
- collectd: Global variables have been moved to their own module to
make porting collectd easier.
- collectd as well as Apache, memcached, OpenLDAP, Perl, RouterOS,
SNMP, Tail-CSV plugins: Free userdata for
"plugin_register_complex_read()".
- Collectd client library: Added parsing and server code.
- Build system: Dependency on libltdl has been removed, support for
libtool 1 has been dropped.
- Build system: The build system has been switched to non-recursive
make.
- APC UPS plugin: The plugin's configuration is now optional. Without
a "<Plugin />" block reasonable defaults will be used.
- Chrony plugin: Several issues found when working with a stratum-1
server have been fixed.
- Ceph plugin: Support for the Ceph version "Luminous" has been added.
- CPU plugin : Linux-specific "guest" states have been added.
- cURL plugin, cURL-JSON, cURL-XML, DBI, FileCount, memcachec, Oracle,
PostgreSQL, Table, Tail, Tail CSV plugins: The ability to configure
the "plugin" field of generated metrics has been added.
- cURL-JSON plugin: Parsing of arrays has been fixed.
- DPDKEvents plugin: This new plugin reports link status and keep
alive events.
- DPDKStat plugin: The plugin has been refactored to make DPDK related
utility functions reusable.
- DPDKStat plugin: The "LogLevel" and "RteDriverLibPath" config
options have been added.
- Email plugin as well as Exec and Unixsock plugins: Use
"_SC_GETPW_R_SIZE_MAX".
- FileCount plugin: Custom values for reported plugin, type and type
instance.
- GenericJMX plugin: Support for "AtomicInteger" and "AtomicLong" has
been added.
- gRPC plugin: Support for meta data has been added.
- IPC plugin: Fixed failed compilation on AIX.
- Intel PMU plugin: This new plugin collects CPU performance metrics
using Intel's Performance Monitoring Unit (PMU). Scaling information
added to metadata.
- Intel RDT plugin: Support for collectd's logging infrastructure has
been added. PQoS monitoring groups are being reset on start-up to
fix potential previous unclean shutdowns.
- IPMI plugin: Support for System Event Log (SEL) has been added.
- IPMI plugin: Support for remote IPMI controllers has been added.
- LVM plugin: A check for the "CAP_SYS_ADMIN" capability has been
added. This will give users an informative warning when the process
is not running with the required privileges for this plugin.
- mcelog plugin: This new plugin subscribes to Machine Check
Exceptions (MCE) and dispatches notifications. Metadata reset.
- MQTT plugin: Add support for TLS in "Subscriber" blocks.
- memcached plugin: Persistent connections have been implemented. Fix
hit ratio reporting, add connections rate report.
- memcached plugin: The type of the "listen_disabled" metric has been
changed to "total_events".
- Netlink plugin: The dropped packets metric has been added.
- NFS plugin: Support for NFS 4.2 metrics has been added.
- NFS plugin: Config options to ignore specified NFS versions have
been added.
- NUT plugin: The "ConnectTimeout", "ForceSSL", "VerifyPeer" and
"CAPath" options have been added.
- OpenLDAP plugin: A segfault after a connection failure has been
fixed.
- Openvpn plugin: Added support for status files from latest
OpenVPN-2.4 and possible from future versions.
- OVS Events plugin: This new plugin reports link state changes from
Open vSwitch (OVS).
- OVS Stats plugin: This new plugin reports bridge / interface
statistics from Open vSwitch (OVS).
- Perl plugin: Bugfix, added check of proper interpreter
initialization.
- PostgreSQL plugin: The plugin now sets the "application_name"
parameter when connecting to the database.
- Processes plugin: The I/O operations reported for selected processes
has been fixed. The metric "ps_disk_octets" has been renamed to
"io_octets" because it actually contains the number of I/O operation
by the process, not just disk related I/O. Same for "io_ops"
(previously "ps_disk_ops"). The new metric "disk_octets" has been
added and is reporting disk I/O only. Add option to collect the count
of active memory maps for Linux processes. The "CollectFileDescriptor"
and "CollectContextSwitch" options have been added.
- Processes and TCPConns plugins: The OpenBSD implementation has been
changed to use "kvm_openfiles" with "KVM_NO_FILES".
- Python plugin: Extend Notification class to include metadata.
- Python plugin: The "CollectdException" class has been added. This
allows to throw an exception without a stack trace being logged.
- Sensors plugin: Support for (electrical) current has been added.
- SNMP plugin: Error handling has been improved: a potential
double-free is now avoided (potentially leaking memory) and handling
of non-failing subtrees has been fixed.
- SNMP plugin: The "Timeout" and "Retries" config options have been
added.
- SNMP Agent plugin: This new plugin implements an SNMP AgentX
subagent that receives and handles queries from SNMP master agent
and returns configured metrics.
- Synproxy plugin: This new plugin provides statistics for Linux
SYNPROXY.
- Tail plugin: Allow the calculation of several distributions in one
"tail" instance through a "bucket" type.
- Turbostat plugin: Import "msr-index.h" header from Linux and better
support for mutliple packages.
- Uptime plugin: Changed implementation to read from "/proc/uptime"
instead of "/proc/stat". Update for Linux and AIX, uptime is read
directly using a system call. Update for BSD and Solaris, uptime is
calculated by subtracting boot time from current time.
- UUID plugin: Support for libhal has been removed.
- Varnish plugin: Extended the varnish plugin with varnish-plus
counters. Fixed invalid data source type.
- virt plugin: The plugin has been updated to use
"virConnectListAllDomains()".
- virt plugin: Support for domain tags has been added.
- virt plugin: Connection handling has been improved.
- virt plugin: Many metrics have been added, including disk,
hypervisor CPU usage, performance monitoring events, domain state,
CPU pinning (affinity), file system, and job statistics.
- Write Graphite plugin: Additional tests have been added.
- Write HTTP plugin: The "Attribute" and "TTL" options for the
KairosDB format have been added. Implementation of "Prefix" option.
- Write MongoDB plugin: Memory leaks have been fixed.
- Write Prometheus plugin: Label values are now properly escaped.
- Write Redis plugin: Add "max_set_duration" to set duration for
value.
- Write Riemann plugin: Export times with microsecond resolution.
- Write TSDB plugin: The options "ResolveInterval" and "ResolveJitter"
have been added to control DNS lookup behavior. This prevents DNS
flooding in case TSDB is not available.
- ZFS ARC plugin: Header lines are now ignored in the Linux
implementation.
- Build system: The Notify Email plugin is no longer linked with
indirect dependencies.
- collectd: A race condition when calculating a metric's rate has been
fixed.
- AMQP, Exec, UnixSock, Write Kafka plugins: Parsing of the PUTVAL
command with multiple values has been fixed.
- AMQP plugin: The "ExchangeType" option is now also valid for
publishers.
- BIND plugin: Fix parsing of the sample time provided by BIND.
Previously, the time was assumed to be in the local timezone when in
fact it was in UTC.
- BIND plugin: Memory leaks have been fixed.
- cURL-JSON plugin: Handling of arrays has been fixed.
- DPDKStat plugin: Error handling during initialization has been
improved.
- DPDKStat plugin: Handling of a number of metrics has been improved,
for example "rx_q0bytes".
- Intel RDT plugin: Configuration handling has been changed to be more
graceful.
- Log Logstash plugin: If writing the log entry fails, print it to
"STDERR" instead.
- LogFile plugin: If writing to the file fails, print log messages on
"STDERR" instead.
- memcachec, Tail plugins: A resource leak in the matching
infrastructure has been fixed.
- MQTT plugin: Invalid symbols in topic names are now replaced and a
resource leak has been fixed.
- Network plugin: A potential endless-loop has been fixed. This can be
triggered remotely by sending a signed network packet to a server
which is not set up to check signatures.
- Perl plugin: A potential double-free has been fixed.
- Processes plugin: A compilation error on AIX has been fixed.
- SMART plugin: A check for the "CAP_SYS_RAWIO" capability has been
added.
- Write Graphite plugin: Error handling in the case that calculating a
metric's rate fails has been improved. Previously, the raw counter
values were sent to Graphite.
- Write Prometheus plugin: An incorrect use of "realloc(3)" has been
fixed.
- Simplify patching somewhat by calling automake
- Temporarily disable the processes plugin patch for NetBSD, until
its code is amended for collectd code changes.
Version 5.6.1
- Build system: Unnecessary linking of the Write Graphite plugin
with libyajl has been removed.
- collectd: A bug in the FlushInterval option that caused a
segmentation fault in the Write HTTP plugin has been fixed.
- Apache plugin: A syntax error has been fixed.
- cURL-JSON plugin: A segmentation fault that occurred when
handling JSON with unexpected structure has been fixed.
- PostgreSQL plugin: Handling of NULL values in the query_plans
and query_plans_by_table queries has been fixed.
- RRDCacheD plugin: Reconnection behavior has been added.
- VServer plugin: Use of a deprecated API (readdir_r()) has been
fixed.
- Write Graphite plugin: Make default values configurable at
compile time again.
- Write HTTP plugin: A bug has been fixed that lead to flush
callbacks being registered twice.
Version 5.6.0
- Build system: An option to to avoid building the DF plugin
against XFS has been added.
- Build system: Autoconf >=2.60, a C99-capable compiler and
pkg-config are now required.
- Build system: Building with -Werror is now optional.
- Build system: Many compilation issues on non-Linux platforms
have been fixed, leading to wider plugin support.
- Build system: The configuration summary now also ends up in
config.log.
- collectd: All command-line options now override global options
from the config file.
- collectd: A number of unit tests for commonly used functions
have been added.
- collectd: Plugins start up and read timeouts are now logged.
- collectd: Support for a timeout has been added to FLUSH
callbacks.
- collectd: The -T command line switch now reports more errors.
- collectd: The max size of value list elements
(DATA_MAX_NAME_LEN) has been doubled and is now configurable at
build time.
- Set target: The MetaData option has been added.
- AMQP plugin, Write_HTTP plugin, Write_Kafka plugin: Support for
libyajl < 2 has been added.
- APC UPS plugin: Parsing of end markers has been fixed.
- APC UPS plugin: The PersistentConnection option has been added.
- ceph plugin, DNS plugin, Exec plugin, IPTables plugin, Ping
plugin, turbostat plugin: When running unprivileged, these
plugins will now warn about insuffiscient permissions or
capabilities(7).
- Chrony plugin: This new plugin collects NTP data from the chrony
NTP server.
- cpusleep plugin: This new plugin measures time spent by CPU in
deep sleep mode.
- CPU plugin: The ReportNumCpu option has been added.
- cURL plugin, cURL-JSON plugin, cURL-XML plugin: The new
Statistics reports various per-HTTP connection timers.
- DBI plugin: The Interval option has been added to Database
blocks.
- Disk plugin: Support for FreeBSD has been added.
- Empty Counter match: Support for derives has been implemented.
- GenericJMX plugin: Support for TabularData and the PluginName
option have been added.
- GPS plugin: This new plugin reports the number of sattelites
seen by and precision of a GPS receiver.
- gRPC plugin: This new client and server plugin allows sending
and receiving metrics using the gRPC protocol. Comparable to the
UnixSock plugin, but using TCP and TLS.
- Interface plugin: Reporting dropped packets has been added.
- Interface plugin: The ReportInactive has been added, letting
users skip inactive network interfaces.
- Interface plugin: The new, Solaris-only UniqueName option has
been added.
- Lua plugin: This new language binding allows writing plugins
using the Lua programming language.
- Memory plugin: Reporting of ARC memory on Solaris has been
added.
- MQTT plugin: This new plugin sends metrics to and/or receives
metrics from an MQTT broker.
- MySQL plugin: Connection to the database server can now be done
over SSL.
- MySQL plugin: Monitoring slow queries has been added.
- MySQL plugin: mysql_bpool_pages-flushed has been renamed to
mysql_bpool_counters-pages_flushed because the value is
cumulative.
- MySQL plugin: Support for Galera statistics has been added.
- MySQL plugin: Support for InnoDB metrics was improved.
- MySQL plugin: The mysql_sort type has been split into 3
different types.
- Network plugin: Decryption error logging has been improved.
- Notify Nagios plugin: This new plugin sends notifications to
Nagios as a passive check result.
- NTPd plugin: The plugin now detects if the ntp daemon reports
nanoseconds instead of microseconds.
- OpenLDAP plugin: Several connection-related improvements have
been made.
- OpenLDAP plugin: Support for "simple authentication" has been
added.
- Ping plugin: The Size option has been added, allowing the ICMP
data payload size to be configured.
- PostgreSQL plugin, DBI plugin, Oracle plugin: The new
PluginInstanceFrom option has been added.
- PowerDNS plugin: The recursor metrics have been updated to 3.7.3
and missing rr types have been added.
- Processes plugin: Counting of context switches was added for
Linux.
- Processes plugin: Improve reliability of thread counts on Linux.
- Python plugin: Minimal Python version requirement has been
bumped to 2.6.
- Redis plugin: Several additional metrics are now collected.
- Sensors plugin: The UseLabels option has been added.
- SMART plugin: The new IgnoreSleepMode option has been added.
- SMART plugin: The new UseSerial option allows identifying
devices in a stable way.
- SNMP plugin: The IpAddress can now be used for instances.
- StatsD plugin: Latency calculation histogram is now able to
shrink automatically to optimal size.
- StatsD plugin: The CounterSum option has been added.
- UUID plugin: The plugin now also looks in in smbios system table
and /sys/class/dmi.
- virt plugin: The PluginInstanceFormat option has been added.
- Write Graphite plugin: The ReconnectInterval option has been
added.
- Write HTTP plugin: A KairosDB formatter has been added.
- Write HTTP plugin: Notifications are now handled by this plugin.
- Write HTTP plugin: The LogHttpError option has been added.
- Write HTTP plugin: The new Headers option allows setting custom
HTTP headers in outgoing requests.
- Write Kafka plugin: Key handling has been made more
comprehensive and reliable.
- Write Redis plugin: The Database, MaxSetSize, Prefix and
StoreRates options have been added.
- Write Riemann plugin: The new BatchFlushTimeout and Timeout
option have been added.
- Write Riemann plugin: This plugin now requires the
riemann-c-client library, version 1.6.0+. This adds support for
submitting values to Riemann over TLS.
- Write TSDB plugin, Write Sensu plugin, Write Riemann plugin,
Write Graphite plugin, Write TSDB plugin: TCP keepalive is now
enabled, helping graceful recovery from unclean network
disconnections.
- XenCPU plugin: This new plugin collects XEN Hypervisor CPU
stats.
- ZFS ARC plugin: Several new statistics have been added and a
couple of obsolete ones removed.
- Zone plugin: This new plugin reads per-zone CPU usage on
Solaris.
Version 5.5.2
- collectd: A division by zero has been fixed in the
plugin_dispatch_multivalue() function.
- collectd: The address of the Free Software Foundation has been
fixed in GPL license headers.
- Build system: Detection and handling of librrd 1.6 and later has
been fixed.
- Apache plugin: A warning about a possible misconfiguration has
been added.
- cURL, cURL-JSON and cURL-XML plugins: A memory leak when
allocating more memory fails has been fixed.
- DF plugin: A build issue on DragonFlyBSD has been fixed.
- Ethstat plugin: Code to strip leading whitespace from device
names. This works around an issue in the VMXNet3 driver.
- Exec plugin: A problem in the error handling of an fdopen()
failure has been fixed.
- Modbus plugin: The debug output has been disabled by default. It
is now only enabled when building with --enable-debug.
- Network plugin: A check for the initialization of secure memory
has been added. Previously, failure to initialize this memory
was ignored.
- Network plugin: A heap overflow has been fixed in the server
code. This issue can be triggered remotely and is potentially
exploitable.
- Perl plugin: Init callbacks have been changed to run essentially
single-threaded to avoid race conditions by init functions which
create additional threads.
- Processes plugin: A compilation error on systems without regex.h
has been fixed.
- Processes plugin: A memory leak on Solaris has been fixed.
- Processes plugin: A warning about too long process names has
been added.
- Redis plugin: A memory leak in an error handling code path has
been fixed.
- Redis plugin: The data source type of the expired_keys metric
has been corrected to DERIVE.
- SMART plugin: A build dependency on libudev has been added.
- StatsD plugin: A deadlock on plugin shutdown has been fixed.
- Write HTTP plugin: Freeing of memory holding HTTP headers during
shutdown has been fixed.
- Write Sensu plugin: A segfault when the Tag was unset has been
fixed.
- ZFS ARC plugin: The cache_operation-stolen metric has been
removed for FreeBSD 10.2 and later.
collectd is a daemon which collects system performance statistics periodically
and provides mechanisms to store the values in a variety of ways, for example
in RRD-files.