Difference between revisions of "Roadmap"

From collectd Wiki
Jump to: navigation, search
(Insert horizontal lines between sections)
(Wishlist / Ideas)
Line 140: Line 140:
  
 
:Couldn't find a hopepage for this project. Where does it live? Is it still alive? -- [[User:Octo|octo]] 21:16, 22 September 2009 (UTC)
 
:Couldn't find a hopepage for this project. Where does it live? Is it still alive? -- [[User:Octo|octo]] 21:16, 22 September 2009 (UTC)
 +
 +
=== HAproxy plugin ===
 +
 +
[http://haproxy.1wt.eu/ HAproxy] is a fast and featureful HTTP and TCP proxy. It has a rich status page, with lot of counters for each frontend and backend : http://demo.1wt.eu/ for example.
 +
 +
This plugin would allow collecting all these metrics, per instance. It can parse the CSV version of the page. The page can be protected using HTTP authentication.
 +
--[[User:Renchap|Renchap]] 20:59, 8 December 2009 (UTC)
  
 
[[Category:Development]]
 
[[Category:Development]]

Revision as of 21:59, 8 December 2009

Description

Life goes on. Which features are planned in future releases? This page is more a list of ideas than a fixed plan for the future, but it may give you an idea where the journey is going. If you want to contribute but don't know what is to be done, simply drop us a short mail and we'll get you started.

This file is not automatically generated and may thus be out of date from time to time. To give you an idea how fresh this information is please take a look at its history.

Implemented features

The following features have been implemented and will be released as version 4.9 eventually. You can check out our Git repository to test these features. They can be found in the master branch. Any feedback and bug reports are welcome!

Scale target

The Scale target can be used to modify the values being handled by collectd. Currently you can multiply the values by a constant (hence the name “scale”) and add an offset. This works not only for GAUGE but for all data source types.

Hashed match

The Hashed match calculates a hash value based on the host name and uses it to distribute values evenly into groups. Handy for load balancing.

cURL plugin

The MeasureResponseTime option has been added. If enabled, it will measure the time between sending the request and receiving the response. The patch has been written by Aman Gupta on September 14th.

DF plugin

INode counters have been added by Patrik Weiskircher on October 1st.

New config options: ReportReserved and ReportInodes → Update Plugin:DF#Synopsis.

Processes plugin

Collection of the fork-rate has been added by Patrik Weiskircher on October 1st.

ContextSwitch plugin

This new plugin collects the number of context switches done by the operating system. Written by Patrik Weiskircher and committed on October 2nd.

NetApp plugin

NetApp, the company famed for their storage solutions, provides a C API to query numerous statistics from their systems. Sven Trenkel has written a plugin for collectd that uses this interface and provides very detailed statistics about the internals of the storage. The changes have been merged to the master branch on September 30th.

OpenVPN plugin

An updated version of the plugin has been posted to the mailing list on September 19th by Marco Chiappero. It adds support for more versions of the status file and fixes the compressions metrics. The code has been merged to the master branch on December 6th.

RouterOS plugin

Plugin to query devices running RouterOS, a Linux-based operating system by MikroTik. The code has been merged to the master branch on December 6th.

Python plugin

Plugin which embeds a Python interpreter into collectd and provides the API in form of an object oriented Python API. Has been written by Sven Trenkel and currently lives in the st/python branch. The code has been merged to the master branch on December 8th.

OpenVZ plugin

Perl-based plugin which queries information from OpenVZ containers. The plugin has been written by Jonathan Kolb and contributed on December 2nd, 2009. It was merged to the master branch on December 8th.

Monitorus plugin

Perl-based plugin which queries information from mon.itor.us, a commercially, web-based monitoring service. The plugin has been written by Jeffrey B. Green and contributed on May 29th, 2009. It was merged to the master branch on December 8th.


Planned features

The following features are actively being worked upon. They are in various stages of completion and may or may not make it into the next release. They should have a contact (name) associated with them, so people who are interested can contact the person working on a feature. Please don't add email addresses of other people without their permission. If you want to contact a person below, please look for the email address using the mailing list archives.

perfmon output

Dave McLellan is looking into a text output plugin which creates perfmon compatible output (last contact: April 15th, 2009). See also: #output_text_plugin

Library for binary network protocol

Write a library for the binary network protocol, so that external applications have an easier job interfacing with collectd. The new authentication and encryption feature (added in version 4.7) makes this even more desirable. Octo is working on it.

FreeSWITCH plugin

See also: http://github.com/ldr/collectd-freeswitch/tree/master

Plugin which connects to FreeSWITCH, a free IP-telephony software, issues commands periodically and parses the returned output. The plugin was originally written by Leon de Rooij and is currently available from the ldr/freeswitch branch.

Match and target for meta data

It'd be nice to match values by the meta data attached to it and to attach or re-set meta data for values. At least something simple (see the MARK match and target in ip_tables) would be nice.

Event infrastructure

Add an EVENT command to the UnixSock plugin. This command can be used to count events, such as page loads and the like. The goal is to make it possible for applications to implement statistics collection with the minimum of overhead. powdahound is looking into it.

NetCmd plugin

The UnixSock plugin is limited to UNIX domain sockets. It'd be great if it was possible to access this infrastructure from remote hosts, for example for receiving values. Some initial code lives in the ff/netcmd branch but isn't ready yet. The idea is basically to take the UnixSock plugin and make it possible to use network sockets, too. Several people have expressed interest in picking that up, but so far no progress has been made. It's safest to keep development cycles short and provide many small patches as soon as possible.

Erlang plugin

octo is working on an Erlang plugin. The plugin implements a C-node which can communicate with Erlang processes using message-passing. The code is available in the ff/erlang branch.


Wishlist / Ideas

The following is a list of ideas we had but so far nobody has stepped up to implement them. Feel free to add your own “cool stuff” :)

