=back
-=head2 Plugin C<couchdb>
-
-The couchdb plugin uses B<libcurl> (L<http://curl.haxx.se/>) and B<libyajl>
-(L<http://www.lloydforge.org/projects/yajl/>) to collect values from CouchDB
-documents (stored JSON notation).
-
-The following example will collect several values from the built-in `_stats'
-runtime statistics module (L<http://wiki.apache.org/couchdb/Runtime_Statistics>).
-
- <Plugin couchdb>
- <URL "http://localhost:5984/_stats">
- Instance "httpd"
- <Key "httpd/requests/count">
- Type "http_requests"
- </Key>
-
- <Key "httpd_request_methods/*/count">
- Type "http_request_methods"
- </Key>
-
- <Key "httpd_status_codes/*/count">
- Type "http_response_codes"
- </Key>
- </URL>
- </Plugin>
-
-The following example will collect the status values from each database:
-
- <URL "http://localhost:5984/_all_dbs">
- Instance "dbs"
- <Key "*/doc_count">
- Type "gauge"
- </Key>
- <Key "*/doc_del_count">
- Type "counter"
- </Key>
- <Key "*/disk_size">
- Type "bytes"
- </Key>
- </URL>
-
-In the B<Plugin> block, there may be one or more B<URL> blocks, each defining
-a URL to be fetched via HTTP (libcurl) and one or more B<Key> blocks.
-The B<Key> string argument must be in a path format, of which is used to collect
-a value from a JSON map object. If a B<Key> path element is that of a I<*> wildcard,
-the values for all keys will be collectd.
-
-The following options are valid within B<URL> blocks:
-
-=over 4
-
-=item B<Instance> I<Instance>
-
-Sets the plugin instance to I<Instance>.
-
-=item B<User> I<Name>
-
-Username to use if authorization is required to read the page.
-
-=item B<Password> I<Password>
-
-Password to use if authorization is required to read the page.
-
-=item B<VerifyPeer> B<true>|B<false>
-
-Enable or disable peer SSL certificate verification. See
-L<http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by default.
-
-=item B<VerifyHost> B<true>|B<false>
-
-Enable or disable peer host name verification. If enabled, the plugin checks if
-the C<Common Name> or a C<Subject Alternate Name> field of the SSL certificate
-matches the host name provided by the B<URL> option. If this identity check
-fails, the connection is aborted. Obviously, only works when connecting to a
-SSL enabled server. Enabled by default.
-
-=item B<CACert> I<file>
-
-File that holds one or more SSL certificates. If you want to use HTTPS you will
-possibly need this option. What CA certificates come bundled with C<libcurl>
-and are checked by default depends on the distribution you use.
-
-=back
-
-The following options are valid within B<Key> blocks:
-
-=over 4
-
-=item B<Type> I<Type>
-
-Sets the type used to dispatch the values to the daemon. Detailed information
-about types and their configuration can be found in L<types.db(5)>. This
-option is mandatory.
-
-=item B<Instance> I<Instance>
-
-Type-instance to use. Defaults to the current map key or current string array element value.
-
-=back
-
=head2 Plugin C<cpufreq>
This plugin doesn't have any options. It reads
possibly need this option. What CA certificates come bundled with C<libcurl>
and are checked by default depends on the distribution you use.
+=item B<MeasureResponseTime> B<true>|B<false>
+
+Measure response time for the request. Disabled by default.
+
=item B<E<lt>MatchE<gt>>
One or more B<Match> blocks that define how to match information in the data
=back
+=head2 Plugin C<curl_json>
+
+The B<curl_json plugin> uses B<libcurl> (L<http://curl.haxx.se/>) and
+B<libyajl> (L<http://www.lloydforge.org/projects/yajl/>) to retrieve JSON data
+via cURL. This can be used to collect values from CouchDB documents (which are
+stored JSON notation), for example.
+
+The following example will collect several values from the built-in `_stats'
+runtime statistics module of CouchDB
+(L<http://wiki.apache.org/couchdb/Runtime_Statistics>).
+
+ <Plugin curl_json>
+ <URL "http://localhost:5984/_stats">
+ Instance "httpd"
+ <Key "httpd/requests/count">
+ Type "http_requests"
+ </Key>
+
+ <Key "httpd_request_methods/*/count">
+ Type "http_request_methods"
+ </Key>
+
+ <Key "httpd_status_codes/*/count">
+ Type "http_response_codes"
+ </Key>
+ </URL>
+ </Plugin>
+
+Another CouchDB example:
+The following example will collect the status values from each database:
+
+ <URL "http://localhost:5984/_all_dbs">
+ Instance "dbs"
+ <Key "*/doc_count">
+ Type "gauge"
+ </Key>
+ <Key "*/doc_del_count">
+ Type "counter"
+ </Key>
+ <Key "*/disk_size">
+ Type "bytes"
+ </Key>
+ </URL>
+
+In the B<Plugin> block, there may be one or more B<URL> blocks, each defining
+a URL to be fetched via HTTP (using libcurl) and one or more B<Key> blocks.
+The B<Key> string argument must be in a path format, of which is used to collect
+a value from a JSON map object. If a B<Key> path element is that of a I<*> wildcard,
+the values for all keys will be collectd.
+
+The following options are valid within B<URL> blocks:
+
+=over 4
+
+=item B<Instance> I<Instance>
+
+Sets the plugin instance to I<Instance>.
+
+=item B<User> I<Name>
+
+Username to use if authorization is required to read the page.
+
+=item B<Password> I<Password>
+
+Password to use if authorization is required to read the page.
+
+=item B<VerifyPeer> B<true>|B<false>
+
+Enable or disable peer SSL certificate verification. See
+L<http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by default.
+
+=item B<VerifyHost> B<true>|B<false>
+
+Enable or disable peer host name verification. If enabled, the plugin checks if
+the C<Common Name> or a C<Subject Alternate Name> field of the SSL certificate
+matches the host name provided by the B<URL> option. If this identity check
+fails, the connection is aborted. Obviously, only works when connecting to a
+SSL enabled server. Enabled by default.
+
+=item B<CACert> I<file>
+
+File that holds one or more SSL certificates. If you want to use HTTPS you will
+possibly need this option. What CA certificates come bundled with C<libcurl>
+and are checked by default depends on the distribution you use.
+
+=back
+
+The following options are valid within B<Key> blocks:
+
+=over 4
+
+=item B<Type> I<Type>
+
+Sets the type used to dispatch the values to the daemon. Detailed information
+about types and their configuration can be found in L<types.db(5)>. This
+option is mandatory.
+
+=item B<Instance> I<Instance>
+
+Type-instance to use. Defaults to the current map key or current string array element value.
+
+=back
+
=head2 Plugin C<dbi>
This plugin uses the B<dbi> library (L<http://libdbi.sourceforge.net/>) to
partitions are collected if a selection is made. If no selection is configured
at all, B<all> partitions are selected.
+=item B<ReportByDevice> I<true>|I<false>
+
+Report using the device name rather than the mountpoint. i.e. with this I<false>,
+(the default), it will report a disk as "root", but with it I<true>, it will be
+"sda1" (or whichever).
+
=back
=head2 Plugin C<disk>
=back
+=head2 Plugin C<GenericJMX>
+
+The I<GenericJMX plugin> is written in I<Java> and therefore documented in
+L<collectd-java(5)>.
+
=head2 Plugin C<gmond>
The I<gmond> plugin received the multicast traffic sent by B<gmond>, the
=back
+ Plugin "netapp"
+ The netapp plugin can collect various performance and capacity
+ informations from a netapp filer using the NetApp API.
+
+ To collect these data collectd will log in to the netapp via http(s)
+ and basic http auth.
+
+ !Do not use a regular user for this! Create a special collectd user
+ with just the minimum of capabilities needed. The user only needs
+ the "login-http-admin" capability as well as a few more depending on
+ which data will be collected.
+
+ Synopsis:
+
+ <Plugin "netapp">
+ <Host "netapp1.example.com">
+ Protocol https
+ Address 10.0.0.1
+ Port 443
+ Login "username" "password"
+ Interval 30
+ <GetSystemPerfData>
+ </GetSystemPerfData>
+ <GetWaflPerfData>
+ </GetWaflPerfData>
+ <GetDiskPerfData>
+ </GetDiskPerfData>
+ <GetVolumePerfData>
+ </GetVolumePerfData>
+ <GetVolumeData>
+ </GetVolumeData>
+ </Host>
+ </Plugin>
+
+ The netapp plugin accepts the following configuration options:
+
+ Host Name
+ A host block defines one netapp filer. It will appear in collectd
+ with the name you specify here which does not have to be its real
+ name nor its hostname.
+
+ Protocol
+ The protocol collectd will use to query this host.
+
+ Optional
+ Type: string
+ Default: https
+ Valid options: http, https
+
+ Address
+ The hostname or IP address of the host.
+
+ Optional
+ Type: string
+ Default: The hostblock's name.
+
+ Port
+ The TCP port to connect to on the host.
+
+ Optional
+ Type: integer
+ Default: 80 for protocol http, 443 for protocol https
+
+ Login
+ The username and password to use to login to the netapp.
+
+ Mandatory
+ Type: 2 strings
+
+ Interval
+ TODO
+
+
+ The following options decide what kind of data will be collected. You
+ can either use them as a block and finetune various parameters inside
+ this block, use them as a single statement to just accept all default
+ values, or obmit it to not collect any data.
+
+ The following options are valid inside all blocks:
+
+ Multiplier
+ The host specific interval between data collections is multiplied
+ by this value for collecting these data.
+
+ Optional
+ Type: integer
+ Default: 1
+
+
+ The GetSystemPerfData Block:
+
+ This will collect various performance data about the whole system.
+
+ Note: To get this data the collectd user needs the
+ "api-perf-object-get-instances" capability.
+
+ GetCPULoad
+ If you set this option to true the currect CPU usage will be
+ read. This will be the average usage between all CPUs in your
+ netapp without any information about individual CPUs.
+
+ Note: These are the same values that the netapp CLI command
+ "sysstat" returns in the "CPU" field.
+
+ Optional
+ Type: boolean
+ Default: true
+
+ Result: Two data sources of type "cpu", and type instances
+ "idle" and "system".
+
+ GetInterfaces
+ If you set this option to true the currect traffic of the
+ network interfaces will be read. This will be the total traffic
+ over all interfaces of your netapp without any information
+ about individual interfaces.
+
+ Note: This is the same values that the netapp CLI command
+ "sysstat" returns in the "Net kB/s" field.
+ Or is it?
+
+ Optional
+ Type: boolean
+ Default: true
+
+ Result: One data source of type "if_octects".
+
+ GetDiskIO
+ If you set this option to true the currect IO throughput will be
+ read. This will be the total IO of your netapp without any
+ information about individual disks, volumes or aggregates.
+
+ Note: This is the same values that the netapp CLI command
+ "sysstat" returns in the "Disk kB/s" field.
+
+ Optional
+ Type: boolean
+ Default: true
+
+ Result: One data source of type "disk_octets".
+
+ GetDiskOps
+ If you set this option to true the currect number of http, nfs,
+ cifs, fcp, iscsi, ... operations will be read. This will be the
+ total number of operations on your netapp without any information
+ about individual volumes or aggregates.
+
+
+ Note: These are the same values that the netapp CLI command
+ "sysstat" returns in the "NFS", "CIFS", "HTTP", "FCP" and
+ "iSCSI" fields.
+
+ Optional
+ Type: boolean
+ Default: true
+
+ Result: A variable number of data sources of type
+ "disk_ops_complex". Each type of operation will result in
+ one data source with the name of the operation as type
+ instance.
+
+
+ The GetWaflPerfData block:
+
+ This will collect various performance data about the WAFL file
+ system. At the moment this just means cache performance.
+
+ Note: To get this data the collectd user needs the
+ "api-perf-object-get-instances" capability.
+
+ Note: The interface to get these values is classified as
+ "Diagnostics" by netapp. This means that it is not guaranteed
+ to be stable even between minor releases.
+
+ GetNameCache
+ Optional
+ Type: boolean
+ Default: true
+
+ Result: One data source of type "cache_ratio" and type instance
+ "name_cache_hit".
+
+ GetDirCache
+ Optional
+ Type: boolean
+ Default: true
+
+ Result: One data source of type "cache_ratio" and type instance
+ "find_dir_hit".
+
+ GetInodeCache
+ Optional
+ Type: boolean
+ Default: true
+
+ Result: One data source of type "cache_ratio" and type instance
+ "inode_cache_hit".
+
+ GetBufCache
+ Note: This is the same value that the netapp CLI command
+ "sysstat" returns in the "Cache hit" field.
+
+ Optional
+ Type: boolean
+ Default: true
+
+ Result: One data source of type "cache_ratio" and type instance
+ "buf_hash_hit".
+
+
+ The GetDiskPerfData block:
+
+ This will collect performance data about the individual disks in the
+ netapp.
+
+ Note: To get this data the collectd user needs the
+ "api-perf-object-get-instances" capability.
+
+ GetBusy
+ If you set this option to true the busy time of all disks will be
+ calculated and the value of the busiest disk in the system will
+ be written.
+
+ Note: This is the same values that the netapp CLI command
+ "sysstat" returns in the "Disk util" field. Probably.
+
+ Optional
+ Type: boolean
+ Default: true
+
+ Result: One data source of type "percent" and type instance
+ "disk_busy".
+
+
+ The GetVolumePerfData block:
+
+ This will collect various performance data about the individual
+ volumes.
+
+ All of these options take a list of volumes as parameters. In this
+ case "volume" meas just the name of the volume, without the "/vol/"
+ prefix or anything like that.
+ The special values "-" and "+" are supported. "-" means "don't
+ collect values for any volumes". "+" means "collect values for all
+ volumes, even volumes that are created after collectd was started."
+ Additionally you can prefix a volume name with a "-" sign to exclude
+ this one volume. Eg '"+" "-vol0"' collectes values for all volumes
+ except vol0.
+ The order of the parameters is important. '"-vol0" "+"' doesn't make
+ sense because the "+" overrides the earlier "-vol0".
+
+ Note: To get this data the collectd user needs the
+ "api-perf-object-get-instances" capability.
+
+ GetIO
+ The currect IO throughput will be read for every volume specified
+ here.
+
+ Optional
+ Type: list of strings
+ Default: "+"
+
+ Result: Data sources of type "disk_octets" and the name of the
+ volume as plugin_instance.
+
+ GetOps
+ The currect number of operation will be read for every volume
+ specified here.
+
+ Optional
+ Type: list of strings
+ Default: "+"
+
+ Result: Data sources of type "disk_ops" and the name of the
+ volume as plugin_instance.
+
+ GetLatency
+ The currect latency for volume access in microseconds will be
+ read for every volume specified here.
+
+ Optional
+ Type: list of strings
+ Default: "+"
+
+ Result: Data sources of type "disk_latency" and the name of the
+ volume as plugin_instance.
+
+
+ The GetVolumeData block:
+
+ This will collect capacity data about the individual volumes.
+
+ All of these options take a list of volumes as parameters, just like
+ GetVolumePerfData options.
+
+ Note: To get this data the collectd user needs the
+ "api-volume-list-info" capability.
+
+ GetDiskUtil
+ The current capacity of the volume will be collected. This will
+ result in two to four data sources, depending on the
+ configuration of the volume. All data sources are of type
+ "df_complex" with the name of the volume as plugin_instance.
+
+ There will be type_instances "used" and "free" for the number
+ of used and available bytes on the volume.
+ If the volume has some space reserved for snapshots, a
+ type_instance "snap_reserved" will be available.
+ If the volume has SIS enabled, a type_instance "sis_saved" will
+ be available. This is the number of bytes saved by the SIS
+ feature.
+
+ Note: The current NetApp API has a bug that results in this value
+ being reported as a 32 bit number. This plugin tries to
+ guess the correct number which works most of the time.
+ If you see strange values here, bug NetApp support to fix
+ this.
+
+ Optional
+ Type: list of strings
+ Default: "+"
+
+ GetSnapData
+ TODO
+
=head2 Plugin C<netlink>
The C<netlink> plugin uses a netlink socket to query the Linux kernel about
That means that multicast packets will be sent with a TTL of C<1> (one) on most
operating systems.
+=item B<MaxPacketSize> I<1024-65535>
+
+Set the maximum size for datagrams received over the network. Packets larger
+than this will be truncated.
+
=item B<Forward> I<true|false>
If set to I<true>, write packets that were received via the network plugin to
=head2 Plugin C<rrdcached>
-The C<rrdcached> plugin uses the RRDTool accelerator daemon, L<rrdcached(1)>,
+The C<rrdcached> plugin uses the RRDtool accelerator daemon, L<rrdcached(1)>,
to store values to RRD files in an efficient manner. The combination of the
C<rrdcached> B<plugin> and the C<rrdcached> B<daemon> is very similar to the
way the C<rrdtool> plugin works (see below). The added abstraction layer
You can use the settings B<StepSize>, B<HeartBeat>, B<RRARows>, and B<XFF> to
fine-tune your RRD-files. Please read L<rrdcreate(1)> if you encounter problems
-using these settings. If you don't want to dive into the depths of RRDTool, you
+using these settings. If you don't want to dive into the depths of RRDtool, you
can safely ignore these settings.
=over 4
"collection3" you'll end up with a responsive and fast system, up to date
graphs and basically a "backup" of your values every hour.
+=item B<RandomTimeout> I<Seconds>
+
+When set, the actual timeout for each value is chosen randomly between
+I<CacheTimeout>-I<RandomTimeout> and I<CacheTimeout>+I<RandomTimeout>. The
+intention is to avoid high load situations that appear when many values timeout
+at the same time. This is especially a problem shortly after the daemon starts,
+because all values were added to the internal cache at roughly the same time.
+
=back
=head2 Plugin C<sensors>
=over 4
-=item B<Host> I<hostname/ip>
+=item B<Host> I<Hostname/IP>
The hostname or ip which identifies the server.
-Default: "127.0.0.1"
+Default: B<127.0.0.1>
-=item B<Port> I<port>
+=item B<Port> I<Service/Port>
-The query port of the server. This needs to be a string.
-Default: "1978"
+The query port of the server. This needs to be a string, even if the port is
+given in its numeric form.
+Default: B<1978>
=back
collect on-wire traffic you could, for example, use the logging facilities of
iptables to feed data for the guest IPs into the iptables plugin.
+=head2 Plugin C<write_http>
+
+This output plugin submits values to an http server by POST them using the
+PUTVAL plain-text protocol. 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.
+
+Synopsis:
+
+ <Plugin "write_http">
+ <URL "http://example.com/post-collectd">
+ User "collectd"
+ Password "weCh3ik0"
+ </URL>
+ </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.
+
+=over 4
+
+=item B<User> I<Username>
+
+Optional user name needed for authentication.
+
+=item B<Password> I<Password>
+
+Optional password needed for authentication.
+
+=item B<VerifyPeer> B<true>|B<false>
+
+Enable or disable peer SSL certificate verification. See
+L<http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by default.
+
+=item B<VerifyHost> B<true|false>
+
+Enable or disable peer host name verification. If enabled, the plugin checks if
+the C<Common Name> or a C<Subject Alternate Name> field of the SSL certificate
+matches the host name provided by the B<URL> option. If this identity check
+fails, the connection is aborted. Obviously, only works when connecting to a
+SSL enabled server. Enabled by default.
+
+=item B<CACert> I<File>
+
+File that holds one or more SSL certificates. If you want to use HTTPS you will
+possibly need this option. What CA certificates come bundled with C<libcurl>
+and are checked by default depends on the distribution you use.
+
+=item B<Format> B<Command>|B<JSON>
+
+Format of the output to generate. If set to B<Command>, will create output that
+is understood by the I<Exec> and I<UnixSock> plugins. When set to B<JSON>, will
+create output in the I<JavaScript Object Notation> (JSON).
+
+Defaults to B<Command>.
+
+=back
+
=head1 THRESHOLD CONFIGURATION
Starting with version C<4.3.0> collectd has support for B<monitoring>. By that
missing value is generated once every B<Interval> seconds. If set to B<false>
only one such notification is generated until the value appears again.
+=item B<Percentage> B<true>|B<false>
+
+If set to B<true>, the minimum and maximum values given are interpreted as
+percentage value, relative to the other data sources. This is helpful for
+example for the "df" type, where you may want to issue a warning when less than
+5E<nbsp>% of the total space is available. Defaults to B<false>.
+
=back
=head1 FILTER CONFIGURATION
Satisfy "Any"
</Match>
+=item B<empty_counter>
+
+Matches all values with one or more data sources of type B<COUNTER> and where
+all counter values are zero. These counters usually I<never> increased since
+they started existing (and are therefore uninteresting), or got reset recently
+or overflowed and you had really, I<really> bad luck.
+
+Please keep in mind that ignoring such counters can result in confusing
+behavior: Counters which hardly ever increase will be zero for long periods of
+time. If the counter is reset for some reason (machine or service restarted,
+usually), the graph will be empty (NAN) for a long time. People may not
+understand why.
+
=back
=head2 Available targets