# ExchangeType "fanout"
# RoutingKey "collectd"
# Persistent false
+ # ConnectionRetryDelay 0
# Format "command"
# StoreRates false
# GraphitePrefix "collectd."
# QueueDurable false
# QueueAutoDelete true
# RoutingKey "collectd.#"
+ # ConnectionRetryDelay 0
</Subscribe>
</Plugin>
default), the I<transient> delivery mode will be used, i.e. messages may be
lost due to high load, overflowing queues or similar issues.
+=item B<ConnectionRetryDelay> I<Delay>
+
+When the connection to the AMQP broker is lost, defines the time in seconds to
+wait before attempting to reconnect. Defaults to 0, which implies collectd will
+attempt to reconnect at each read interval (in Subscribe mode) or each time
+values are ready for submission (in Publish mode).
+
=item B<Format> B<Command>|B<JSON>|B<Graphite> (Publish only)
Selects the format in which messages are sent to the broker. If set to
=back
+=head2 Plugin C<ceph>
+
+The ceph plugin collects values from JSON data to be parsed by B<libyajl>
+(L<https://lloyd.github.io/yajl/>) retrieved from ceph daemon admin sockets.
+
+A separate B<Daemon> block must be configured for each ceph daemon to be
+monitored. The following example will read daemon statistics from four
+separate ceph daemons running on the same device (two OSDs, one MON, one MDS) :
+
+ <Plugin ceph>
+ LongRunAvgLatency false
+ ConvertSpecialMetricTypes true
+ <Daemon "osd.0">
+ SocketPath "/var/run/ceph/ceph-osd.0.asok"
+ </Daemon>
+ <Daemon "osd.1">
+ SocketPath "/var/run/ceph/ceph-osd.1.asok"
+ </Daemon>
+ <Daemon "mon.a">
+ SocketPath "/var/run/ceph/ceph-mon.ceph1.asok"
+ </Daemon>
+ <Daemon "mds.a">
+ SocketPath "/var/run/ceph/ceph-mds.ceph1.asok"
+ </Daemon>
+ </Plugin>
+
+The ceph plugin accepts the following configuration options:
+
+=over 4
+
+=item B<LongRunAvgLatency> B<true>|B<false>
+
+If enabled, latency values(sum,count pairs) are calculated as the long run
+average - average since the ceph daemon was started = (sum / count).
+When disabled, latency values are calculated as the average since the last
+collection = (sum_now - sum_last) / (count_now - count_last).
+
+Default: Disabled
+
+=item B<ConvertSpecialMetricTypes> B<true>|B<false>
+
+If enabled, special metrics (metrics that differ in type from similar counters)
+are converted to the type of those similar counters. This currently only
+applies to filestore.journal_wr_bytes which is a counter for OSD daemons. The
+ceph schema reports this metric type as a sum,count pair while similar counters
+are treated as derive types. When converted, the sum is used as the counter
+value and is treated as a derive type.
+When disabled, all metrics are treated as the types received from the ceph schema.
+
+Default: Enabled
+
+=back
+
+Each B<Daemon> block must have a string argument for the plugin instance name.
+A B<SocketPath> is also required for each B<Daemon> block:
+
+=over 4
+
+=item B<Daemon> I<DaemonName>
+
+Name to be used as the instance name for this daemon.
+
+=item B<SocketPath> I<SocketPath>
+
+Specifies the path to the UNIX admin socket of the ceph daemon.
+
+=back
+
=head2 Plugin C<cgroups>
This plugin collects the CPU user/system time for each I<cgroup> by reading the
=head2 Plugin C<modbus>
-The B<modbus plugin> connects to a Modbus "slave" via Modbus/TCP and reads
-register values. It supports reading single registers (unsigned 16E<nbsp>bit
+The B<modbus plugin> connects to a Modbus "slave" via Modbus/TCP or Modbus/RTU and
+reads register values. It supports reading single registers (unsigned 16E<nbsp>bit
values), large integer values (unsigned 32E<nbsp>bit values) and floating point
values (two registers interpreted as IEEE floats in big endian notation).
<Data "voltage-input-1">
RegisterBase 0
RegisterType float
+ RegisterCmd ReadHolding
Type voltage
Instance "input-1"
</Data>
<Data "voltage-input-2">
RegisterBase 2
RegisterType float
+ RegisterCmd ReadHolding
Type voltage
Instance "input-2"
</Data>
+ <Data "supply-temperature-1">
+ RegisterBase 0
+ RegisterType Int16
+ RegisterCmd ReadHolding
+ Type temperature
+ Instance "temp-1"
+ </Data>
+
<Host "modbus.example.com">
Address "192.168.0.42"
Port "502"
</Slave>
</Host>
+ <Host "localhost">
+ Device "/dev/ttyUSB0"
+ Baudrate 38400
+ Interval 20
+
+ <Slave 1>
+ Instance "temperature"
+ Collect "supply-temperature-1"
+ </Slave>
+ </Host>
+
=over 4
=item E<lt>B<Data> I<Name>E<gt> blocks
B<Uint32> or B<Float>, two 16E<nbsp>bit registers will be read and the data is
combined into one value. Defaults to B<Uint16>.
+=item B<RegisterCmd> B<ReadHolding>|B<ReadInput>
+
+Specifies register type to be collected from device. Works only with libmodbus
+2.9.2 or higher. Defaults to B<ReadHolding>.
+
=item B<Type> I<Type>
Specifies the "type" (data set) to use when dispatching the value to
=item B<Address> I<Hostname>
-Specifies the node name (the actual network address) used to connect to the
-host. This may be an IP address or a hostname. Please note that the used
-I<libmodbus> library only supports IPv4 at the moment.
+For Modbus/TCP, specifies the node name (the actual network address) used to
+connect to the host. This may be an IP address or a hostname. Please note that
+the used I<libmodbus> library only supports IPv4 at the moment.
=item B<Port> I<Service>
-Specifies the port used to connect to the host. The port can either be given as
-a number or as a service name. Please note that the I<Service> argument must be
-a string, even if ports are given in their numerical form. Defaults to "502".
+for Modbus/TCP, specifies the port used to connect to the host. The port can
+either be given as a number or as a service name. Please note that the
+I<Service> argument must be a string, even if ports are given in their numerical
+form. Defaults to "502".
+
+=item B<Device> I<Devicenode>
+
+For Modbus/RTU, specifies the path to the serial device being used.
+
+=item B<Baudrate> I<Baudrate>
+
+For Modbus/RTU, specifies the baud rate of the serial device.
+Note, connections currently support only 8/N/1.
=item B<Interval> I<Interval>
=item E<lt>B<Slave> I<ID>E<gt>
-Over each TCP connection, multiple Modbus devices may be reached. The slave ID
+Over each connection, multiple Modbus devices may be reached. The slave ID
is used to specify which device should be addressed. For each device you want
to query, one B<Slave> block must be given.
Enable the collection of master / slave statistics in a replication setup. In
order to be able to get access to these statistics, the user needs special
-privileges. See the B<User> documentation above.
+privileges. See the B<User> documentation above. Defaults to B<false>.
=item B<SlaveNotifications> I<true|false>
If enabled, the plugin sends a notification if the replication slave I/O and /
-or SQL threads are not running.
+or SQL threads are not running. Defaults to B<false>.
=item B<ConnectTimeout> I<Seconds>
Specify the password to be used when connecting to the server.
+=item B<ExpireDelay> I<delay>
+
+Skip expired values in query output.
+
=item B<SSLMode> I<disable>|I<allow>|I<prefer>|I<require>
Specify whether to use an SSL connection when contacting the server. The
Host "localhost"
Port "6379"
Timeout 2000
+ <Query "LLEN myqueue">
+ Type "queue_length"
+ Instance "myqueue"
+ <Query>
</Node>
</Plugin>
in mind that the sum of all B<Timeout> values for all B<Nodes> should be lower
than B<Interval> defined globally.
+=item B<Query> I<Querystring>
+
+The B<Query> block identifies a query to execute against the redis server.
+There may be an arbitrary number of queries to execute.
+
+=item B<Type> I<Collectd type>
+
+Within a query definition, a valid collectd type to use as when submitting
+the result of the query. When not supplied, will default to B<gauge>.
+
+=item B<Instance> I<Type instance>
+
+Within a query definition, an optional type instance to use when submitting
+the result of the query. When not supplied will default to the escaped
+command, up to 64 chars.
+
=back
=head2 Plugin C<rrdcached>
I<Factor> must be in the range C<[0.0-1.0)>, i.e. between zero (inclusive) and
one (exclusive).
+=item B<CollectStatistics> B<false>|B<true>
+
+When set to B<true>, various statistics about the I<rrdcached> daemon will be
+collected, with "rrdcached" as the I<plugin name>. Defaults to B<false>.
+
+Statistics are read via I<rrdcached>s socket using the STATS command.
+See L<rrdcached(1)> for details.
+
=back
=head2 Plugin C<rrdtool>
computed latency. This is useful for cutting off the long tail latency, as it's
often done in I<Service Level Agreements> (SLAs).
-If not specified, no percentile is calculated / dispatched.
+Different percentiles can be calculated by setting this option several times.
+If none are specified, no percentiles are calculated / dispatched.
+
+=item B<TimerLower> B<false>|B<true>
+
+=item B<TimerUpper> B<false>|B<true>
+
+=item B<TimerSum> B<false>|B<true>
+
+=item B<TimerCount> B<false>|B<true>
+
+Calculate and dispatch various values out of I<Timer> metrics received during
+an interval. If set to B<False>, the default, these values aren't calculated /
+dispatched.
=back
The matched number is a counter. Simply I<sets> the internal counter to this
value. Variants exist for C<COUNTER>, C<DERIVE>, and C<ABSOLUTE> data sources.
+=item B<GaugeAdd>
+
=item B<CounterAdd>
=item B<DeriveAdd>
matched number may be negative, which will effectively subtract from the
internal counter.
+=item B<GaugeInc>
+
=item B<CounterInc>
=item B<DeriveInc>
=head2 Plugin C<varnish>
The I<varnish plugin> collects information about Varnish, an HTTP accelerator.
+It collects a subset of the values displayed by L<varnishstat(1)>, and
+organizes them in categories which can be enabled or disabled. Currently only
+metrics shown in L<varnishstat(1)>'s I<MAIN> section are collected. The exact
+meaning of each metric can be found in L<varnish-counters(7)>.
Synopsis:
<Plugin "varnish">
<Instance "example">
+ CollectBackend true
+ CollectBan false
CollectCache true
CollectConnections true
- CollectBackend true
- CollectSHM true
+ CollectDirectorDNS false
CollectESI false
CollectFetch false
CollectHCB false
+ CollectObjects false
+ CollectPurge false
+ CollectSession false
+ CollectSHM true
CollectSMA false
CollectSMS false
CollectSM false
+ CollectStruct false
CollectTotals false
+ CollectUptime false
+ CollectVCL false
+ CollectVSM false
CollectWorkers false
</Instance>
</Plugin>
=over 4
-=item B<CollectCache> B<true>|B<false>
-
-Cache hits and misses. True by default.
-
-=item B<CollectConnections> B<true>|B<false>
-
-Number of client connections received, accepted and dropped. True by default.
-
=item B<CollectBackend> B<true>|B<false>
Back-end connection statistics, such as successful, reused,
and closed connections. True by default.
-=item B<CollectSHM> B<true>|B<false>
-
-Statistics about the shared memory log, a memory region to store
-log messages which is flushed to disk when full. True by default.
-
=item B<CollectBan> B<true>|B<false>
Statistics about ban operations, such as number of bans added, retired, and
number of objects tested against ban operations. Only available with Varnish
-3.x. False by default.
+3.x and above. False by default.
+
+=item B<CollectCache> B<true>|B<false>
+
+Cache hits and misses. True by default.
+
+=item B<CollectConnections> B<true>|B<false>
+
+Number of client connections received, accepted and dropped. True by default.
=item B<CollectDirectorDNS> B<true>|B<false>
=item B<CollectSession> B<true>|B<false>
Client session statistics. Number of past and current sessions, session herd and
-linger counters, etc. False by default.
+linger counters, etc. False by default. Note that if using Varnish 4.x, some
+metrics found in the Connections and Threads sections with previous versions of
+Varnish have been moved here.
+
+=item B<CollectSHM> B<true>|B<false>
+
+Statistics about the shared memory log, a memory region to store
+log messages which is flushed to disk when full. True by default.
=item B<CollectSMA> B<true>|B<false>
=item B<CollectUptime> B<true>|B<false>
-Varnish uptime. False by default.
+Varnish uptime. Only available with Varnish 3.x and above. False by default.
=item B<CollectVCL> B<true>|B<false>
Number of total (available + discarded) VCL (config files). False by default.
+=item B<CollectVSM> B<true>|B<false>
+
+Collect statistics about Varnish's shared memory usage (used by the logging and
+statistics subsystems). Only available with Varnish 4.x. False by default.
+
=item B<CollectWorkers> B<true>|B<false>
Collect statistics about worker threads. False by default.
This output plugin submits values to an HTTP server using POST requests and
encoding metrics with JSON or using the C<PUTVAL> command described in
-L<collectd-unixsock(5)>. Each destination you want to post data to needs to
-have one B<URL> block, within which the destination can be configured further,
-for example by specifying authentication data.
+L<collectd-unixsock(5)>.
Synopsis:
<Plugin "write_http">
- <URL "http://example.com/post-collectd">
+ <Node "example">
+ URL "http://example.com/post-collectd"
User "collectd"
Password "weCh3ik0"
Format JSON
- </URL>
+ </Node>
</Plugin>
-B<URL> blocks need one string argument which is used as the URL to which data
-is posted. The following options are understood within B<URL> blocks.
+The plugin can send values to multiple HTTP servers by specifying one
+E<lt>B<Node>E<nbsp>I<Name>E<gt> block for each server. Within each B<Node>
+block, the following options are available:
=over 4
+=item B<URL> I<URL>
+
+URL to which the values are submitted to. Mandatory.
+
=item B<User> I<Username>
Optional user name needed for authentication.
=back
+=head2 Plugin C<write_redis>
+
+The I<write_redis plugin> submits values to I<Redis>, a data structure server.
+
+Synopsis:
+
+ <Plugin "write_redis">
+ <Node "example">
+ Host "localhost"
+ Port "6379"
+ Timeout 1000
+ </Node>
+ </Plugin>
+
+Values are submitted to I<Sorted Sets>, using the metric name as the key, and
+the timestamp as the score. Retrieving a date range can then be done using the
+C<ZRANGEBYSCORE> I<Redis> command. Additionnally, all the identifiers of these
+I<Sorted Sets> are kept in a I<Set> called C<collectd/values> and can be
+retrieved using the C<SMEMBERS> I<Redis> command. See
+L<http://redis.io/commands#sorted_set> and L<http://redis.io/commands#set> for
+details.
+
+The information shown in the synopsis above is the I<default configuration>
+which is used by the plugin if no configuration is present.
+
+The plugin can send values to multiple instances of I<Redis> by specifying
+one B<Node> block for each instance. Within the B<Node> blocks, the following
+options are available:
+
+=over 4
+
+=item B<Node> I<Nodename>
+
+The B<Node> block identifies a new I<Redis> node, that is a new I<Redis>
+instance running in an specified host and port. The name for node is a
+canonical identifier which is used as I<plugin instance>. It is limited to
+64E<nbsp>characters in length.
+
+=item B<Host> I<Hostname>
+
+The B<Host> option is the hostname or IP-address where the I<Redis> instance is
+running on.
+
+=item B<Port> I<Port>
+
+The B<Port> option is the TCP port on which the Redis instance accepts
+connections. Either a service name of a port number may be given. Please note
+that numerical port numbers must be given as a string, too.
+
+=item B<Timeout> I<Timeout in miliseconds>
+
+The B<Timeout> option sets the socket connection timeout, in milliseconds.
+
+=back
+
=head2 Plugin C<write_riemann>
The I<write_riemann plugin> will send values to I<Riemann>, a powerful stream
=item B<Protocol> B<UDP>|B<TCP>
Specify the protocol to use when communicating with I<Riemann>. Defaults to
-B<UDP>.
+B<TCP>.
=item B<Batch> B<true>|B<false>
Notifications are not batched and sent as soon as possible.
-Defaults to false
+When enabled, it can occur that events get processed by the Riemann server
+close to or after their expiration time. Tune the B<TTLFactor> and
+B<BatchMaxSize> settings according to the amount of values collected, if this
+is an issue.
+
+Defaults to true
=item B<BatchMaxSize> I<size>
=back
+=head2 Plugin C<zookeeper>
+
+The I<zookeeper plugin> will collect statistics from a I<Zookeeper> server
+using the mntr command. It requires Zookeeper 3.4.0+ and access to the
+client port.
+
+B<Synopsis:>
+
+ <Plugin "zookeeper">
+ Host "127.0.0.1"
+ Port "2181"
+ </Plugin>
+
+=over 4
+
+=item B<Host> I<Address>
+
+Hostname or address to connect to. Defaults to C<localhost>.
+
+=item B<Port> I<Service>
+
+Service name or port number to connect to. Defaults to C<2181>.
+
+=back
+
=head1 THRESHOLD CONFIGURATION
Starting with version C<4.3.0> collectd has support for B<monitoring>. By that