RRDtool plugin: Type-specific configuration

This would allow to keep interesting data longer and less interesting data only for a short time. Also seasonal data could be added. It's not reasonable to add seasonal data to all RRD files, because it operates on unconsolidated primary datapoints (thus taking up a lot of disk space) and you can't specify one seasonal period that fits all kinds of data. A discussion of this feature can be found in the mailinglist's archive.

Maybe an option that can be passed to write functions by the Chains mechanism would be a good idea for implementing this.

Distributed setups

Make it possible to have several "servers" with shared storage. When one server dies another one takes its place, so that you don't have gaps in your statistics. This is probably best implemented as a match that matches only those values the host is responsible for. Probably best to implement real simple first and add automatic fail-over as a second step.

A solution for non-shared storage is probably even harder to implement and likely not worth the effort.

This can be done with DRBD together with Linux HA. A lot of solutions based on this thechnologies works very reliable in production environments.

Embed more scripting languages

Ruby and Lua come to mind.

Parrot is now at version 1.0 and provides a stable API. Thread- and reentrant-safety is not quite there yet, but it may be worth keeping on eye on.

Store to RDBMS

Being able to store values in an RDBMS would be nice. Bob Cotton has put together some SQL for PostgreSQL and a Perl based plugin to store values into it. This could serve as a starting point as a C based plugin with the same SQL backend.

See also: http://github.com/bcotton/collectd_dbstore/tree/master

Query wprobe

wprobe is a interface to query/manage wireless links, written by the guys over at OpenWrt.

See also: https://dev.openwrt.org/browser/trunk/package/wprobe

output_text plugin

Sebastian has suggested a output_text plugin that can write values to arbitrarily formatted (text-)files. See also: #perfmon_output

Apache plugin: Per virtualhost stats

mod_watch gives access to stats like:

domain.com 8190 539056 20965428 4813 4813 0 14.520 0 4286618408
domain2.com 8190 539056 20965428 4813 4813 0 14.520 0 4286618408

Why not to use it?

Couldn't find a hopepage for this project. Where does it live? Is it still alive? -- octo 21:16, 22 September 2009 (UTC)

HAproxy plugin

HAproxy is a fast and featureful HTTP and TCP proxy. It has a rich status page, with lot of counters for each frontend and backend : http://demo.1wt.eu/ for example.

This plugin would allow collecting all these metrics, per instance. It can parse the CSV version of the page. The page can be protected using HTTP authentication. --Renchap 20:59, 8 December 2009 (UTC)