Version 5.0/Plans

From collectd Wiki
Jump to: navigation, search

Outdated! Version 5.0 has been released and this document is left here for reference only.

The following is a list of changes which are backwards-incompatible and therefore went into the new major release 5.0. This page serves the purpose to remind us what we wanted to change but couldn't, so that we don't forget to change it before releasing the new version.

See also: V4 to v5 migration guide


To Do

Rename plugins

  • The type of the plugin should be included in the plugin names somehow. I.e. similar to the notify_* plugins.
    • Renaming all plugins is probably not worth it, but it would be systematic to at least rename the write plugins. Affected are the CSV, RRDCacheD and RRDtool plugins. Other plugins, such as the Network plugin, are I/O plugins rather than write plugins. —octo 06:52, 7 January 2011 (UTC)
    • The libvirt plugin causes trouble because some parts of the autotools assume it's a library. Maybe it should be renamed to "virt". —octo 08:53, 8 January 2011 (UTC)


Enable FQDNLookup by default

  • Make collectd use the fully qualified domain name (FQDN) by default. Currently the string returned by gethostname(2) is used, which is not appropriate for large setups.
    ☑ Committed to the master branch on May 1st. —octo 13:25, 1 May 2010 (UTC)

DF plugin

  • The df plugin currently stores the disk name in the type-instance, and the Disk plugin stores it in the plugin-instance. These should be made consistent (plugin-instance is the convention in other plugins).
    ☑ Committed to the master branchocto 14:19, 1 May 2010 (UTC)

Exec plugin

  • Remove support for lines that do not start with a command. Currently, PUTVAL is prepended to such lines.
    ☑ Committed to the master branch. —octo 07:28, 5 July 2010 (UTC)

HDDTemp plugin

  • Remove the TranslateDevicename and change the (default) behavior.
    ☑ Committed to the master branch. —octo 09:27, 5 July 2010 (UTC)

Interface plugin

  • The Interface plugin currently stores the interface in the type-instance. It'd be more in line with other plugins to use the plugin-instance here.
    ☑ Fixed in the master branch. —octo 13:51, 1 May 2010 (UTC)

MySQL plugin

  • Due to backwards compatibility code it's possible to omit the <Database /> block. This legacy mode should be removed.
    ☑ Committed to the master branch. —octo 08:13, 5 July 2010 (UTC)
  • The types used by the MySQL plugin are a legacy (to say the least). Break them up into files with one data source each.
    ☑ The mysql_qcache and mysql_threads types have been broken up. Code is in the master branch. —octo 09:16, 5 July 2010 (UTC)
    ☑ The types themselves have also been removed from the types.db. —octo 07:42, 29 August 2010 (UTC)

Network plugin

  • Increase the default buffer size to 1452 bytes (one ethernet frame minus IPv6 and UDP headers). The networking code in the ff/netlib branch already uses this default. —octo 20:48, 4 September 2010 (UTC)
    ☑ Committed to the master branch. —octo 06:40, 30 September 2010 (UTC)

Perl plugin

  • src/perl.c and bindings/perl/ include various deprecated compatibility layers (look for the string "deprecated" in the source files) for earlier versions of the plugin that should be removed.
    ☑ Compatibility code has been removed from Collectd_plugin_dispatch_values. —octo 07:52, 29 August 2010 (UTC)
    ☑ The deprecated plugin_flush_{all,one} functions have been removed. —octo 07:57, 29 August 2010 (UTC)

PostgreSQL plugin

  • src/utils_db_query.c includes compatibility code for early versions of the PostgreSQL plugin. This code should be removed.
    ☑ Commited to the master branch. —octo 13:58, 11 August 2010 (UTC)

ZFS ARC plugin

  • The types used by this plugin should be split up. Especially arc_counts and arc_size which have four data sources each and are not extensible. —octo 07:27, 30 September 2010 (UTC)
    ☑ This has been changed in the master branch and the v5 upgrade target has been extended to take care of this change. —octo 14:57, 11 November 2010 (UTC)

Sub-second timestamps

  • Would be really good to support the sub-second timestamps that I believe rrdtool now supports.
    • Some work has been put into this. The result can be found in the ff/subsecond branch. There are only few known places left to adapt, for example the Python plugin, so any problem encountered should be reported as error. —octo 08:58, 11 November 2010 (UTC)
    • Sven has fixed the Python plugin. —octo 14:57, 11 November 2010 (UTC)
    • The Network plugin has been changed to emit new high-resolution parts. —octo 09:04, 16 November 2010 (UTC)
  • The new time format has been documented at High resolution time format.
  • ☑ Merged to the master branch. —octo 14:25, 17 November 2010 (UTC)

Swap plugin

  • Aurélien Reynaud has provided a patch to change the Swap plugin to using swapctl() rather than kstat(3). This provides the actual space used on-disk but changes the behavior of the plugin. The original kstat-based implementation may be interesting for the virtual memory subsystem stuff. Feedback is very welcome. The patch has been sent to the mailing list on May 4th, 2010.
  • The kstat(3) based code has been removed from the Swap plugin with the intention to reintroducing it into the vmem plugin. This hasn't been done yet, though. —octo 07:53, 2 January 2011 (UTC)

Rename data sources

  • Ideally, all data sets should only have one data source, and the name of that data source should be "value". Especially annoying is the data set "conntrack", because its data source is named "entropy".
    ☑ This has been committed to the master branch. —octo 15:41, 5 December 2010 (UTC)

v5 upgrade target

  • The v5 upgrade target can be used to upgrade version 4 data to a changed version 5 layout. For example, it ensures that the interface name is assigned to the plugin instance rather than the type instance and converts the df type to the df_complex type.

Migration script

  • We still need a migration script to assist the user in migrating existing RRD files, similar to the v3–v4 script contrib/migrate-3-4.px.
    • An initial version is available as contrib/migrate-4-5.px. —octo 07:47, 2 January 2011 (UTC)
    • Options parsing has been committed to the repository. —octo 09:16, 5 January 2011 (UTC)

Apache plugin

  • Rename the plugin to “httpd”, “mod_status” or similar, since lighttpd can be queried, too.
    • Won't do that now. Too much hassle for users without any real gain. —octo 06:43, 7 January 2011 (UTC)
  • Remove the legacy code for configurations without <Instance /> blocks. Document the instance blocks properly, especially how to configure a host with an empty plugin instance.
    ☑ Commited to the master branch. —octo 09:47, 27 September 2010 (UTC)


  • It might be a good idea to move the threshold configuration out of the actual daemon and into a separate plugin. With the publicly available global cache there is no benefit from keeping the threshold stuff in the daemon. Moving it to a plugin would reduce the complexity of the actual daemon, which IMHO is a good thing.
    • As a first step, a new type of callbacks for missing value lists has been added. The code is largely untested and available from the master branch. —octo 22:07, 23 November 2010 (UTC)
    • Some more work has been done on this. The code is not in a separate plugin and the documentation has been changed. It hasn't been thoroughly tested yet, though. —octo 10:33, 5 December 2010 (UTC)
Personal tools