1COLLECTD.CONF(5)                   collectd                   COLLECTD.CONF(5)
2
3
4

NAME

6       collectd.conf - Configuration for the system statistics collection
7       daemon collectd
8

SYNOPSIS

10         BaseDir "/var/lib/collectd"
11         PIDFile "/run/collectd.pid"
12         Interval 10.0
13
14         LoadPlugin cpu
15         LoadPlugin load
16
17         <LoadPlugin df>
18           Interval 3600
19         </LoadPlugin>
20         <Plugin df>
21           ValuesPercentage true
22         </Plugin>
23
24         LoadPlugin ping
25         <Plugin ping>
26           Host "example.org"
27           Host "provider.net"
28         </Plugin>
29

DESCRIPTION

31       This config file controls how the system statistics collection daemon
32       collectd behaves. The most significant option is LoadPlugin, which
33       controls which plugins to load. These plugins ultimately define
34       collectd's behavior. If the AutoLoadPlugin option has been enabled, the
35       explicit LoadPlugin lines may be omitted for all plugins with a
36       configuration block, i.e. a "<Plugin ...>" block.
37
38       The syntax of this config file is similar to the config file of the
39       famous Apache webserver. Each line contains either an option (a key and
40       a list of one or more values) or a section-start or -end. Empty lines
41       and everything after a non-quoted hash-symbol ("#") are ignored. Keys
42       are unquoted strings, consisting only of alphanumeric characters and
43       the underscore ("_") character. Keys are handled case insensitive by
44       collectd itself and all plugins included with it. Values can either be
45       an unquoted string, a quoted string (enclosed in double-quotes) a
46       number or a boolean expression. Unquoted strings consist of only
47       alphanumeric characters and underscores ("_") and do not need to be
48       quoted. Quoted strings are enclosed in double quotes ("""). You can use
49       the backslash character ("\") to include double quotes as part of the
50       string. Numbers can be specified in decimal and floating point format
51       (using a dot "." as decimal separator), hexadecimal when using the "0x"
52       prefix and octal with a leading zero (0).  Boolean values are either
53       true or false.
54
55       Lines may be wrapped by using "\" as the last character before the
56       newline.  This allows long lines to be split into multiple lines.
57       Quoted strings may be wrapped as well. However, those are treated
58       special in that whitespace at the beginning of the following lines will
59       be ignored, which allows for nicely indenting the wrapped lines.
60
61       The configuration is read and processed in order, i.e. from top to
62       bottom. So the plugins are loaded in the order listed in this config
63       file. It is a good idea to load any logging plugins first in order to
64       catch messages from plugins during configuration. Also, unless
65       AutoLoadPlugin is enabled, the LoadPlugin option must occur before the
66       appropriate "<Plugin ...>" block.
67

GLOBAL OPTIONS

69       BaseDir Directory
70           Sets the base directory. This is the directory beneath which all
71           RRD-files are created. Possibly more subdirectories are created.
72           This is also the working directory for the daemon.
73
74       LoadPlugin Plugin
75           Loads the plugin Plugin. This is required to load plugins, unless
76           the AutoLoadPlugin option is enabled (see below). Without any
77           loaded plugins, collectd will be mostly useless.
78
79           Only the first LoadPlugin statement or block for a given plugin
80           name has any effect. This is useful when you want to split up the
81           configuration into smaller files and want each file to be "self
82           contained", i.e. it contains a Plugin block and the appropriate
83           LoadPlugin statement. The downside is that if you have multiple
84           conflicting LoadPlugin blocks, e.g. when they specify different
85           intervals, only one of them (the first one encountered) will take
86           effect and all others will be silently ignored.
87
88           LoadPlugin may either be a simple configuration statement or a
89           block with additional options, affecting the behavior of
90           LoadPlugin. A simple statement looks like this:
91
92            LoadPlugin "cpu"
93
94           Options inside a LoadPlugin block can override default settings and
95           influence the way plugins are loaded, e.g.:
96
97            <LoadPlugin perl>
98              Interval 60
99            </LoadPlugin>
100
101           The following options are valid inside LoadPlugin blocks:
102
103           Globals true|false
104               If enabled, collectd will export all global symbols of the
105               plugin (and of all libraries loaded as dependencies of the
106               plugin) and, thus, makes those symbols available for resolving
107               unresolved symbols in subsequently loaded plugins if that is
108               supported by your system.
109
110               This is useful (or possibly even required), e.g., when loading
111               a plugin that embeds some scripting language into the daemon
112               (e.g. the Perl and Python plugins). Scripting languages usually
113               provide means to load extensions written in C. Those extensions
114               require symbols provided by the interpreter, which is loaded as
115               a dependency of the respective collectd plugin.  See the
116               documentation of those plugins (e.g., collectd-perl(5) or
117               collectd-python(5)) for details.
118
119               By default, this is disabled. As a special exception, if the
120               plugin name is either "perl" or "python", the default is
121               changed to enabled in order to keep the average user from ever
122               having to deal with this low level linking stuff.
123
124           Interval Seconds
125               Sets a plugin-specific interval for collecting metrics. This
126               overrides the global Interval setting. If a plugin provides its
127               own support for specifying an interval, that setting will take
128               precedence.
129
130           FlushInterval Seconds
131               Specifies the interval, in seconds, to call the flush callback
132               if it's defined in this plugin. By default, this is disabled.
133
134           FlushTimeout Seconds
135               Specifies the value of the timeout argument of the flush
136               callback.
137
138       AutoLoadPlugin false|true
139           When set to false (the default), each plugin needs to be loaded
140           explicitly, using the LoadPlugin statement documented above. If a
141           <Plugin ...> block is encountered and no configuration handling
142           callback for this plugin has been registered, a warning is logged
143           and the block is ignored.
144
145           When set to true, explicit LoadPlugin statements are not required.
146           Each <Plugin ...> block acts as if it was immediately preceded by a
147           LoadPlugin statement. LoadPlugin statements are still required for
148           plugins that don't provide any configuration, e.g. the Load plugin.
149
150       CollectInternalStats false|true
151           When set to true, various statistics about the collectd daemon will
152           be collected, with "collectd" as the plugin name. Defaults to
153           false.
154
155           The following metrics are reported:
156
157           "collectd-write_queue/queue_length"
158               The number of metrics currently in the write queue. You can
159               limit the queue length with the WriteQueueLimitLow and
160               WriteQueueLimitHigh options.
161
162           "collectd-write_queue/derive-dropped"
163               The number of metrics dropped due to a queue length limitation.
164               If this value is non-zero, your system can't handle all
165               incoming metrics and protects itself against overload by
166               dropping metrics.
167
168           "collectd-cache/cache_size"
169               The number of elements in the metric cache (the cache you can
170               interact with using collectd-unixsock(5)).
171
172       Include Path [pattern]
173           If Path points to a file, includes that file. If Path points to a
174           directory, recursively includes all files within that directory and
175           its subdirectories. If the "wordexp" function is available on your
176           system, shell-like wildcards are expanded before files are
177           included. This means you can use statements like the following:
178
179             Include "/etc/collectd.d/*.conf"
180
181           Starting with version 5.3, this may also be a block in which
182           further options affecting the behavior of Include may be specified.
183           The following option is currently allowed:
184
185             <Include "/etc/collectd.d">
186               Filter "*.conf"
187             </Include>
188
189           Filter pattern
190               If the "fnmatch" function is available on your system, a shell-
191               like wildcard pattern may be specified to filter which files to
192               include. This may be used in combination with recursively
193               including a directory to easily be able to arbitrarily mix
194               configuration files and other documents (e.g. README files).
195               The given example is similar to the first example above but
196               includes all files matching "*.conf" in any subdirectory of
197               "/etc/collectd.d".
198
199           If more than one file is included by a single Include option, the
200           files will be included in lexicographical order (as defined by the
201           "strcmp" function). Thus, you can e. g. use numbered prefixes to
202           specify the order in which the files are loaded.
203
204           To prevent loops and shooting yourself in the foot in interesting
205           ways the nesting is limited to a depth of 8 levels, which should be
206           sufficient for most uses. Since symlinks are followed it is still
207           possible to crash the daemon by looping symlinks. In our opinion
208           significant stupidity should result in an appropriate amount of
209           pain.
210
211           It is no problem to have a block like "<Plugin foo>" in more than
212           one file, but you cannot include files from within blocks.
213
214       PIDFile File
215           Sets where to write the PID file to. This file is overwritten when
216           it exists and deleted when the program is stopped. Some init-
217           scripts might override this setting using the -P command-line
218           option.
219
220       PluginDir Directory
221           Path to the plugins (shared objects) of collectd.
222
223       TypesDB File [File ...]
224           Set one or more files that contain the data-set descriptions. See
225           types.db(5) for a description of the format of this file.
226
227           If this option is not specified, a default file is read. If you
228           need to define custom types in addition to the types defined in the
229           default file, you need to explicitly load both. In other words, if
230           the TypesDB option is encountered the default behavior is disabled
231           and if you need the default types you have to also explicitly load
232           them.
233
234       Interval Seconds
235           Configures the interval in which to query the read plugins.
236           Obviously smaller values lead to a higher system load produced by
237           collectd, while higher values lead to more coarse statistics.
238
239           Warning: You should set this once and then never touch it again. If
240           you do, you will have to delete all your RRD files or know some
241           serious RRDtool magic! (Assuming you're using the RRDtool or
242           RRDCacheD plugin.)
243
244       MaxReadInterval Seconds
245           A read plugin doubles the interval between queries after each
246           failed attempt to get data.
247
248           This options limits the maximum value of the interval. The default
249           value is 86400.
250
251       Timeout Iterations
252           Consider a value list "missing" when no update has been read or
253           received for Iterations iterations. By default, collectd considers
254           a value list missing when no update has been received for twice the
255           update interval. Since this setting uses iterations, the maximum
256           allowed time without update depends on the Interval information
257           contained in each value list. This is used in the Threshold
258           configuration to dispatch notifications about missing values, see
259           collectd-threshold(5) for details.
260
261       ReadThreads Num
262           Number of threads to start for reading plugins. The default value
263           is 5, but you may want to increase this if you have more than five
264           plugins that take a long time to read. Mostly those are plugins
265           that do network-IO. Setting this to a value higher than the number
266           of registered read callbacks is not recommended.
267
268       WriteThreads Num
269           Number of threads to start for dispatching value lists to write
270           plugins. The default value is 5, but you may want to increase this
271           if you have more than five plugins that may take relatively long to
272           write to.
273
274       WriteQueueLimitHigh HighNum
275       WriteQueueLimitLow LowNum
276           Metrics are read by the read threads and then put into a queue to
277           be handled by the write threads. If one of the write plugins is
278           slow (e.g. network timeouts, I/O saturation of the disk) this queue
279           will grow. In order to avoid running into memory issues in such a
280           case, you can limit the size of this queue.
281
282           By default, there is no limit and memory may grow indefinitely.
283           This is most likely not an issue for clients, i.e. instances that
284           only handle the local metrics. For servers it is recommended to set
285           this to a non-zero value, though.
286
287           You can set the limits using WriteQueueLimitHigh and
288           WriteQueueLimitLow.  Each of them takes a numerical argument which
289           is the number of metrics in the queue. If there are HighNum metrics
290           in the queue, any new metrics will be dropped. If there are less
291           than LowNum metrics in the queue, all new metrics will be enqueued.
292           If the number of metrics currently in the queue is between LowNum
293           and HighNum, the metric is dropped with a probability that is
294           proportional to the number of metrics in the queue (i.e. it
295           increases linearly until it reaches 100%.)
296
297           If WriteQueueLimitHigh is set to non-zero and WriteQueueLimitLow is
298           unset, the latter will default to half of WriteQueueLimitHigh.
299
300           If you do not want to randomly drop values when the queue size is
301           between LowNum and HighNum, set WriteQueueLimitHigh and
302           WriteQueueLimitLow to the same value.
303
304           Enabling the CollectInternalStats option is of great help to figure
305           out the values to set WriteQueueLimitHigh and WriteQueueLimitLow
306           to.
307
308       Hostname Name
309           Sets the hostname that identifies a host. If you omit this setting,
310           the hostname will be determined using the gethostname(2) system
311           call.
312
313       FQDNLookup true|false
314           If Hostname is determined automatically this setting controls
315           whether or not the daemon should try to figure out the "fully
316           qualified domain name", FQDN.  This is done using a lookup of the
317           name returned by "gethostname". This option is enabled by default.
318
319       PreCacheChain ChainName
320       PostCacheChain ChainName
321           Configure the name of the "pre-cache chain" and the "post-cache
322           chain". Please see "FILTER CONFIGURATION" below on information on
323           chains and how these setting change the daemon's behavior.
324

PLUGIN OPTIONS

326       Some plugins may register own options. These options must be enclosed
327       in a "Plugin"-Section. Which options exist depends on the plugin used.
328       Some plugins require external configuration, too. The "apache plugin",
329       for example, required "mod_status" to be configured in the webserver
330       you're going to collect data from. These plugins are listed below as
331       well, even if they don't require any configuration within collectd's
332       configuration file.
333
334       A list of all plugins and a short summary for each plugin can be found
335       in the README file shipped with the sourcecode and hopefully binary
336       packets as well.
337
338   Plugin "aggregation"
339       The Aggregation plugin makes it possible to aggregate several values
340       into one using aggregation functions such as sum, average, min and max.
341       This can be put to a wide variety of uses, e.g. average and total CPU
342       statistics for your entire fleet.
343
344       The grouping is powerful but, as with many powerful tools, may be a bit
345       difficult to wrap your head around. The grouping will therefore be
346       demonstrated using an example: The average and sum of the CPU usage
347       across all CPUs of each host is to be calculated.
348
349       To select all the affected values for our example, set "Plugin cpu" and
350       "Type cpu". The other values are left unspecified, meaning "all
351       values". The Host, Plugin, PluginInstance, Type and TypeInstance
352       options work as if they were specified in the "WHERE" clause of an
353       "SELECT" SQL statement.
354
355         Plugin "cpu"
356         Type "cpu"
357
358       Although the Host, PluginInstance (CPU number, i.e. 0, 1, 2, ...)  and
359       TypeInstance (idle, user, system, ...) fields are left unspecified in
360       the example, the intention is to have a new value for each host / type
361       instance pair. This is achieved by "grouping" the values using the
362       "GroupBy" option.  It can be specified multiple times to group by more
363       than one field.
364
365         GroupBy "Host"
366         GroupBy "TypeInstance"
367
368       We do neither specify nor group by plugin instance (the CPU number), so
369       all metrics that differ in the CPU number only will be aggregated. Each
370       aggregation needs at least one such field, otherwise no aggregation
371       would take place.
372
373       The full example configuration looks like this:
374
375        <Plugin "aggregation">
376          <Aggregation>
377            Plugin "cpu"
378            Type "cpu"
379
380            GroupBy "Host"
381            GroupBy "TypeInstance"
382
383            CalculateSum true
384            CalculateAverage true
385          </Aggregation>
386        </Plugin>
387
388       There are a couple of limitations you should be aware of:
389
390       ·   The Type cannot be left unspecified, because it is not reasonable
391           to add apples to oranges. Also, the internal lookup structure won't
392           work if you try to group by type.
393
394       ·   There must be at least one unspecified, ungrouped field. Otherwise
395           nothing will be aggregated.
396
397       As you can see in the example above, each aggregation has its own
398       Aggregation block. You can have multiple aggregation blocks and
399       aggregation blocks may match the same values, i.e. one value list can
400       update multiple aggregations. The following options are valid inside
401       Aggregation blocks:
402
403       Host Host
404       Plugin Plugin
405       PluginInstance PluginInstance
406       Type Type
407       TypeInstance TypeInstance
408           Selects the value lists to be added to this aggregation. Type must
409           be a valid data set name, see types.db(5) for details.
410
411           If the string starts with and ends with a slash ("/"), the string
412           is interpreted as a regular expression. The regex flavor used are
413           POSIX extended regular expressions as described in regex(7).
414           Example usage:
415
416            Host "/^db[0-9]\\.example\\.com$/"
417
418       GroupBy Host|Plugin|PluginInstance|TypeInstance
419           Group valued by the specified field. The GroupBy option may be
420           repeated to group by multiple fields.
421
422       SetHost Host
423       SetPlugin Plugin
424       SetPluginInstance PluginInstance
425       SetTypeInstance TypeInstance
426           Sets the appropriate part of the identifier to the provided string.
427
428           The PluginInstance should include the placeholder "%{aggregation}"
429           which will be replaced with the aggregation function, e.g.
430           "average". Not including the placeholder will result in duplication
431           warnings and/or messed up values if more than one aggregation
432           function are enabled.
433
434           The following example calculates the average usage of all "even"
435           CPUs:
436
437            <Plugin "aggregation">
438              <Aggregation>
439                Plugin "cpu"
440                PluginInstance "/[0,2,4,6,8]$/"
441                Type "cpu"
442
443                SetPlugin "cpu"
444                SetPluginInstance "even-%{aggregation}"
445
446                GroupBy "Host"
447                GroupBy "TypeInstance"
448
449                CalculateAverage true
450              </Aggregation>
451            </Plugin>
452
453           This will create the files:
454
455           ·   foo.example.com/cpu-even-average/cpu-idle
456
457           ·   foo.example.com/cpu-even-average/cpu-system
458
459           ·   foo.example.com/cpu-even-average/cpu-user
460
461           ·   ...
462
463       CalculateNum true|false
464       CalculateSum true|false
465       CalculateAverage true|false
466       CalculateMinimum true|false
467       CalculateMaximum true|false
468       CalculateStddev true|false
469           Boolean options for enabling calculation of the number of value
470           lists, their sum, average, minimum, maximum and / or standard
471           deviation. All options are disabled by default.
472
473   Plugin "amqp"
474       The AMQP plugin can be used to communicate with other instances of
475       collectd or third party applications using an AMQP message broker.
476       Values are sent to or received from the broker, which handles routing,
477       queueing and possibly filtering out messages.
478
479       Synopsis:
480
481        <Plugin "amqp">
482          # Send values to an AMQP broker
483          <Publish "some_name">
484            Host "localhost"
485            Port "5672"
486            VHost "/"
487            User "guest"
488            Password "guest"
489            Exchange "amq.fanout"
490        #   ExchangeType "fanout"
491        #   RoutingKey "collectd"
492        #   Persistent false
493        #   ConnectionRetryDelay 0
494        #   Format "command"
495        #   StoreRates false
496        #   GraphitePrefix "collectd."
497        #   GraphiteEscapeChar "_"
498        #   GraphiteSeparateInstances false
499        #   GraphiteAlwaysAppendDS false
500        #   GraphitePreserveSeparator false
501          </Publish>
502
503          # Receive values from an AMQP broker
504          <Subscribe "some_name">
505            Host "localhost"
506            Port "5672"
507            VHost "/"
508            User "guest"
509            Password "guest"
510            Exchange "amq.fanout"
511        #   ExchangeType "fanout"
512        #   Queue "queue_name"
513        #   QueueDurable false
514        #   QueueAutoDelete true
515        #   RoutingKey "collectd.#"
516        #   ConnectionRetryDelay 0
517          </Subscribe>
518        </Plugin>
519
520       The plugin's configuration consists of a number of Publish and
521       Subscribe blocks, which configure sending and receiving of values
522       respectively. The two blocks are very similar, so unless otherwise
523       noted, an option can be used in either block. The name given in the
524       blocks starting tag is only used for reporting messages, but may be
525       used to support flushing of certain Publish blocks in the future.
526
527       Host Host
528           Hostname or IP-address of the AMQP broker. Defaults to the default
529           behavior of the underlying communications library, rabbitmq-c,
530           which is "localhost".
531
532       Port Port
533           Service name or port number on which the AMQP broker accepts
534           connections. This argument must be a string, even if the numeric
535           form is used. Defaults to "5672".
536
537       VHost VHost
538           Name of the virtual host on the AMQP broker to use. Defaults to
539           "/".
540
541       User User
542       Password Password
543           Credentials used to authenticate to the AMQP broker. By default
544           "guest"/"guest" is used.
545
546       Exchange Exchange
547           In Publish blocks, this option specifies the exchange to send
548           values to.  By default, "amq.fanout" will be used.
549
550           In Subscribe blocks this option is optional. If given, a binding
551           between the given exchange and the queue is created, using the
552           routing key if configured. See the Queue and RoutingKey options
553           below.
554
555       ExchangeType Type
556           If given, the plugin will try to create the configured exchange
557           with this type after connecting. When in a Subscribe block, the
558           queue will then be bound to this exchange.
559
560       Queue Queue (Subscribe only)
561           Configures the queue name to subscribe to. If no queue name was
562           configured explicitly, a unique queue name will be created by the
563           broker.
564
565       QueueDurable true|false (Subscribe only)
566           Defines if the queue subscribed to is durable (saved to persistent
567           storage) or transient (will disappear if the AMQP broker is
568           restarted). Defaults to "false".
569
570           This option should be used in conjunction with the Persistent
571           option on the publish side.
572
573       QueueAutoDelete true|false (Subscribe only)
574           Defines if the queue subscribed to will be deleted once the last
575           consumer unsubscribes. Defaults to "true".
576
577       RoutingKey Key
578           In Publish blocks, this configures the routing key to set on all
579           outgoing messages. If not given, the routing key will be computed
580           from the identifier of the value. The host, plugin, type and the
581           two instances are concatenated together using dots as the separator
582           and all containing dots replaced with slashes. For example
583           "collectd.host/example/com.cpu.0.cpu.user". This makes it possible
584           to receive only specific values using a "topic" exchange.
585
586           In Subscribe blocks, configures the routing key used when creating
587           a binding between an exchange and the queue. The usual wildcards
588           can be used to filter messages when using a "topic" exchange. If
589           you're only interested in CPU statistics, you could use the routing
590           key "collectd.*.cpu.#" for example.
591
592       Persistent true|false (Publish only)
593           Selects the delivery method to use. If set to true, the persistent
594           mode will be used, i.e. delivery is guaranteed. If set to false
595           (the default), the transient delivery mode will be used, i.e.
596           messages may be lost due to high load, overflowing queues or
597           similar issues.
598
599       ConnectionRetryDelay Delay
600           When the connection to the AMQP broker is lost, defines the time in
601           seconds to wait before attempting to reconnect. Defaults to 0,
602           which implies collectd will attempt to reconnect at each read
603           interval (in Subscribe mode) or each time values are ready for
604           submission (in Publish mode).
605
606       Format Command|JSON|Graphite (Publish only)
607           Selects the format in which messages are sent to the broker. If set
608           to Command (the default), values are sent as "PUTVAL" commands
609           which are identical to the syntax used by the Exec and UnixSock
610           plugins. In this case, the "Content-Type" header field will be set
611           to "text/collectd".
612
613           If set to JSON, the values are encoded in the JavaScript Object
614           Notation, an easy and straight forward exchange format. The
615           "Content-Type" header field will be set to "application/json".
616
617           If set to Graphite, values are encoded in the Graphite format,
618           which is "<metric> <value> <timestamp>\n". The "Content-Type"
619           header field will be set to "text/graphite".
620
621           A subscribing client should use the "Content-Type" header field to
622           determine how to decode the values. Currently, the AMQP plugin
623           itself can only decode the Command format.
624
625       StoreRates true|false (Publish only)
626           Determines whether or not "COUNTER", "DERIVE" and "ABSOLUTE" data
627           sources are converted to a rate (i.e. a "GAUGE" value). If set to
628           false (the default), no conversion is performed. Otherwise the
629           conversion is performed using the internal value cache.
630
631           Please note that currently this option is only used if the Format
632           option has been set to JSON.
633
634       GraphitePrefix (Publish and Format=Graphite only)
635           A prefix can be added in the metric name when outputting in the
636           Graphite format.  It's added before the Host name.  Metric name
637           will be "<prefix><host><postfix><plugin><type><name>"
638
639       GraphitePostfix (Publish and Format=Graphite only)
640           A postfix can be added in the metric name when outputting in the
641           Graphite format.  It's added after the Host name.  Metric name will
642           be "<prefix><host><postfix><plugin><type><name>"
643
644       GraphiteEscapeChar (Publish and Format=Graphite only)
645           Specify a character to replace dots (.) in the host part of the
646           metric name.  In Graphite metric name, dots are used as separators
647           between different metric parts (host, plugin, type).  Default is
648           "_" (Underscore).
649
650       GraphiteSeparateInstances true|false
651           If set to true, the plugin instance and type instance will be in
652           their own path component, for example "host.cpu.0.cpu.idle". If set
653           to false (the default), the plugin and plugin instance (and
654           likewise the type and type instance) are put into one component,
655           for example "host.cpu-0.cpu-idle".
656
657       GraphiteAlwaysAppendDS true|false
658           If set to true, append the name of the Data Source (DS) to the
659           "metric" identifier. If set to false (the default), this is only
660           done when there is more than one DS.
661
662       GraphitePreserveSeparator false|true
663           If set to false (the default) the "." (dot) character is replaced
664           with GraphiteEscapeChar. Otherwise, if set to true, the "." (dot)
665           character is preserved, i.e. passed through.
666
667   Plugin "apache"
668       To configure the "apache"-plugin you first need to configure the Apache
669       webserver correctly. The Apache-plugin "mod_status" needs to be loaded
670       and working and the "ExtendedStatus" directive needs to be enabled. You
671       can use the following snipped to base your Apache config upon:
672
673         ExtendedStatus on
674         <IfModule mod_status.c>
675           <Location /mod_status>
676             SetHandler server-status
677           </Location>
678         </IfModule>
679
680       Since its "mod_status" module is very similar to Apache's, lighttpd is
681       also supported. It introduces a new field, called "BusyServers", to
682       count the number of currently connected clients. This field is also
683       supported.
684
685       The configuration of the Apache plugin consists of one or more
686       "<Instance />" blocks. Each block requires one string argument as the
687       instance name. For example:
688
689        <Plugin "apache">
690          <Instance "www1">
691            URL "http://www1.example.com/mod_status?auto"
692          </Instance>
693          <Instance "www2">
694            URL "http://www2.example.com/mod_status?auto"
695          </Instance>
696        </Plugin>
697
698       The instance name will be used as the plugin instance. To emulate the
699       old (version 4) behavior, you can use an empty string (""). In order
700       for the plugin to work correctly, each instance name must be unique.
701       This is not enforced by the plugin and it is your responsibility to
702       ensure it.
703
704       The following options are accepted within each Instance block:
705
706       URL http://host/mod_status?auto
707           Sets the URL of the "mod_status" output. This needs to be the
708           output generated by "ExtendedStatus on" and it needs to be the
709           machine readable output generated by appending the "?auto"
710           argument. This option is mandatory.
711
712       User Username
713           Optional user name needed for authentication.
714
715       Password Password
716           Optional password needed for authentication.
717
718       VerifyPeer true|false
719           Enable or disable peer SSL certificate verification. See
720           <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
721           default.
722
723       VerifyHost true|false
724           Enable or disable peer host name verification. If enabled, the
725           plugin checks if the "Common Name" or a "Subject Alternate Name"
726           field of the SSL certificate matches the host name provided by the
727           URL option. If this identity check fails, the connection is
728           aborted. Obviously, only works when connecting to a SSL enabled
729           server. Enabled by default.
730
731       CACert File
732           File that holds one or more SSL certificates. If you want to use
733           HTTPS you will possibly need this option. What CA certificates come
734           bundled with "libcurl" and are checked by default depends on the
735           distribution you use.
736
737       SSLCiphers list of ciphers
738           Specifies which ciphers to use in the connection. The list of
739           ciphers must specify valid ciphers. See
740           <http://www.openssl.org/docs/apps/ciphers.html> for details.
741
742       Timeout Milliseconds
743           The Timeout option sets the overall timeout for HTTP requests to
744           URL, in milliseconds. By default, the configured Interval is used
745           to set the timeout.
746
747   Plugin "apcups"
748       Host Hostname
749           Hostname of the host running apcupsd. Defaults to localhost. Please
750           note that IPv6 support has been disabled unless someone can confirm
751           or decline that apcupsd can handle it.
752
753       Port Port
754           TCP-Port to connect to. Defaults to 3551.
755
756       ReportSeconds true|false
757           If set to true, the time reported in the "timeleft" metric will be
758           converted to seconds. This is the recommended setting. If set to
759           false, the default for backwards compatibility, the time will be
760           reported in minutes.
761
762       PersistentConnection true|false
763           The plugin is designed to keep the connection to apcupsd open
764           between reads.  If plugin poll interval is greater than 15 seconds
765           (hardcoded socket close timeout in apcupsd NIS), then this option
766           is false by default.
767
768           You can instruct the plugin to close the connection after each read
769           by setting this option to false or force keeping the connection by
770           setting it to true.
771
772           If apcupsd appears to close the connection due to inactivity quite
773           quickly, the plugin will try to detect this problem and switch to
774           an open-read-close mode.
775
776   Plugin "aquaero"
777       This plugin collects the value of the available sensors in an Aquaero 5
778       board. Aquaero 5 is a water-cooling controller board, manufactured by
779       Aqua Computer GmbH <http://www.aquacomputer.de/>, with a USB2
780       connection for monitoring and configuration. The board can handle
781       multiple temperature sensors, fans, water pumps and water level sensors
782       and adjust the output settings such as fan voltage or power used by the
783       water pump based on the available inputs using a configurable
784       controller included in the board.  This plugin collects all the
785       available inputs as well as some of the output values chosen by this
786       controller. The plugin is based on the libaquaero5 library provided by
787       aquatools-ng.
788
789       Device DevicePath
790           Device path of the Aquaero 5's USB HID (human interface device),
791           usually in the form "/dev/usb/hiddevX". If this option is no set
792           the plugin will try to auto-detect the Aquaero 5 USB device based
793           on vendor-ID and product-ID.
794
795   Plugin "ascent"
796       This plugin collects information about an Ascent server, a free server
797       for the "World of Warcraft" game. This plugin gathers the information
798       by fetching the XML status page using "libcurl" and parses it using
799       "libxml2".
800
801       The configuration options are the same as for the "apache" plugin
802       above:
803
804       URL http://localhost/ascent/status/
805           Sets the URL of the XML status output.
806
807       User Username
808           Optional user name needed for authentication.
809
810       Password Password
811           Optional password needed for authentication.
812
813       VerifyPeer true|false
814           Enable or disable peer SSL certificate verification. See
815           <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
816           default.
817
818       VerifyHost true|false
819           Enable or disable peer host name verification. If enabled, the
820           plugin checks if the "Common Name" or a "Subject Alternate Name"
821           field of the SSL certificate matches the host name provided by the
822           URL option. If this identity check fails, the connection is
823           aborted. Obviously, only works when connecting to a SSL enabled
824           server. Enabled by default.
825
826       CACert File
827           File that holds one or more SSL certificates. If you want to use
828           HTTPS you will possibly need this option. What CA certificates come
829           bundled with "libcurl" and are checked by default depends on the
830           distribution you use.
831
832       Timeout Milliseconds
833           The Timeout option sets the overall timeout for HTTP requests to
834           URL, in milliseconds. By default, the configured Interval is used
835           to set the timeout.
836
837   Plugin "barometer"
838       This plugin reads absolute air pressure using digital barometer sensor
839       on a I2C bus. Supported sensors are:
840
841       MPL115A2 from Freescale, see
842       <http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPL115A>.
843       MPL3115 from Freescale see
844       <http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPL3115A2>.
845       BMP085 from Bosch Sensortec
846
847       The sensor type - one of the above - is detected automatically by the
848       plugin and indicated in the plugin_instance (you will see subdirectory
849       "barometer-mpl115" or "barometer-mpl3115", or "barometer-bmp085"). The
850       order of detection is BMP085 -> MPL3115 -> MPL115A2, the first one
851       found will be used (only one sensor can be used by the plugin).
852
853       The plugin provides absolute barometric pressure, air pressure reduced
854       to sea level (several possible approximations) and as an auxiliary
855       value also internal sensor temperature. It uses (expects/provides)
856       typical metric units - pressure in [hPa], temperature in [C], altitude
857       in [m].
858
859       It was developed and tested under Linux only. The only platform
860       dependency is the standard Linux i2c-dev interface (the particular bus
861       driver has to support the SM Bus command subset).
862
863       The reduction or normalization to mean sea level pressure requires
864       (depending on selected method/approximation) also altitude and
865       reference to temperature sensor(s).  When multiple temperature sensors
866       are configured the minimum of their values is always used (expecting
867       that the warmer ones are affected by e.g. direct sun light at that
868       moment).
869
870       Synopsis:
871
872         <Plugin "barometer">
873            Device            "/dev/i2c-0";
874            Oversampling      512
875            PressureOffset    0.0
876            TemperatureOffset 0.0
877            Normalization     2
878            Altitude          238.0
879            TemperatureSensor "myserver/onewire-F10FCA000800/temperature"
880         </Plugin>
881
882       Device device
883           The only mandatory configuration parameter.
884
885           Device name of the I2C bus to which the sensor is connected. Note
886           that typically you need to have loaded the i2c-dev module.  Using
887           i2c-tools you can check/list i2c buses available on your system by:
888
889             i2cdetect -l
890
891           Then you can scan for devices on given bus. E.g. to scan the whole
892           bus 0 use:
893
894             i2cdetect -y -a 0
895
896           This way you should be able to verify that the pressure sensor
897           (either type) is connected and detected on address 0x60.
898
899       Oversampling value
900           Optional parameter controlling the oversampling/accuracy. Default
901           value is 1 providing fastest and least accurate reading.
902
903           For MPL115 this is the size of the averaging window. To filter out
904           sensor noise a simple averaging using floating window of this
905           configurable size is used. The plugin will use average of the last
906           "value" measurements (value of 1 means no averaging).  Minimal size
907           is 1, maximal 1024.
908
909           For MPL3115 this is the oversampling value. The actual oversampling
910           is performed by the sensor and the higher value the higher accuracy
911           and longer conversion time (although nothing to worry about in the
912           collectd context).  Supported values are: 1, 2, 4, 8, 16, 32, 64
913           and 128. Any other value is adjusted by the plugin to the closest
914           supported one.
915
916           For BMP085 this is the oversampling value. The actual oversampling
917           is performed by the sensor and the higher value the higher accuracy
918           and longer conversion time (although nothing to worry about in the
919           collectd context).  Supported values are: 1, 2, 4, 8. Any other
920           value is adjusted by the plugin to the closest supported one.
921
922       PressureOffset offset
923           Optional parameter for MPL3115 only.
924
925           You can further calibrate the sensor by supplying pressure and/or
926           temperature offsets.  This is added to the measured/caclulated
927           value (i.e. if the measured value is too high then use negative
928           offset).  In hPa, default is 0.0.
929
930       TemperatureOffset offset
931           Optional parameter for MPL3115 only.
932
933           You can further calibrate the sensor by supplying pressure and/or
934           temperature offsets.  This is added to the measured/caclulated
935           value (i.e. if the measured value is too high then use negative
936           offset).  In C, default is 0.0.
937
938       Normalization method
939           Optional parameter, default value is 0.
940
941           Normalization method - what approximation/model is used to compute
942           the mean sea level pressure from the air absolute pressure.
943
944           Supported values of the "method" (integer between from 0 to 2) are:
945
946           0 - no conversion, absolute pressure is simply copied over. For
947           this method you do not need to configure "Altitude" or
948           "TemperatureSensor".
949           1 - international formula for conversion , See
950           <http://en.wikipedia.org/wiki/Atmospheric_pressure#Altitude_atmospheric_pressure_variation>.
951           For this method you have to configure "Altitude" but do not need
952           "TemperatureSensor" (uses fixed global temperature average
953           instead).
954           2 - formula as recommended by the Deutsche Wetterdienst (German
955           Meteorological Service). See
956           <http://de.wikipedia.org/wiki/Barometrische_H%C3%B6henformel#Theorie>
957           For this method you have to configure both  "Altitude" and
958           "TemperatureSensor".
959       Altitude altitude
960           The altitude (in meters) of the location where you meassure the
961           pressure.
962
963       TemperatureSensor reference
964           Temperature sensor(s) which should be used as a reference when
965           normalizing the pressure using "Normalization" method 2.  When
966           specified more sensors a minimum is found and used each time.  The
967           temperature reading directly from this pressure sensor/plugin is
968           typically not suitable as the pressure sensor will be probably
969           inside while we want outside temperature.  The collectd reference
970           name is something like
971           <hostname>/<plugin_name>-<plugin_instance>/<type>-<type_instance>
972           (<type_instance> is usually omitted when there is just single value
973           type). Or you can figure it out from the path of the output data
974           files.
975
976   Plugin "battery"
977       The battery plugin reports the remaining capacity, power and voltage of
978       laptop batteries.
979
980       ValuesPercentage false|true
981           When enabled, remaining capacity is reported as a percentage, e.g.
982           "42% capacity remaining". Otherwise the capacity is stored as
983           reported by the battery, most likely in "Wh". This option does not
984           work with all input methods, in particular when only "/proc/pmu" is
985           available on an old Linux system.  Defaults to false.
986
987       ReportDegraded false|true
988           Typical laptop batteries degrade over time, meaning the capacity
989           decreases with recharge cycles. The maximum charge of the previous
990           charge cycle is tracked as "last full capacity" and used to
991           determine that a battery is "fully charged".
992
993           When this option is set to false, the default, the battery plugin
994           will only report the remaining capacity. If the ValuesPercentage
995           option is enabled, the relative remaining capacity is calculated as
996           the ratio of the "remaining capacity" and the "last full capacity".
997           This is what most tools, such as the status bar of desktop
998           environments, also do.
999
1000           When set to true, the battery plugin will report three values:
1001           charged (remaining capacity), discharged (difference between "last
1002           full capacity" and "remaining capacity") and degraded (difference
1003           between "design capacity" and "last full capacity").
1004
1005       QueryStateFS false|true
1006           When set to true, the battery plugin will only read statistics
1007           related to battery performance as exposed by StateFS at /run/state.
1008           StateFS is used in Mer-based Sailfish OS, for example.
1009
1010   Plugin "bind"
1011       Starting with BIND 9.5.0, the most widely used DNS server software
1012       provides extensive statistics about queries, responses and lots of
1013       other information.  The bind plugin retrieves this information that's
1014       encoded in XML and provided via HTTP and submits the values to
1015       collectd.
1016
1017       To use this plugin, you first need to tell BIND to make this
1018       information available. This is done with the "statistics-channels"
1019       configuration option:
1020
1021        statistics-channels {
1022          inet localhost port 8053;
1023        };
1024
1025       The configuration follows the grouping that can be seen when looking at
1026       the data with an XSLT compatible viewer, such as a modern web browser.
1027       It's probably a good idea to make yourself familiar with the provided
1028       values, so you can understand what the collected statistics actually
1029       mean.
1030
1031       Synopsis:
1032
1033        <Plugin "bind">
1034          URL "http://localhost:8053/"
1035          ParseTime       false
1036          OpCodes         true
1037          QTypes          true
1038
1039          ServerStats     true
1040          ZoneMaintStats  true
1041          ResolverStats   false
1042          MemoryStats     true
1043
1044          <View "_default">
1045            QTypes        true
1046            ResolverStats true
1047            CacheRRSets   true
1048
1049            Zone "127.in-addr.arpa/IN"
1050          </View>
1051        </Plugin>
1052
1053       The bind plugin accepts the following configuration options:
1054
1055       URL URL
1056           URL from which to retrieve the XML data. If not specified,
1057           "http://localhost:8053/" will be used.
1058
1059       ParseTime true|false
1060           When set to true, the time provided by BIND will be parsed and used
1061           to dispatch the values. When set to false, the local time source is
1062           queried.
1063
1064           This setting is set to true by default for backwards compatibility;
1065           setting this to false is recommended to avoid problems with
1066           timezones and localization.
1067
1068       OpCodes true|false
1069           When enabled, statistics about the "OpCodes", for example the
1070           number of "QUERY" packets, are collected.
1071
1072           Default: Enabled.
1073
1074       QTypes true|false
1075           When enabled, the number of incoming queries by query types (for
1076           example "A", "MX", "AAAA") is collected.
1077
1078           Default: Enabled.
1079
1080       ServerStats true|false
1081           Collect global server statistics, such as requests received over
1082           IPv4 and IPv6, successful queries, and failed updates.
1083
1084           Default: Enabled.
1085
1086       ZoneMaintStats true|false
1087           Collect zone maintenance statistics, mostly information about
1088           notifications (zone updates) and zone transfers.
1089
1090           Default: Enabled.
1091
1092       ResolverStats true|false
1093           Collect resolver statistics, i. e. statistics about outgoing
1094           requests (e. g. queries over IPv4, lame servers). Since the global
1095           resolver counters apparently were removed in BIND 9.5.1 and 9.6.0,
1096           this is disabled by default. Use the ResolverStats option within a
1097           View "_default" block instead for the same functionality.
1098
1099           Default: Disabled.
1100
1101       MemoryStats
1102           Collect global memory statistics.
1103
1104           Default: Enabled.
1105
1106       Timeout Milliseconds
1107           The Timeout option sets the overall timeout for HTTP requests to
1108           URL, in milliseconds. By default, the configured Interval is used
1109           to set the timeout.
1110
1111       View Name
1112           Collect statistics about a specific "view". BIND can behave
1113           different, mostly depending on the source IP-address of the
1114           request. These different configurations are called "views". If you
1115           don't use this feature, you most likely are only interested in the
1116           "_default" view.
1117
1118           Within a <View name> block, you can specify which information you
1119           want to collect about a view. If no View block is configured, no
1120           detailed view statistics will be collected.
1121
1122           QTypes true|false
1123               If enabled, the number of outgoing queries by query type (e. g.
1124               "A", "MX") is collected.
1125
1126               Default: Enabled.
1127
1128           ResolverStats true|false
1129               Collect resolver statistics, i. e. statistics about outgoing
1130               requests (e. g. queries over IPv4, lame servers).
1131
1132               Default: Enabled.
1133
1134           CacheRRSets true|false
1135               If enabled, the number of entries ("RR sets") in the view's
1136               cache by query type is collected. Negative entries (queries
1137               which resulted in an error, for example names that do not
1138               exist) are reported with a leading exclamation mark, e. g.
1139               "!A".
1140
1141               Default: Enabled.
1142
1143           Zone Name
1144               When given, collect detailed information about the given zone
1145               in the view. The information collected if very similar to the
1146               global ServerStats information (see above).
1147
1148               You can repeat this option to collect detailed information
1149               about multiple zones.
1150
1151               By default no detailed zone information is collected.
1152
1153   Plugin "ceph"
1154       The ceph plugin collects values from JSON data to be parsed by libyajl
1155       (<https://lloyd.github.io/yajl/>) retrieved from ceph daemon admin
1156       sockets.
1157
1158       A separate Daemon block must be configured for each ceph daemon to be
1159       monitored. The following example will read daemon statistics from four
1160       separate ceph daemons running on the same device (two OSDs, one MON,
1161       one MDS) :
1162
1163         <Plugin ceph>
1164           LongRunAvgLatency false
1165           ConvertSpecialMetricTypes true
1166           <Daemon "osd.0">
1167             SocketPath "/var/run/ceph/ceph-osd.0.asok"
1168           </Daemon>
1169           <Daemon "osd.1">
1170             SocketPath "/var/run/ceph/ceph-osd.1.asok"
1171           </Daemon>
1172           <Daemon "mon.a">
1173             SocketPath "/var/run/ceph/ceph-mon.ceph1.asok"
1174           </Daemon>
1175           <Daemon "mds.a">
1176             SocketPath "/var/run/ceph/ceph-mds.ceph1.asok"
1177           </Daemon>
1178         </Plugin>
1179
1180       The ceph plugin accepts the following configuration options:
1181
1182       LongRunAvgLatency true|false
1183           If enabled, latency values(sum,count pairs) are calculated as the
1184           long run average - average since the ceph daemon was started = (sum
1185           / count).  When disabled, latency values are calculated as the
1186           average since the last collection = (sum_now - sum_last) /
1187           (count_now - count_last).
1188
1189           Default: Disabled
1190
1191       ConvertSpecialMetricTypes true|false
1192           If enabled, special metrics (metrics that differ in type from
1193           similar counters) are converted to the type of those similar
1194           counters. This currently only applies to filestore.journal_wr_bytes
1195           which is a counter for OSD daemons. The ceph schema reports this
1196           metric type as a sum,count pair while similar counters are treated
1197           as derive types. When converted, the sum is used as the counter
1198           value and is treated as a derive type.  When disabled, all metrics
1199           are treated as the types received from the ceph schema.
1200
1201           Default: Enabled
1202
1203       Each Daemon block must have a string argument for the plugin instance
1204       name.  A SocketPath is also required for each Daemon block:
1205
1206       Daemon DaemonName
1207           Name to be used as the instance name for this daemon.
1208
1209       SocketPath SocketPath
1210           Specifies the path to the UNIX admin socket of the ceph daemon.
1211
1212   Plugin "cgroups"
1213       This plugin collects the CPU user/system time for each cgroup by
1214       reading the cpuacct.stat files in the first cpuacct-mountpoint
1215       (typically /sys/fs/cgroup/cpu.cpuacct on machines using systemd).
1216
1217       CGroup Directory
1218           Select cgroup based on the name. Whether only matching cgroups are
1219           collected or if they are ignored is controlled by the
1220           IgnoreSelected option; see below.
1221
1222           See /"IGNORELISTS" for details.
1223
1224       IgnoreSelected true|false
1225           Invert the selection: If set to true, all cgroups except the ones
1226           that match any one of the criteria are collected. By default only
1227           selected cgroups are collected if a selection is made. If no
1228           selection is configured at all, all cgroups are selected.
1229
1230   Plugin "chrony"
1231       The "chrony" plugin collects ntp data from a chronyd server, such as
1232       clock skew and per-peer stratum.
1233
1234       For talking to chronyd, it mimics what the chronyc control program does
1235       on the wire.
1236
1237       Available configuration options for the "chrony" plugin:
1238
1239       Host Hostname
1240           Hostname of the host running chronyd. Defaults to localhost.
1241
1242       Port Port
1243           UDP-Port to connect to. Defaults to 323.
1244
1245       Timeout Timeout
1246           Connection timeout in seconds. Defaults to 2.
1247
1248   Plugin "conntrack"
1249       This plugin collects IP conntrack statistics.
1250
1251       OldFiles
1252           Assume the conntrack_count and conntrack_max files to be found in
1253           /proc/sys/net/ipv4/netfilter instead of /proc/sys/net/netfilter/.
1254
1255   Plugin "cpu"
1256       The CPU plugin collects CPU usage metrics. By default, CPU usage is
1257       reported as Jiffies, using the "cpu" type. Two aggregations are
1258       available:
1259
1260       ·   Sum, per-state, over all CPUs installed in the system; and
1261
1262       ·   Sum, per-CPU, over all non-idle states of a CPU, creating an
1263           "active" state.
1264
1265       The two aggregations can be combined, leading to collectd only emitting
1266       a single "active" metric for the entire system. As soon as one of these
1267       aggregations (or both) is enabled, the cpu plugin will report a
1268       percentage, rather than Jiffies. In addition, you can request
1269       individual, per-state, per-CPU metrics to be reported as percentage.
1270
1271       The following configuration options are available:
1272
1273       ReportByState true|false
1274           When set to true, the default, reports per-state metrics, e.g.
1275           "system", "user" and "idle".  When set to false, aggregates (sums)
1276           all non-idle states into one "active" metric.
1277
1278       ReportByCpu true|false
1279           When set to true, the default, reports per-CPU (per-core) metrics.
1280           When set to false, instead of reporting metrics for individual
1281           CPUs, only a global sum of CPU states is emitted.
1282
1283       ValuesPercentage false|true
1284           This option is only considered when both, ReportByCpu and
1285           ReportByState are set to true. In this case, by default, metrics
1286           will be reported as Jiffies. By setting this option to true, you
1287           can request percentage values in the un-aggregated (per-CPU, per-
1288           state) mode as well.
1289
1290       ReportNumCpu false|true
1291           When set to true, reports the number of available CPUs.  Defaults
1292           to false.
1293
1294       ReportGuestState false|true
1295           When set to true, reports the "guest" and "guest_nice" CPU states.
1296           Defaults to false.
1297
1298       SubtractGuestState false|true
1299           This option is only considered when ReportGuestState is set to
1300           true.  "guest" and "guest_nice" are included in respectively "user"
1301           and "nice".  If set to true, "guest" will be subtracted from "user"
1302           and "guest_nice" will be subtracted from "nice".  Defaults to true.
1303
1304   Plugin "cpufreq"
1305       This plugin doesn't have any options. It reads
1306       /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq (for the first
1307       CPU installed) to get the current CPU frequency. If this file does not
1308       exist make sure cpufreqd (<http://cpufreqd.sourceforge.net/>) or a
1309       similar tool is installed and an "cpu governor" (that's a kernel
1310       module) is loaded.
1311
1312   Plugin "cpusleep"
1313       This plugin doesn't have any options. It reads CLOCK_BOOTTIME and
1314       CLOCK_MONOTONIC and reports the difference between these clocks. Since
1315       BOOTTIME clock increments while device is suspended and MONOTONIC clock
1316       does not, the derivative of the difference between these clocks gives
1317       the relative amount of time the device has spent in suspend state. The
1318       recorded value is in milliseconds of sleep per seconds of wall clock.
1319
1320   Plugin "csv"
1321       DataDir Directory
1322           Set the directory to store CSV-files under. Per default CSV-files
1323           are generated beneath the daemon's working directory, i. e. the
1324           BaseDir.  The special strings stdout and stderr can be used to
1325           write to the standard output and standard error channels,
1326           respectively. This, of course, only makes much sense when collectd
1327           is running in foreground- or non-daemon-mode.
1328
1329       StoreRates true|false
1330           If set to true, convert counter values to rates. If set to false
1331           (the default) counter values are stored as is, i. e. as an
1332           increasing integer number.
1333
1334   cURL Statistics
1335       All cURL-based plugins support collection of generic, request-based
1336       statistics. These are disabled by default and can be enabled
1337       selectively for each page or URL queried from the curl, curl_json, or
1338       curl_xml plugins. See the documentation of those plugins for specific
1339       information. This section describes the available metrics that can be
1340       configured for each plugin. All options are disabled by default.
1341
1342       See <http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html> for more
1343       details.
1344
1345       TotalTime true|false
1346           Total time of the transfer, including name resolving, TCP connect,
1347           etc.
1348
1349       NamelookupTime true|false
1350           Time it took from the start until name resolving was completed.
1351
1352       ConnectTime true|false
1353           Time it took from the start until the connect to the remote host
1354           (or proxy) was completed.
1355
1356       AppconnectTime true|false
1357           Time it took from the start until the SSL/SSH connect/handshake to
1358           the remote host was completed.
1359
1360       PretransferTime true|false
1361           Time it took from the start until just before the transfer begins.
1362
1363       StarttransferTime true|false
1364           Time it took from the start until the first byte was received.
1365
1366       RedirectTime true|false
1367           Time it took for all redirection steps include name lookup,
1368           connect, pre-transfer and transfer before final transaction was
1369           started.
1370
1371       RedirectCount true|false
1372           The total number of redirections that were actually followed.
1373
1374       SizeUpload true|false
1375           The total amount of bytes that were uploaded.
1376
1377       SizeDownload true|false
1378           The total amount of bytes that were downloaded.
1379
1380       SpeedDownload true|false
1381           The average download speed that curl measured for the complete
1382           download.
1383
1384       SpeedUpload true|false
1385           The average upload speed that curl measured for the complete
1386           upload.
1387
1388       HeaderSize true|false
1389           The total size of all the headers received.
1390
1391       RequestSize true|false
1392           The total size of the issued requests.
1393
1394       ContentLengthDownload true|false
1395           The content-length of the download.
1396
1397       ContentLengthUpload true|false
1398           The specified size of the upload.
1399
1400       NumConnects true|false
1401           The number of new connections that were created to achieve the
1402           transfer.
1403
1404   Plugin "curl"
1405       The curl plugin uses the libcurl (<http://curl.haxx.se/>) to read web
1406       pages and the match infrastructure (the same code used by the tail
1407       plugin) to use regular expressions with the received data.
1408
1409       The following example will read the current value of AMD stock from
1410       Google's finance page and dispatch the value to collectd.
1411
1412         <Plugin curl>
1413           <Page "stock_quotes">
1414             Plugin "quotes"
1415             URL "http://finance.google.com/finance?q=NYSE%3AAMD"
1416             User "foo"
1417             Password "bar"
1418             Digest false
1419             VerifyPeer true
1420             VerifyHost true
1421             CACert "/path/to/ca.crt"
1422             Header "X-Custom-Header: foobar"
1423             Post "foo=bar"
1424
1425             MeasureResponseTime false
1426             MeasureResponseCode false
1427
1428             <Match>
1429               Regex "<span +class=\"pr\"[^>]*> *([0-9]*\\.[0-9]+) *</span>"
1430               DSType "GaugeAverage"
1431               # Note: `stock_value' is not a standard type.
1432               Type "stock_value"
1433               Instance "AMD"
1434             </Match>
1435           </Page>
1436         </Plugin>
1437
1438       In the Plugin block, there may be one or more Page blocks, each
1439       defining a web page and one or more "matches" to be performed on the
1440       returned data. The string argument to the Page block is used as plugin
1441       instance.
1442
1443       The following options are valid within Page blocks:
1444
1445       Plugin Plugin
1446           Use Plugin as the plugin name when submitting values.  Defaults to
1447           "curl".
1448
1449       URL URL
1450           URL of the web site to retrieve. Since a regular expression will be
1451           used to extract information from this data, non-binary data is a
1452           big plus here ;)
1453
1454       User Name
1455           Username to use if authorization is required to read the page.
1456
1457       Password Password
1458           Password to use if authorization is required to read the page.
1459
1460       Digest true|false
1461           Enable HTTP digest authentication.
1462
1463       VerifyPeer true|false
1464           Enable or disable peer SSL certificate verification. See
1465           <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
1466           default.
1467
1468       VerifyHost true|false
1469           Enable or disable peer host name verification. If enabled, the
1470           plugin checks if the "Common Name" or a "Subject Alternate Name"
1471           field of the SSL certificate matches the host name provided by the
1472           URL option. If this identity check fails, the connection is
1473           aborted. Obviously, only works when connecting to a SSL enabled
1474           server. Enabled by default.
1475
1476       CACert file
1477           File that holds one or more SSL certificates. If you want to use
1478           HTTPS you will possibly need this option. What CA certificates come
1479           bundled with "libcurl" and are checked by default depends on the
1480           distribution you use.
1481
1482       Header Header
1483           A HTTP header to add to the request. Multiple headers are added if
1484           this option is specified more than once.
1485
1486       Post Body
1487           Specifies that the HTTP operation should be a POST instead of a
1488           GET. The complete data to be posted is given as the argument.  This
1489           option will usually need to be accompanied by a Header option to
1490           set an appropriate "Content-Type" for the post body (e.g. to
1491           "application/x-www-form-urlencoded").
1492
1493       MeasureResponseTime true|false
1494           Measure response time for the request. If this setting is enabled,
1495           Match blocks (see below) are optional. Disabled by default.
1496
1497           Beware that requests will get aborted if they take too long to
1498           complete. Adjust Timeout accordingly if you expect
1499           MeasureResponseTime to report such slow requests.
1500
1501           This option is similar to enabling the TotalTime statistic but it's
1502           measured by collectd instead of cURL.
1503
1504       MeasureResponseCode true|false
1505           Measure response code for the request. If this setting is enabled,
1506           Match blocks (see below) are optional. Disabled by default.
1507
1508       <Statistics>
1509           One Statistics block can be used to specify cURL statistics to be
1510           collected for each request to the remote web site. See the section
1511           "cURL Statistics" above for details. If this setting is enabled,
1512           Match blocks (see below) are optional.
1513
1514       <Match>
1515           One or more Match blocks that define how to match information in
1516           the data returned by "libcurl". The "curl" plugin uses the same
1517           infrastructure that's used by the "tail" plugin, so please see the
1518           documentation of the "tail" plugin below on how matches are
1519           defined. If the MeasureResponseTime or MeasureResponseCode options
1520           are set to true, Match blocks are optional.
1521
1522       Timeout Milliseconds
1523           The Timeout option sets the overall timeout for HTTP requests to
1524           URL, in milliseconds. By default, the configured Interval is used
1525           to set the timeout. Prior to version 5.5.0, there was no timeout
1526           and requests could hang indefinitely. This legacy behaviour can be
1527           achieved by setting the value of Timeout to 0.
1528
1529           If Timeout is 0 or bigger than the Interval, keep in mind that each
1530           slow network connection will stall one read thread. Adjust the
1531           ReadThreads global setting accordingly to prevent this from
1532           blocking other plugins.
1533
1534   Plugin "curl_json"
1535       The curl_json plugin collects values from JSON data to be parsed by
1536       libyajl (<https://lloyd.github.io/yajl/>) retrieved via either libcurl
1537       (<http://curl.haxx.se/>) or read directly from a unix socket. The
1538       former can be used, for example, to collect values from CouchDB
1539       documents (which are stored JSON notation), and the latter to collect
1540       values from a uWSGI stats socket.
1541
1542       The following example will collect several values from the built-in
1543       "_stats" runtime statistics module of CouchDB
1544       (<http://wiki.apache.org/couchdb/Runtime_Statistics>).
1545
1546         <Plugin curl_json>
1547           <URL "http://localhost:5984/_stats">
1548             Instance "httpd"
1549             <Key "httpd/requests/count">
1550               Type "http_requests"
1551             </Key>
1552
1553             <Key "httpd_request_methods/*/count">
1554               Type "http_request_methods"
1555             </Key>
1556
1557             <Key "httpd_status_codes/*/count">
1558               Type "http_response_codes"
1559             </Key>
1560           </URL>
1561         </Plugin>
1562
1563       This example will collect data directly from a uWSGI "Stats Server"
1564       socket.
1565
1566         <Plugin curl_json>
1567           <Sock "/var/run/uwsgi.stats.sock">
1568             Instance "uwsgi"
1569             <Key "workers/*/requests">
1570               Type "http_requests"
1571             </Key>
1572
1573             <Key "workers/*/apps/*/requests">
1574               Type "http_requests"
1575             </Key>
1576           </Sock>
1577         </Plugin>
1578
1579       In the Plugin block, there may be one or more URL blocks, each defining
1580       a URL to be fetched via HTTP (using libcurl) or Sock blocks defining a
1581       unix socket to read JSON from directly.  Each of these blocks may have
1582       one or more Key blocks.
1583
1584       The Key string argument must be in a path format. Each component is
1585       used to match the key from a JSON map or the index of an JSON array. If
1586       a path component of a Key is a * wildcard, the values for all map keys
1587       or array indices will be collectd.
1588
1589       The following options are valid within URL blocks:
1590
1591       Host Name
1592           Use Name as the host name when submitting values. Defaults to the
1593           global host name setting.
1594
1595       Plugin Plugin
1596           Use Plugin as the plugin name when submitting values.  Defaults to
1597           "curl_json".
1598
1599       Instance Instance
1600           Sets the plugin instance to Instance.
1601
1602       Interval Interval
1603           Sets the interval (in seconds) in which the values will be
1604           collected from this URL. By default the global Interval setting
1605           will be used.
1606
1607       User Name
1608       Password Password
1609       Digest true|false
1610       VerifyPeer true|false
1611       VerifyHost true|false
1612       CACert file
1613       Header Header
1614       Post Body
1615       Timeout Milliseconds
1616           These options behave exactly equivalent to the appropriate options
1617           of the cURL plugin. Please see there for a detailed description.
1618
1619       <Statistics>
1620           One Statistics block can be used to specify cURL statistics to be
1621           collected for each request to the remote URL. See the section "cURL
1622           Statistics" above for details.
1623
1624       The following options are valid within Key blocks:
1625
1626       Type Type
1627           Sets the type used to dispatch the values to the daemon. Detailed
1628           information about types and their configuration can be found in
1629           types.db(5). This option is mandatory.
1630
1631       Instance Instance
1632           Type-instance to use. Defaults to the current map key or current
1633           string array element value.
1634
1635   Plugin "curl_xml"
1636       The curl_xml plugin uses libcurl (<http://curl.haxx.se/>) and libxml2
1637       (<http://xmlsoft.org/>) to retrieve XML data via cURL.
1638
1639        <Plugin "curl_xml">
1640          <URL "http://localhost/stats.xml">
1641            Host "my_host"
1642            #Plugin "curl_xml"
1643            Instance "some_instance"
1644            User "collectd"
1645            Password "thaiNg0I"
1646            VerifyPeer true
1647            VerifyHost true
1648            CACert "/path/to/ca.crt"
1649            Header "X-Custom-Header: foobar"
1650            Post "foo=bar"
1651
1652            <XPath "table[@id=\"magic_level\"]/tr">
1653              Type "magic_level"
1654              #InstancePrefix "prefix-"
1655              InstanceFrom "td[1]"
1656              #PluginInstanceFrom "td[1]"
1657              ValuesFrom "td[2]/span[@class=\"level\"]"
1658            </XPath>
1659          </URL>
1660        </Plugin>
1661
1662       In the Plugin block, there may be one or more URL blocks, each defining
1663       a URL to be fetched using libcurl. Within each URL block there are
1664       options which specify the connection parameters, for example
1665       authentication information, and one or more XPath blocks.
1666
1667       Each XPath block specifies how to get one type of information. The
1668       string argument must be a valid XPath expression which returns a list
1669       of "base elements". One value is dispatched for each "base element".
1670       The type instance and values are looked up using further XPath
1671       expressions that should be relative to the base element.
1672
1673       Within the URL block the following options are accepted:
1674
1675       Host Name
1676           Use Name as the host name when submitting values. Defaults to the
1677           global host name setting.
1678
1679       Plugin Plugin
1680           Use Plugin as the plugin name when submitting values.  Defaults to
1681           'curl_xml'.
1682
1683       Instance Instance
1684           Use Instance as the plugin instance when submitting values.  May be
1685           overridden by PluginInstanceFrom option inside XPath blocks.
1686           Defaults to an empty string (no plugin instance).
1687
1688       Namespace Prefix URL
1689           If an XPath expression references namespaces, they must be
1690           specified with this option. Prefix is the "namespace prefix" used
1691           in the XML document.  URL is the "namespace name", an URI reference
1692           uniquely identifying the namespace. The option can be repeated to
1693           register multiple namespaces.
1694
1695           Examples:
1696
1697             Namespace "s" "http://schemas.xmlsoap.org/soap/envelope/"
1698             Namespace "m" "http://www.w3.org/1998/Math/MathML"
1699
1700       User User
1701       Password Password
1702       Digest true|false
1703       VerifyPeer true|false
1704       VerifyHost true|false
1705       CACert CA Cert File
1706       Header Header
1707       Post Body
1708       Timeout Milliseconds
1709           These options behave exactly equivalent to the appropriate options
1710           of the cURL plugin. Please see there for a detailed description.
1711
1712       <Statistics>
1713           One Statistics block can be used to specify cURL statistics to be
1714           collected for each request to the remote URL. See the section "cURL
1715           Statistics" above for details.
1716
1717       <XPath XPath-expression>
1718           Within each URL block, there must be one or more XPath blocks. Each
1719           XPath block specifies how to get one type of information. The
1720           string argument must be a valid XPath expression which returns a
1721           list of "base elements". One value is dispatched for each "base
1722           element".
1723
1724           Within the XPath block the following options are accepted:
1725
1726           Type Type
1727               Specifies the Type used for submitting patches. This determines
1728               the number of values that are required / expected and whether
1729               the strings are parsed as signed or unsigned integer or as
1730               double values. See types.db(5) for details.  This option is
1731               required.
1732
1733           InstancePrefix InstancePrefix
1734               Prefix the type instance with InstancePrefix. The values are
1735               simply concatenated together without any separator.  This
1736               option is optional.
1737
1738           InstanceFrom InstanceFrom
1739               Specifies a XPath expression to use for determining the type
1740               instance. The XPath expression must return exactly one element.
1741               The element's value is then used as type instance, possibly
1742               prefixed with InstancePrefix (see above).
1743
1744           PluginInstanceFrom PluginInstanceFrom
1745               Specifies a XPath expression to use for determining the plugin
1746               instance. The XPath expression must return exactly one element.
1747               The element's value is then used as plugin instance.
1748
1749           If the "base XPath expression" (the argument to the XPath block)
1750           returns exactly one argument, then InstanceFrom and
1751           PluginInstanceFrom may be omitted.  Otherwise, at least one of
1752           InstanceFrom or PluginInstanceFrom is required.
1753
1754           ValuesFrom ValuesFrom [ValuesFrom ...]
1755               Specifies one or more XPath expression to use for reading the
1756               values. The number of XPath expressions must match the number
1757               of data sources in the type specified with Type (see above).
1758               Each XPath expression must return exactly one element. The
1759               element's value is then parsed as a number and used as value
1760               for the appropriate value in the value list dispatched to the
1761               daemon.  This option is required.
1762
1763   Plugin "dbi"
1764       This plugin uses the dbi library (<http://libdbi.sourceforge.net/>) to
1765       connect to various databases, execute SQL statements and read back the
1766       results. dbi is an acronym for "database interface" in case you were
1767       wondering about the name. You can configure how each column is to be
1768       interpreted and the plugin will generate one or more data sets from
1769       each row returned according to these rules.
1770
1771       Because the plugin is very generic, the configuration is a little more
1772       complex than those of other plugins. It usually looks something like
1773       this:
1774
1775         <Plugin dbi>
1776           <Query "out_of_stock">
1777             Statement "SELECT category, COUNT(*) AS value FROM products WHERE in_stock = 0 GROUP BY category"
1778             # Use with MySQL 5.0.0 or later
1779             MinVersion 50000
1780             <Result>
1781               Type "gauge"
1782               InstancePrefix "out_of_stock"
1783               InstancesFrom "category"
1784               ValuesFrom "value"
1785             </Result>
1786           </Query>
1787           <Database "product_information">
1788             #Plugin "warehouse"
1789             Driver "mysql"
1790             Interval 120
1791             DriverOption "host" "localhost"
1792             DriverOption "username" "collectd"
1793             DriverOption "password" "aZo6daiw"
1794             DriverOption "dbname" "prod_info"
1795             SelectDB "prod_info"
1796             Query "out_of_stock"
1797           </Database>
1798         </Plugin>
1799
1800       The configuration above defines one query with one result and one
1801       database. The query is then linked to the database with the Query
1802       option within the <Database> block. You can have any number of queries
1803       and databases and you can also use the Include statement to split up
1804       the configuration file in multiple, smaller files. However, the <Query>
1805       block must precede the <Database> blocks, because the file is
1806       interpreted from top to bottom!
1807
1808       The following is a complete list of options:
1809
1810       Query blocks
1811
1812       Query blocks define SQL statements and how the returned data should be
1813       interpreted. They are identified by the name that is given in the
1814       opening line of the block. Thus the name needs to be unique. Other than
1815       that, the name is not used in collectd.
1816
1817       In each Query block, there is one or more Result blocks. Result blocks
1818       define which column holds which value or instance information. You can
1819       use multiple Result blocks to create multiple values from one returned
1820       row. This is especially useful, when queries take a long time and
1821       sending almost the same query again and again is not desirable.
1822
1823       Example:
1824
1825         <Query "environment">
1826           Statement "select station, temperature, humidity from environment"
1827           <Result>
1828             Type "temperature"
1829             # InstancePrefix "foo"
1830             InstancesFrom "station"
1831             ValuesFrom "temperature"
1832           </Result>
1833           <Result>
1834             Type "humidity"
1835             InstancesFrom "station"
1836             ValuesFrom "humidity"
1837           </Result>
1838         </Query>
1839
1840       The following options are accepted:
1841
1842       Statement SQL
1843           Sets the statement that should be executed on the server. This is
1844           not interpreted by collectd, but simply passed to the database
1845           server. Therefore, the SQL dialect that's used depends on the
1846           server collectd is connected to.
1847
1848           The query has to return at least two columns, one for the instance
1849           and one value. You cannot omit the instance, even if the statement
1850           is guaranteed to always return exactly one line. In that case, you
1851           can usually specify something like this:
1852
1853             Statement "SELECT \"instance\", COUNT(*) AS value FROM table"
1854
1855           (That works with MySQL but may not be valid SQL according to the
1856           spec. If you use a more strict database server, you may have to
1857           select from a dummy table or something.)
1858
1859           Please note that some databases, for example Oracle, will fail if
1860           you include a semicolon at the end of the statement.
1861
1862       MinVersion Version
1863       MaxVersion Value
1864           Only use this query for the specified database version. You can use
1865           these options to provide multiple queries with the same name but
1866           with a slightly different syntax. The plugin will use only those
1867           queries, where the specified minimum and maximum versions fit the
1868           version of the database in use.
1869
1870           The database version is determined by
1871           "dbi_conn_get_engine_version", see the libdbi documentation
1872           <http://libdbi.sourceforge.net/docs/programmers-guide/reference-
1873           conn.html#DBI-CONN-GET-ENGINE-VERSION> for details. Basically, each
1874           part of the version is assumed to be in the range from 00 to 99 and
1875           all dots are removed. So version "4.1.2" becomes "40102", version
1876           "5.0.42" becomes "50042".
1877
1878           Warning: The plugin will use all matching queries, so if you
1879           specify multiple queries with the same name and overlapping ranges,
1880           weird stuff will happen. Don't to it! A valid example would be
1881           something along these lines:
1882
1883             MinVersion 40000
1884             MaxVersion 49999
1885             ...
1886             MinVersion 50000
1887             MaxVersion 50099
1888             ...
1889             MinVersion 50100
1890             # No maximum
1891
1892           In the above example, there are three ranges that don't overlap.
1893           The last one goes from version "5.1.0" to infinity, meaning "all
1894           later versions". Versions before "4.0.0" are not specified.
1895
1896       Type Type
1897           The type that's used for each line returned. See types.db(5) for
1898           more details on how types are defined. In short: A type is a
1899           predefined layout of data and the number of values and type of
1900           values has to match the type definition.
1901
1902           If you specify "temperature" here, you need exactly one gauge
1903           column. If you specify "if_octets", you will need two counter
1904           columns. See the ValuesFrom setting below.
1905
1906           There must be exactly one Type option inside each Result block.
1907
1908       InstancePrefix prefix
1909           Prepends prefix to the type instance. If InstancesFrom (see below)
1910           is not given, the string is simply copied. If InstancesFrom is
1911           given, prefix and all strings returned in the appropriate columns
1912           are concatenated together, separated by dashes ("-").
1913
1914       InstancesFrom column0 [column1 ...]
1915           Specifies the columns whose values will be used to create the
1916           "type-instance" for each row. If you specify more than one column,
1917           the value of all columns will be joined together with dashes ("-")
1918           as separation characters.
1919
1920           The plugin itself does not check whether or not all built instances
1921           are different. It's your responsibility to assure that each is
1922           unique. This is especially true, if you do not specify
1923           InstancesFrom: You have to make sure that only one row is returned
1924           in this case.
1925
1926           If neither InstancePrefix nor InstancesFrom is given, the type-
1927           instance will be empty.
1928
1929       ValuesFrom column0 [column1 ...]
1930           Names the columns whose content is used as the actual data for the
1931           data sets that are dispatched to the daemon. How many such columns
1932           you need is determined by the Type setting above. If you specify
1933           too many or not enough columns, the plugin will complain about that
1934           and no data will be submitted to the daemon.
1935
1936           The actual data type in the columns is not that important. The
1937           plugin will automatically cast the values to the right type if it
1938           know how to do that. So it should be able to handle integer an
1939           floating point types, as well as strings (if they include a number
1940           at the beginning).
1941
1942           There must be at least one ValuesFrom option inside each Result
1943           block.
1944
1945       MetadataFrom [column0 column1 ...]
1946           Names the columns whose content is used as metadata for the data
1947           sets that are dispatched to the daemon.
1948
1949           The actual data type in the columns is not that important. The
1950           plugin will automatically cast the values to the right type if it
1951           know how to do that. So it should be able to handle integer an
1952           floating point types, as well as strings (if they include a number
1953           at the beginning).
1954
1955       Database blocks
1956
1957       Database blocks define a connection to a database and which queries
1958       should be sent to that database. Since the used "dbi" library can
1959       handle a wide variety of databases, the configuration is very generic.
1960       If in doubt, refer to libdbi's documentation - we stick as close to the
1961       terminology used there.
1962
1963       Each database needs a "name" as string argument in the starting tag of
1964       the block. This name will be used as "PluginInstance" in the values
1965       submitted to the daemon. Other than that, that name is not used.
1966
1967       Plugin Plugin
1968           Use Plugin as the plugin name when submitting query results from
1969           this Database. Defaults to "dbi".
1970
1971       Interval Interval
1972           Sets the interval (in seconds) in which the values will be
1973           collected from this database. By default the global Interval
1974           setting will be used.
1975
1976       Driver Driver
1977           Specifies the driver to use to connect to the database. In many
1978           cases those drivers are named after the database they can connect
1979           to, but this is not a technical necessity. These drivers are
1980           sometimes referred to as "DBD", DataBase Driver, and some
1981           distributions ship them in separate packages. Drivers for the "dbi"
1982           library are developed by the libdbi-drivers project at
1983           <http://libdbi-drivers.sourceforge.net/>.
1984
1985           You need to give the driver name as expected by the "dbi" library
1986           here. You should be able to find that in the documentation for each
1987           driver. If you mistype the driver name, the plugin will dump a list
1988           of all known driver names to the log.
1989
1990       DriverOption Key Value
1991           Sets driver-specific options. What option a driver supports can be
1992           found in the documentation for each driver, somewhere at
1993           <http://libdbi-drivers.sourceforge.net/>. However, the options
1994           "host", "username", "password", and "dbname" seem to be de facto
1995           standards.
1996
1997           DBDs can register two types of options: String options and numeric
1998           options. The plugin will use the "dbi_conn_set_option" function
1999           when the configuration provides a string and the
2000           "dbi_conn_require_option_numeric" function when the configuration
2001           provides a number. So these two lines will actually result in
2002           different calls being used:
2003
2004             DriverOption "Port" 1234      # numeric
2005             DriverOption "Port" "1234"    # string
2006
2007           Unfortunately, drivers are not too keen to report errors when an
2008           unknown option is passed to them, so invalid settings here may go
2009           unnoticed. This is not the plugin's fault, it will report errors if
2010           it gets them from the library / the driver. If a driver complains
2011           about an option, the plugin will dump a complete list of all
2012           options understood by that driver to the log. There is no way to
2013           programmatically find out if an option expects a string or a
2014           numeric argument, so you will have to refer to the appropriate
2015           DBD's documentation to find this out. Sorry.
2016
2017       SelectDB Database
2018           In some cases, the database name you connect with is not the
2019           database name you want to use for querying data. If this option is
2020           set, the plugin will "select" (switch to) that database after the
2021           connection is established.
2022
2023       Query QueryName
2024           Associates the query named QueryName with this database connection.
2025           The query needs to be defined before this statement, i. e. all
2026           query blocks you want to refer to must be placed above the database
2027           block you want to refer to them from.
2028
2029       Host Hostname
2030           Sets the host field of value lists to Hostname when dispatching
2031           values. Defaults to the global hostname setting.
2032
2033   Plugin "df"
2034       Device Device
2035           Select partitions based on the devicename.
2036
2037           See /"IGNORELISTS" for details.
2038
2039       MountPoint Directory
2040           Select partitions based on the mountpoint.
2041
2042           See /"IGNORELISTS" for details.
2043
2044       FSType FSType
2045           Select partitions based on the filesystem type.
2046
2047           See /"IGNORELISTS" for details.
2048
2049       IgnoreSelected true|false
2050           Invert the selection: If set to true, all partitions except the
2051           ones that match any one of the criteria are collected. By default
2052           only selected partitions are collected if a selection is made. If
2053           no selection is configured at all, all partitions are selected.
2054
2055       ReportByDevice true|false
2056           Report using the device name rather than the mountpoint. i.e. with
2057           this false, (the default), it will report a disk as "root", but
2058           with it true, it will be "sda1" (or whichever).
2059
2060       ReportInodes true|false
2061           Enables or disables reporting of free, reserved and used inodes.
2062           Defaults to inode collection being disabled.
2063
2064           Enable this option if inodes are a scarce resource for you, usually
2065           because many small files are stored on the disk. This is a usual
2066           scenario for mail transfer agents and web caches.
2067
2068       ValuesAbsolute true|false
2069           Enables or disables reporting of free and used disk space in
2070           1K-blocks.  Defaults to true.
2071
2072       ValuesPercentage false|true
2073           Enables or disables reporting of free and used disk space in
2074           percentage.  Defaults to false.
2075
2076           This is useful for deploying collectd on the cloud, where machines
2077           with different disk size may exist. Then it is more practical to
2078           configure thresholds based on relative disk size.
2079
2080   Plugin "disk"
2081       The "disk" plugin collects information about the usage of physical
2082       disks and logical disks (partitions). Values collected are the number
2083       of octets written to and read from a disk or partition, the number of
2084       read/write operations issued to the disk and a rather complex "time" it
2085       took for these commands to be issued.
2086
2087       Using the following two options you can ignore some disks or configure
2088       the collection only of specific disks.
2089
2090       Disk Name
2091           Select the disk Name. Whether it is collected or ignored depends on
2092           the IgnoreSelected setting, see below. As with other plugins that
2093           use the daemon's ignorelist functionality, a string that starts and
2094           ends with a slash is interpreted as a regular expression. Examples:
2095
2096             Disk "sdd"
2097             Disk "/hda[34]/"
2098
2099           See /"IGNORELISTS" for details.
2100
2101       IgnoreSelected true|false
2102           Sets whether selected disks, i. e. the ones matches by any of the
2103           Disk statements, are ignored or if all other disks are ignored. The
2104           behavior (hopefully) is intuitive: If no Disk option is configured,
2105           all disks are collected. If at least one Disk option is given and
2106           no IgnoreSelected or set to false, only matching disks will be
2107           collected. If IgnoreSelected is set to true, all disks are
2108           collected except the ones matched.
2109
2110       UseBSDName true|false
2111           Whether to use the device's "BSD Name", on Mac OS X, instead of the
2112           default major/minor numbers. Requires collectd to be built with
2113           Apple's IOKitLib support.
2114
2115       UdevNameAttr Attribute
2116           Attempt to override disk instance name with the value of a
2117           specified udev attribute when built with libudev.  If the attribute
2118           is not defined for the given device, the default name is used.
2119           Example:
2120
2121             UdevNameAttr "DM_NAME"
2122
2123   Plugin "dns"
2124       Interface Interface
2125           The dns plugin uses libpcap to capture dns traffic and analyzes it.
2126           This option sets the interface that should be used. If this option
2127           is not set, or set to "any", the plugin will try to get packets
2128           from all interfaces. This may not work on certain platforms, such
2129           as Mac OS X.
2130
2131       IgnoreSource IP-address
2132           Ignore packets that originate from this address.
2133
2134       SelectNumericQueryTypes true|false
2135           Enabled by default, collects unknown (and thus presented as numeric
2136           only) query types.
2137
2138   Plugin "dpdkevents"
2139       The dpdkevents plugin collects events from DPDK such as link status of
2140       network ports and Keep Alive status of DPDK logical cores.  In order to
2141       get Keep Alive events following requirements must be met: - DPDK >=
2142       16.07 - support for Keep Alive implemented in DPDK application. More
2143       details can be found here:
2144       http://dpdk.org/doc/guides/sample_app_ug/keep_alive.html
2145
2146       Synopsis:
2147
2148        <Plugin "dpdkevents">
2149          <EAL>
2150            Coremask "0x1"
2151            MemoryChannels "4"
2152            FilePrefix "rte"
2153          </EAL>
2154          <Event "link_status">
2155            SendEventsOnUpdate true
2156            EnabledPortMask 0xffff
2157            PortName "interface1"
2158            PortName "interface2"
2159            SendNotification false
2160          </Event>
2161          <Event "keep_alive">
2162            SendEventsOnUpdate true
2163            LCoreMask "0xf"
2164            KeepAliveShmName "/dpdk_keepalive_shm_name"
2165            SendNotification false
2166          </Event>
2167        </Plugin>
2168
2169       Options:
2170
2171       The EAL block
2172
2173       Coremask Mask
2174       Memorychannels Channels
2175           Number of memory channels per processor socket.
2176
2177       FilePrefix File
2178           The prefix text used for hugepage filenames. The filename will be
2179           set to /var/run/.<prefix>_config where prefix is what is passed in
2180           by the user.
2181
2182       The Event block
2183
2184       The Event block defines configuration for specific event. It accepts a
2185       single argument which specifies the name of the event.
2186
2187       Link Status event
2188
2189       SendEventOnUpdate true|false
2190           If set to true link status value will be dispatched only when it is
2191           different from previously read value. This is an optional argument
2192           - default value is true.
2193
2194       EnabledPortMask Mask
2195           A hexidecimal bit mask of the DPDK ports which should be enabled. A
2196           mask of 0x0 means that all ports will be disabled. A bitmask of all
2197           F's means that all ports will be enabled. This is an optional
2198           argument - by default all ports are enabled.
2199
2200       PortName Name
2201           A string containing an optional name for the enabled DPDK ports.
2202           Each PortName option should contain only one port name; specify as
2203           many PortName options as desired. Default naming convention will be
2204           used if PortName is blank. If there are less PortName options than
2205           there are enabled ports, the default naming convention will be used
2206           for the additional ports.
2207
2208       SendNotification true|false
2209           If set to true, link status notifications are sent, instead of link
2210           status being collected as a statistic. This is an optional argument
2211           - default value is false.
2212
2213       Keep Alive event
2214
2215       SendEventOnUpdate true|false
2216           If set to true keep alive value will be dispatched only when it is
2217           different from previously read value. This is an optional argument
2218           - default value is true.
2219
2220       LCoreMask Mask
2221           An hexadecimal bit mask of the logical cores to monitor keep alive
2222           state.
2223
2224       KeepAliveShmName Name
2225           Shared memory name identifier that is used by secondary process to
2226           monitor the keep alive cores state.
2227
2228       SendNotification true|false
2229           If set to true, keep alive notifications are sent, instead of keep
2230           alive information being collected as a statistic. This is an
2231           optional argument - default value is false.
2232
2233   Plugin "dpdkstat"
2234       The dpdkstat plugin collects information about DPDK interfaces using
2235       the extended NIC stats API in DPDK.
2236
2237       Synopsis:
2238
2239        <Plugin "dpdkstat">
2240          <EAL>
2241            Coremask "0x4"
2242            MemoryChannels "4"
2243            FilePrefix "rte"
2244            SocketMemory "1024"
2245            LogLevel "7"
2246            RteDriverLibPath "/usr/lib/dpdk-pmd"
2247          </EAL>
2248          SharedMemObj "dpdk_collectd_stats_0"
2249          EnabledPortMask 0xffff
2250          PortName "interface1"
2251          PortName "interface2"
2252        </Plugin>
2253
2254       Options:
2255
2256       The EAL block
2257
2258       Coremask Mask
2259           A string containing an hexadecimal bit mask of the cores to run on.
2260           Note that core numbering can change between platforms and should be
2261           determined beforehand.
2262
2263       Memorychannels Channels
2264           A string containing a number of memory channels per processor
2265           socket.
2266
2267       FilePrefix File
2268           The prefix text used for hugepage filenames. The filename will be
2269           set to /var/run/.<prefix>_config where prefix is what is passed in
2270           by the user.
2271
2272       SocketMemory MB
2273           A string containing amount of Memory to allocate from hugepages on
2274           specific sockets in MB. This is an optional value.
2275
2276       LogLevel LogLevel_number
2277           A string containing log level number. This parameter is optional.
2278           If parameter is not present then default value "7" - (INFO) is
2279           used.  Value "8" - (DEBUG) can be set to enable debug traces.
2280
2281       RteDriverLibPath Path
2282           A string containing path to shared pmd driver lib or path to
2283           directory, where shared pmd driver libs are available. This
2284           parameter is optional.  This parameter enable loading of shared pmd
2285           driver libs from defined path.  E.g.:
2286           "/usr/lib/dpdk-pmd/librte_pmd_i40e.so" or    "/usr/lib/dpdk-pmd"
2287
2288       SharedMemObj Mask
2289          A string containing the name of the shared memory object that should
2290          be used to share stats from the DPDK secondary process to the
2291          collectd dpdkstat plugin.  Defaults to dpdk_collectd_stats if no
2292          other value is configured.
2293
2294       EnabledPortMask Mask
2295          A hexidecimal bit mask of the DPDK ports which should be enabled. A
2296          mask of 0x0 means that all ports will be disabled. A bitmask of all
2297          Fs means that all ports will be enabled. This is an optional
2298          argument - default is all ports enabled.
2299
2300       PortName Name
2301          A string containing an optional name for the enabled DPDK ports.
2302          Each PortName option should contain only one port name; specify as
2303          many PortName options as desired. Default naming convention will be
2304          used if PortName is blank. If there are less PortName options than
2305          there are enabled ports, the default naming convention will be used
2306          for the additional ports.
2307
2308   Plugin "email"
2309       SocketFile Path
2310           Sets the socket-file which is to be created.
2311
2312       SocketGroup Group
2313           If running as root change the group of the UNIX-socket after it has
2314           been created. Defaults to collectd.
2315
2316       SocketPerms Permissions
2317           Change the file permissions of the UNIX-socket after it has been
2318           created. The permissions must be given as a numeric, octal value as
2319           you would pass to chmod(1). Defaults to 0770.
2320
2321       MaxConns Number
2322           Sets the maximum number of connections that can be handled in
2323           parallel. Since this many threads will be started immediately
2324           setting this to a very high value will waste valuable resources.
2325           Defaults to 5 and will be forced to be at most 16384 to prevent
2326           typos and dumb mistakes.
2327
2328   Plugin "ethstat"
2329       The ethstat plugin collects information about network interface cards
2330       (NICs) by talking directly with the underlying kernel driver using
2331       ioctl(2).
2332
2333       Synopsis:
2334
2335        <Plugin "ethstat">
2336          Interface "eth0"
2337          Map "rx_csum_offload_errors" "if_rx_errors" "checksum_offload"
2338          Map "multicast" "if_multicast"
2339        </Plugin>
2340
2341       Options:
2342
2343       Interface Name
2344           Collect statistical information about interface Name.
2345
2346       Map Name Type [TypeInstance]
2347           By default, the plugin will submit values as type "derive" and type
2348           instance set to Name, the name of the metric as reported by the
2349           driver. If an appropriate Map option exists, the given Type and,
2350           optionally, TypeInstance will be used.
2351
2352       MappedOnly true|false
2353           When set to true, only metrics that can be mapped to a type will be
2354           collected, all other metrics will be ignored. Defaults to false.
2355
2356   Plugin "exec"
2357       Please make sure to read collectd-exec(5) before using this plugin. It
2358       contains valuable information on when the executable is executed and
2359       the output that is expected from it.
2360
2361       Exec User[:[Group]] Executable [<arg> [<arg> ...]]
2362       NotificationExec User[:[Group]] Executable [<arg> [<arg> ...]]
2363           Execute the executable Executable as user User. If the user name is
2364           followed by a colon and a group name, the effective group is set to
2365           that group.  The real group and saved-set group will be set to the
2366           default group of that user. If no group is given the effective
2367           group ID will be the same as the real group ID.
2368
2369           Please note that in order to change the user and/or group the
2370           daemon needs superuser privileges. If the daemon is run as an
2371           unprivileged user you must specify the same user/group here. If the
2372           daemon is run with superuser privileges, you must supply a non-root
2373           user here.
2374
2375           The executable may be followed by optional arguments that are
2376           passed to the program. Please note that due to the configuration
2377           parsing numbers and boolean values may be changed. If you want to
2378           be absolutely sure that something is passed as-is please enclose it
2379           in quotes.
2380
2381           The Exec and NotificationExec statements change the semantics of
2382           the programs executed, i. e. the data passed to them and the
2383           response expected from them. This is documented in great detail in
2384           collectd-exec(5).
2385
2386   Plugin "fhcount"
2387       The "fhcount" plugin provides statistics about used, unused and total
2388       number of file handles on Linux.
2389
2390       The fhcount plugin provides the following configuration options:
2391
2392       ValuesAbsolute true|false
2393           Enables or disables reporting of file handles usage in absolute
2394           numbers, e.g. file handles used. Defaults to true.
2395
2396       ValuesPercentage false|true
2397           Enables or disables reporting of file handles usage in percentages,
2398           e.g.  percent of file handles used. Defaults to false.
2399
2400   Plugin "filecount"
2401       The "filecount" plugin counts the number of files in a certain
2402       directory (and its subdirectories) and their combined size. The
2403       configuration is very straight forward:
2404
2405         <Plugin "filecount">
2406           <Directory "/var/qmail/queue/mess">
2407             Instance "qmail-message"
2408           </Directory>
2409           <Directory "/var/qmail/queue/todo">
2410             Instance "qmail-todo"
2411           </Directory>
2412           <Directory "/var/lib/php5">
2413             Instance "php5-sessions"
2414             Name "sess_*"
2415           </Directory>
2416         </Plugin>
2417
2418       The example above counts the number of files in QMail's queue
2419       directories and the number of PHP5 sessions. Jfiy: The "todo" queue
2420       holds the messages that QMail has not yet looked at, the "message"
2421       queue holds the messages that were classified into "local" and
2422       "remote".
2423
2424       As you can see, the configuration consists of one or more "Directory"
2425       blocks, each of which specifies a directory in which to count the
2426       files. Within those blocks, the following options are recognized:
2427
2428       Plugin Plugin
2429           Use Plugin as the plugin name when submitting values.  Defaults to
2430           filecount.
2431
2432       Instance Instance
2433           Sets the plugin instance to Instance. If not given, the instance is
2434           set to the directory name with all slashes replaced by underscores
2435           and all leading underscores removed. Empty value is allowed.
2436
2437       Name Pattern
2438           Only count files that match Pattern, where Pattern is a shell-like
2439           wildcard as understood by fnmatch(3). Only the filename is checked
2440           against the pattern, not the entire path. In case this makes it
2441           easier for you: This option has been named after the -name
2442           parameter to find(1).
2443
2444       MTime Age
2445           Count only files of a specific age: If Age is greater than zero,
2446           only files that haven't been touched in the last Age seconds are
2447           counted. If Age is a negative number, this is inversed. For
2448           example, if -60 is specified, only files that have been modified in
2449           the last minute will be counted.
2450
2451           The number can also be followed by a "multiplier" to easily specify
2452           a larger timespan. When given in this notation, the argument must
2453           in quoted, i. e.  must be passed as string. So the -60 could also
2454           be written as "-1m" (one minute). Valid multipliers are "s"
2455           (second), "m" (minute), "h" (hour), "d" (day), "w" (week), and "y"
2456           (year). There is no "month" multiplier. You can also specify
2457           fractional numbers, e. g. "0.5d" is identical to "12h".
2458
2459       Size Size
2460           Count only files of a specific size. When Size is a positive
2461           number, only files that are at least this big are counted. If Size
2462           is a negative number, this is inversed, i. e. only files smaller
2463           than the absolute value of Size are counted.
2464
2465           As with the MTime option, a "multiplier" may be added. For a
2466           detailed description see above. Valid multipliers here are "b"
2467           (byte), "k" (kilobyte), "m" (megabyte), "g" (gigabyte), "t"
2468           (terabyte), and "p" (petabyte). Please note that there are 1000
2469           bytes in a kilobyte, not 1024.
2470
2471       Recursive true|false
2472           Controls whether or not to recurse into subdirectories. Enabled by
2473           default.
2474
2475       IncludeHidden true|false
2476           Controls whether or not to include "hidden" files and directories
2477           in the count.  "Hidden" files and directories are those, whose name
2478           begins with a dot.  Defaults to false, i.e. by default hidden files
2479           and directories are ignored.
2480
2481       RegularOnly true|false
2482           Controls whether or not to include only regular files in the count.
2483           Defaults to true, i.e. by default non regular files are ignored.
2484
2485       FilesSizeType Type
2486           Sets the type used to dispatch files combined size. Empty value
2487           ("") disables reporting. Defaults to bytes.
2488
2489       FilesCountType Type
2490           Sets the type used to dispatch number of files. Empty value ("")
2491           disables reporting. Defaults to files.
2492
2493       TypeInstance Instance
2494           Sets the type instance used to dispatch values. Defaults to an
2495           empty string (no plugin instance).
2496
2497   Plugin "GenericJMX"
2498       The GenericJMX plugin is written in Java and therefore documented in
2499       collectd-java(5).
2500
2501   Plugin "gmond"
2502       The gmond plugin received the multicast traffic sent by gmond, the
2503       statistics collection daemon of Ganglia. Mappings for the standard
2504       "metrics" are built-in, custom mappings may be added via Metric blocks,
2505       see below.
2506
2507       Synopsis:
2508
2509        <Plugin "gmond">
2510          MCReceiveFrom "239.2.11.71" "8649"
2511          <Metric "swap_total">
2512            Type "swap"
2513            TypeInstance "total"
2514            DataSource "value"
2515          </Metric>
2516          <Metric "swap_free">
2517            Type "swap"
2518            TypeInstance "free"
2519            DataSource "value"
2520          </Metric>
2521        </Plugin>
2522
2523       The following metrics are built-in:
2524
2525       ·   load_one, load_five, load_fifteen
2526
2527       ·   cpu_user, cpu_system, cpu_idle, cpu_nice, cpu_wio
2528
2529       ·   mem_free, mem_shared, mem_buffers, mem_cached, mem_total
2530
2531       ·   bytes_in, bytes_out
2532
2533       ·   pkts_in, pkts_out
2534
2535       Available configuration options:
2536
2537       MCReceiveFrom MCGroup [Port]
2538           Sets sets the multicast group and UDP port to which to subscribe.
2539
2540           Default: 239.2.11.71 / 8649
2541
2542       <Metric Name>
2543           These blocks add a new metric conversion to the internal table.
2544           Name, the string argument to the Metric block, is the metric name
2545           as used by Ganglia.
2546
2547           Type Type
2548               Type to map this metric to. Required.
2549
2550           TypeInstance Instance
2551               Type-instance to use. Optional.
2552
2553           DataSource Name
2554               Data source to map this metric to. If the configured type has
2555               exactly one data source, this is optional. Otherwise the option
2556               is required.
2557
2558   Plugin "gps"
2559       The "gps plugin" connects to gpsd on the host machine.  The host, port,
2560       timeout and pause are configurable.
2561
2562       This is useful if you run an NTP server using a GPS for source and you
2563       want to monitor it.
2564
2565       Mind your GPS must send $--GSA for having the data reported!
2566
2567       The following elements are collected:
2568
2569       satellites
2570           Number of satellites used for fix (type instance "used") and in
2571           view (type instance "visible"). 0 means no GPS satellites are
2572           visible.
2573
2574       dilution_of_precision
2575           Vertical and horizontal dilution (type instance "horizontal" or
2576           "vertical").  It should be between 0 and 3.  Look at the
2577           documentation of your GPS to know more.
2578
2579       Synopsis:
2580
2581        LoadPlugin gps
2582        <Plugin "gps">
2583          # Connect to localhost on gpsd regular port:
2584          Host "127.0.0.1"
2585          Port "2947"
2586          # 15 ms timeout
2587          Timeout 0.015
2588          # PauseConnect of 5 sec. between connection attempts.
2589          PauseConnect 5
2590        </Plugin>
2591
2592       Available configuration options:
2593
2594       Host Host
2595           The host on which gpsd daemon runs. Defaults to localhost.
2596
2597       Port Port
2598           Port to connect to gpsd on the host machine. Defaults to 2947.
2599
2600       Timeout Seconds
2601           Timeout in seconds (default 0.015 sec).
2602
2603           The GPS data stream is fetch by the plugin form the daemon.  It
2604           waits for data to be available, if none arrives it times out and
2605           loop for another reading.  Mind to put a low value gpsd expects
2606           value in the micro-seconds area (recommended is 500 us) since the
2607           waiting function is blocking.  Value must be between 500 us and 5
2608           sec., if outside that range the default value is applied.
2609
2610           This only applies from gpsd release-2.95.
2611
2612       PauseConnect Seconds
2613           Pause to apply between attempts of connection to gpsd in seconds
2614           (default 5 sec).
2615
2616   Plugin "grpc"
2617       The grpc plugin provides an RPC interface to submit values to or query
2618       values from collectd based on the open source gRPC framework. It
2619       exposes an end-point for dispatching values to the daemon.
2620
2621       The gRPC homepage can be found at <https://grpc.io/>.
2622
2623       Server Host Port
2624           The Server statement sets the address of a server to which to send
2625           metrics via the "DispatchValues" function.
2626
2627           The argument Host may be a hostname, an IPv4 address, or an IPv6
2628           address.
2629
2630           Optionally, Server may be specified as a configuration block which
2631           supports the following options:
2632
2633           EnableSSL false|true
2634               Whether to require SSL for outgoing connections. Default:
2635               false.
2636
2637           SSLCACertificateFile Filename
2638           SSLCertificateFile Filename
2639           SSLCertificateKeyFile Filename
2640               Filenames specifying SSL certificate and key material to be
2641               used with SSL connections.
2642
2643       Listen Host Port
2644           The Listen statement sets the network address to bind to. When
2645           multiple statements are specified, the daemon will bind to all of
2646           them. If none are specified, it defaults to 0.0.0.0:50051.
2647
2648           The argument Host may be a hostname, an IPv4 address, or an IPv6
2649           address.
2650
2651           Optionally, Listen may be specified as a configuration block which
2652           supports the following options:
2653
2654           EnableSSL true|false
2655               Whether to enable SSL for incoming connections. Default: false.
2656
2657           SSLCACertificateFile Filename
2658           SSLCertificateFile Filename
2659           SSLCertificateKeyFile Filename
2660               Filenames specifying SSL certificate and key material to be
2661               used with SSL connections.
2662
2663   Plugin "hddtemp"
2664       To get values from hddtemp collectd connects to localhost (127.0.0.1),
2665       port 7634/tcp. The Host and Port options can be used to change these
2666       default values, see below. "hddtemp" has to be running to work
2667       correctly. If "hddtemp" is not running timeouts may appear which may
2668       interfere with other statistics..
2669
2670       The hddtemp homepage can be found at
2671       <http://www.guzu.net/linux/hddtemp.php>.
2672
2673       Host Hostname
2674           Hostname to connect to. Defaults to 127.0.0.1.
2675
2676       Port Port
2677           TCP-Port to connect to. Defaults to 7634.
2678
2679   Plugin "hugepages"
2680       To collect hugepages information, collectd reads directories
2681       "/sys/devices/system/node/*/hugepages" and "/sys/kernel/mm/hugepages".
2682       Reading of these directories can be disabled by the following options
2683       (default is enabled).
2684
2685       ReportPerNodeHP true|false
2686           If enabled, information will be collected from the hugepage
2687           counters in "/sys/devices/system/node/*/hugepages".  This is used
2688           to check the per-node hugepage statistics on a NUMA system.
2689
2690       ReportRootHP true|false
2691           If enabled, information will be collected from the hugepage
2692           counters in "/sys/kernel/mm/hugepages".  This can be used on both
2693           NUMA and non-NUMA systems to check the overall hugepage statistics.
2694
2695       ValuesPages true|false
2696           Whether to report hugepages metrics in number of pages.  Defaults
2697           to true.
2698
2699       ValuesBytes false|true
2700           Whether to report hugepages metrics in bytes.  Defaults to false.
2701
2702       ValuesPercentage false|true
2703           Whether to report hugepages metrics as percentage.  Defaults to
2704           false.
2705
2706   Plugin "intel_pmu"
2707       The intel_pmu plugin collects performance counters data on Intel CPUs
2708       using Linux perf interface. All events are reported on a per core
2709       basis.
2710
2711       Synopsis:
2712
2713         <Plugin intel_pmu>
2714           ReportHardwareCacheEvents true
2715           ReportKernelPMUEvents true
2716           ReportSoftwareEvents true
2717           EventList "/var/cache/pmu/GenuineIntel-6-2D-core.json"
2718           HardwareEvents "L2_RQSTS.CODE_RD_HIT,L2_RQSTS.CODE_RD_MISS" "L2_RQSTS.ALL_CODE_RD"
2719           Cores "0-3" "4,6" "[12-15]"
2720         </Plugin>
2721
2722       Options:
2723
2724       ReportHardwareCacheEvents false|true
2725           Enable or disable measuring of hardware CPU cache events:
2726             - L1-dcache-loads
2727             - L1-dcache-load-misses
2728             - L1-dcache-stores
2729             - L1-dcache-store-misses
2730             - L1-dcache-prefetches
2731             - L1-dcache-prefetch-misses
2732             - L1-icache-loads
2733             - L1-icache-load-misses
2734             - L1-icache-prefetches
2735             - L1-icache-prefetch-misses
2736             - LLC-loads
2737             - LLC-load-misses
2738             - LLC-stores
2739             - LLC-store-misses
2740             - LLC-prefetches
2741             - LLC-prefetch-misses
2742             - dTLB-loads
2743             - dTLB-load-misses
2744             - dTLB-stores
2745             - dTLB-store-misses
2746             - dTLB-prefetches
2747             - dTLB-prefetch-misses
2748             - iTLB-loads
2749             - iTLB-load-misses
2750             - branch-loads
2751             - branch-load-misses
2752
2753       ReportKernelPMUEvents false|true
2754           Enable or disable measuring of the following events:
2755             - cpu-cycles
2756             - instructions
2757             - cache-references
2758             - cache-misses
2759             - branches
2760             - branch-misses
2761             - bus-cycles
2762
2763       ReportSoftwareEvents false|true
2764           Enable or disable measuring of software events provided by kernel:
2765             - cpu-clock
2766             - task-clock
2767             - context-switches
2768             - cpu-migrations
2769             - page-faults
2770             - minor-faults
2771             - major-faults
2772             - alignment-faults
2773             - emulation-faults
2774
2775       EventList filename
2776           JSON performance counter event list file name. To be able to
2777           monitor all Intel CPU specific events JSON event list file should
2778           be downloaded. Use the pmu-tools event_download.py script to
2779           download event list for current CPU.
2780
2781       HardwareEvents events
2782           This field is a list of event names or groups of comma separated
2783           event names.  This option requires EventList option to be
2784           configured.
2785
2786       Cores cores groups
2787           All events are reported on a per core basis. Monitoring of the
2788           events can be configured for a group of cores (aggregated
2789           statistics). This field defines groups of cores on which to monitor
2790           supported events. The field is represented as list of strings with
2791           core group values. Each string represents a list of cores in a
2792           group. If a group is enclosed in square brackets each core is added
2793           individually to a separate group (that is statistics are not
2794           aggregated).  Allowed formats are:
2795               0,1,2,3
2796               0-10,20-18
2797               1,3,5-8,10,0x10-12
2798               [4-15,32-63]
2799
2800           If an empty string is provided as value for this field default
2801           cores configuration is applied - that is separate group is created
2802           for each core.
2803
2804   Plugin "intel_rdt"
2805       The intel_rdt plugin collects information provided by monitoring
2806       features of Intel Resource Director Technology (Intel(R) RDT) like
2807       Cache Monitoring Technology (CMT), Memory Bandwidth Monitoring (MBM).
2808       These features provide information about utilization of shared
2809       resources. CMT monitors last level cache occupancy (LLC). MBM supports
2810       two types of events reporting local and remote memory bandwidth. Local
2811       memory bandwidth (MBL) reports the bandwidth of accessing memory
2812       associated with the local socket. Remote memory bandwidth (MBR) reports
2813       the bandwidth of accessing the remote socket. Also this technology
2814       allows to monitor instructions per clock (IPC).  Monitor events are
2815       hardware dependant. Monitoring capabilities are detected on plugin
2816       initialization and only supported events are monitored.
2817
2818       Note: intel_rdt plugin is using model-specific registers (MSRs), which
2819       require an additional capability to be enabled if collectd is run as a
2820       service.  Please refer to contrib/systemd.collectd.service file for
2821       more details.
2822
2823       Synopsis:
2824
2825         <Plugin "intel_rdt">
2826           Cores "0-2" "3,4,6" "8-10,15"
2827         </Plugin>
2828
2829       Options:
2830
2831       Interval seconds
2832           The interval within which to retrieve statistics on monitored
2833           events in seconds.  For milliseconds divide the time by 1000 for
2834           example if the desired interval is 50ms, set interval to 0.05. Due
2835           to limited capacity of counters it is not recommended to set
2836           interval higher than 1 sec.
2837
2838       Cores cores groups
2839           All events are reported on a per core basis. Monitoring of the
2840           events can be configured for group of cores (aggregated
2841           statistics). This field defines groups of cores on which to monitor
2842           supported events. The field is represented as list of strings with
2843           core group values. Each string represents a list of cores in a
2844           group. Allowed formats are:
2845               0,1,2,3
2846               0-10,20-18
2847               1,3,5-8,10,0x10-12
2848
2849           If an empty string is provided as value for this field default
2850           cores configuration is applied - a separate group is created for
2851           each core.
2852
2853       Note: By default global interval is used to retrieve statistics on
2854       monitored events. To configure a plugin specific interval use Interval
2855       option of the intel_rdt <LoadPlugin> block. For milliseconds divide the
2856       time by 1000 for example if the desired interval is 50ms, set interval
2857       to 0.05.  Due to limited capacity of counters it is not recommended to
2858       set interval higher than 1 sec.
2859
2860   Plugin "interface"
2861       Interface Interface
2862           Select this interface. By default these interfaces will then be
2863           collected. For a more detailed description see IgnoreSelected
2864           below.
2865
2866           See /"IGNORELISTS" for details.
2867
2868       IgnoreSelected true|false
2869           If no configuration is given, the interface-plugin will collect
2870           data from all interfaces. This may not be practical, especially for
2871           loopback- and similar interfaces. Thus, you can use the
2872           Interface-option to pick the interfaces you're interested in.
2873           Sometimes, however, it's easier/preferred to collect all interfaces
2874           except a few ones. This option enables you to do that: By setting
2875           IgnoreSelected to true the effect of Interface is inverted: All
2876           selected interfaces are ignored and all other interfaces are
2877           collected.
2878
2879           It is possible to use regular expressions to match interface names,
2880           if the name is surrounded by /.../ and collectd was compiled with
2881           support for regexps. This is useful if there's a need to collect
2882           (or ignore) data for a group of interfaces that are similarly
2883           named, without the need to explicitly list all of them (especially
2884           useful if the list is dynamic).  Example:
2885
2886            Interface "lo"
2887            Interface "/^veth/"
2888            Interface "/^tun[0-9]+/"
2889            IgnoreSelected "true"
2890
2891           This will ignore the loopback interface, all interfaces with names
2892           starting with veth and all interfaces with names starting with tun
2893           followed by at least one digit.
2894
2895       ReportInactive true|false
2896           When set to false, only interfaces with non-zero traffic will be
2897           reported. Note that the check is done by looking into whether a
2898           package was sent at any time from boot and the corresponding
2899           counter is non-zero. So, if the interface has been sending data in
2900           the past since boot, but not during the reported time-interval, it
2901           will still be reported.
2902
2903           The default value is true and results in collection of the data
2904           from all interfaces that are selected by Interface and
2905           IgnoreSelected options.
2906
2907       UniqueName true|false
2908           Interface name is not unique on Solaris (KSTAT), interface name is
2909           unique only within a module/instance. Following tuple is considered
2910           unique:
2911              (ks_module, ks_instance, ks_name) If this option is set to true,
2912           interface name contains above three fields separated by an
2913           underscore. For more info on KSTAT, visit
2914           <http://docs.oracle.com/cd/E23824_01/html/821-1468/kstat-3kstat.html#REFMAN3Ekstat-3kstat>
2915
2916           This option is only available on Solaris.
2917
2918   Plugin "ipmi"
2919       The ipmi plugin allows to monitor server platform status using the
2920       Intelligent Platform Management Interface (IPMI). Local and remote
2921       interfaces are supported.
2922
2923       The plugin configuration consists of one or more Instance blocks which
2924       specify one ipmi connection each. Each block requires one unique string
2925       argument as the instance name. If instances are not configured, an
2926       instance with the default option values will be created.
2927
2928       For backwards compatibility, any option other than Instance block will
2929       trigger legacy config handling and it will be treated as an option
2930       within Instance block. This support will go away in the next major
2931       version of Collectd.
2932
2933       Within the Instance blocks, the following options are allowed:
2934
2935       Address Address
2936           Hostname or IP to connect to. If not specified, plugin will try to
2937           connect to local management controller (BMC).
2938
2939       Username Username
2940       Password Password
2941           The username and the password to use for the connection to remote
2942           BMC.
2943
2944       AuthType MD5|rmcp+
2945           Forces the authentication type to use for the connection to remote
2946           BMC.  By default most secure type is seleted.
2947
2948       Host Hostname
2949           Sets the host field of dispatched values. Defaults to the global
2950           hostname setting.
2951
2952       Sensor Sensor
2953           Selects sensors to collect or to ignore, depending on
2954           IgnoreSelected.
2955
2956           See /"IGNORELISTS" for details.
2957
2958       IgnoreSelected true|false
2959           If no configuration if given, the ipmi plugin will collect data
2960           from all sensors found of type "temperature", "voltage", "current"
2961           and "fanspeed".  This option enables you to do that: By setting
2962           IgnoreSelected to true the effect of Sensor is inverted: All
2963           selected sensors are ignored and all other sensors are collected.
2964
2965       NotifySensorAdd true|false
2966           If a sensor appears after initialization time of a minute a
2967           notification is sent.
2968
2969       NotifySensorRemove true|false
2970           If a sensor disappears a notification is sent.
2971
2972       NotifySensorNotPresent true|false
2973           If you have for example dual power supply and one of them is
2974           (un)plugged then a notification is sent.
2975
2976       NotifyIPMIConnectionState true|false
2977           If a IPMI connection state changes after initialization time of a
2978           minute a notification is sent. Defaults to false.
2979
2980       SELEnabled true|false
2981           If system event log (SEL) is enabled, plugin will listen for sensor
2982           threshold and discrete events. When event is received the
2983           notification is sent.  Defaults to false.
2984
2985       SELClearEvent true|false
2986           If SEL clear event is enabled, plugin will delete event from SEL
2987           list after it is received and successfully handled. In this case
2988           other tools that are subscribed for SEL events will receive an
2989           empty event.  Defaults to false.
2990
2991   Plugin "iptables"
2992       Chain Table Chain [Comment|Number [Name]]
2993       Chain6 Table Chain [Comment|Number [Name]]
2994           Select the iptables/ip6tables filter rules to count packets and
2995           bytes from.
2996
2997           If only Table and Chain are given, this plugin will collect the
2998           counters of all rules which have a comment-match. The comment is
2999           then used as type-instance.
3000
3001           If Comment or Number is given, only the rule with the matching
3002           comment or the nth rule will be collected. Again, the comment (or
3003           the number) will be used as the type-instance.
3004
3005           If Name is supplied, it will be used as the type-instance instead
3006           of the comment or the number.
3007
3008   Plugin "irq"
3009       Irq Irq
3010           Select this irq. By default these irqs will then be collected. For
3011           a more detailed description see IgnoreSelected below.
3012
3013           See /"IGNORELISTS" for details.
3014
3015       IgnoreSelected true|false
3016           If no configuration if given, the irq-plugin will collect data from
3017           all irqs. This may not be practical, especially if no interrupts
3018           happen. Thus, you can use the Irq-option to pick the interrupt
3019           you're interested in.  Sometimes, however, it's easier/preferred to
3020           collect all interrupts except a few ones. This option enables you
3021           to do that: By setting IgnoreSelected to true the effect of Irq is
3022           inverted: All selected interrupts are ignored and all other
3023           interrupts are collected.
3024
3025   Plugin "java"
3026       The Java plugin makes it possible to write extensions for collectd in
3027       Java.  This section only discusses the syntax and semantic of the
3028       configuration options. For more in-depth information on the Java
3029       plugin, please read collectd-java(5).
3030
3031       Synopsis:
3032
3033        <Plugin "java">
3034          JVMArg "-verbose:jni"
3035          JVMArg "-Djava.class.path=/opt/collectd/lib/collectd/bindings/java"
3036          LoadPlugin "org.collectd.java.Foobar"
3037          <Plugin "org.collectd.java.Foobar">
3038            # To be parsed by the plugin
3039          </Plugin>
3040        </Plugin>
3041
3042       Available configuration options:
3043
3044       JVMArg Argument
3045           Argument that is to be passed to the Java Virtual Machine (JVM).
3046           This works exactly the way the arguments to the java binary on the
3047           command line work.  Execute "java --help" for details.
3048
3049           Please note that all these options must appear before (i. e. above)
3050           any other options! When another option is found, the JVM will be
3051           started and later options will have to be ignored!
3052
3053       LoadPlugin JavaClass
3054           Instantiates a new JavaClass object. The constructor of this object
3055           very likely then registers one or more callback methods with the
3056           server.
3057
3058           See collectd-java(5) for details.
3059
3060           When the first such option is found, the virtual machine (JVM) is
3061           created. This means that all JVMArg options must appear before
3062           (i. e. above) all LoadPlugin options!
3063
3064       Plugin Name
3065           The entire block is passed to the Java plugin as an
3066           org.collectd.api.OConfigItem object.
3067
3068           For this to work, the plugin has to register a configuration
3069           callback first, see "config callback" in collectd-java(5). This
3070           means, that the Plugin block must appear after the appropriate
3071           LoadPlugin block. Also note, that Name depends on the (Java) plugin
3072           registering the callback and is completely independent from the
3073           JavaClass argument passed to LoadPlugin.
3074
3075   Plugin "load"
3076       The Load plugin collects the system load. These numbers give a rough
3077       overview over the utilization of a machine. The system load is defined
3078       as the number of runnable tasks in the run-queue and is provided by
3079       many operating systems as a one, five or fifteen minute average.
3080
3081       The following configuration options are available:
3082
3083       ReportRelative false|true
3084           When enabled, system load divided by number of available CPU cores
3085           is reported for intervals 1 min, 5 min and 15 min. Defaults to
3086           false.
3087
3088   Plugin "logfile"
3089       LogLevel debug|info|notice|warning|err
3090           Sets the log-level. If, for example, set to notice, then all events
3091           with severity notice, warning, or err will be written to the
3092           logfile.
3093
3094           Please note that debug is only available if collectd has been
3095           compiled with debugging support.
3096
3097       File File
3098           Sets the file to write log messages to. The special strings stdout
3099           and stderr can be used to write to the standard output and standard
3100           error channels, respectively. This, of course, only makes much
3101           sense when collectd is running in foreground- or non-daemon-mode.
3102
3103       Timestamp true|false
3104           Prefix all lines printed by the current time. Defaults to true.
3105
3106       PrintSeverity true|false
3107           When enabled, all lines are prefixed by the severity of the log
3108           message, for example "warning". Defaults to false.
3109
3110       Note: There is no need to notify the daemon after moving or removing
3111       the log file (e. g. when rotating the logs). The plugin reopens the
3112       file for each line it writes.
3113
3114   Plugin "log_logstash"
3115       The log logstash plugin behaves like the logfile plugin but formats
3116       messages as JSON events for logstash to parse and input.
3117
3118       LogLevel debug|info|notice|warning|err
3119           Sets the log-level. If, for example, set to notice, then all events
3120           with severity notice, warning, or err will be written to the
3121           logfile.
3122
3123           Please note that debug is only available if collectd has been
3124           compiled with debugging support.
3125
3126       File File
3127           Sets the file to write log messages to. The special strings stdout
3128           and stderr can be used to write to the standard output and standard
3129           error channels, respectively. This, of course, only makes much
3130           sense when collectd is running in foreground- or non-daemon-mode.
3131
3132       Note: There is no need to notify the daemon after moving or removing
3133       the log file (e. g. when rotating the logs). The plugin reopens the
3134       file for each line it writes.
3135
3136   Plugin "lpar"
3137       The LPAR plugin reads CPU statistics of Logical Partitions, a
3138       virtualization technique for IBM POWER processors. It takes into
3139       account CPU time stolen from or donated to a partition, in addition to
3140       the usual user, system, I/O statistics.
3141
3142       The following configuration options are available:
3143
3144       CpuPoolStats false|true
3145           When enabled, statistics about the processor pool are read, too.
3146           The partition needs to have pool authority in order to be able to
3147           acquire this information.  Defaults to false.
3148
3149       ReportBySerial false|true
3150           If enabled, the serial of the physical machine the partition is
3151           currently running on is reported as hostname and the logical
3152           hostname of the machine is reported in the plugin instance.
3153           Otherwise, the logical hostname will be used (just like other
3154           plugins) and the plugin instance will be empty.  Defaults to false.
3155
3156   Plugin "lua"
3157       This plugin embeds a Lua interpreter into collectd and provides an
3158       interface to collectd's plugin system. See collectd-lua(5) for its
3159       documentation.
3160
3161   Plugin "mbmon"
3162       The "mbmon plugin" uses mbmon to retrieve temperature, voltage, etc.
3163
3164       Be default collectd connects to localhost (127.0.0.1), port 411/tcp.
3165       The Host and Port options can be used to change these values, see
3166       below.  "mbmon" has to be running to work correctly. If "mbmon" is not
3167       running timeouts may appear which may interfere with other statistics..
3168
3169       "mbmon" must be run with the -r option ("print TAG and Value format");
3170       Debian's /etc/init.d/mbmon script already does this, other people will
3171       need to ensure that this is the case.
3172
3173       Host Hostname
3174           Hostname to connect to. Defaults to 127.0.0.1.
3175
3176       Port Port
3177           TCP-Port to connect to. Defaults to 411.
3178
3179   Plugin "mcelog"
3180       The "mcelog plugin" uses mcelog to retrieve machine check exceptions.
3181
3182       By default the plugin connects to "/var/run/mcelog-client" to check if
3183       the mcelog server is running. When the server is running, the plugin
3184       will tail the specified logfile to retrieve machine check exception
3185       information and send a notification with the details from the logfile.
3186       The plugin will use the mcelog client protocol to retrieve memory
3187       related machine check exceptions. Note that for memory exceptions,
3188       notifications are only sent when there is a change in the number of
3189       corrected/uncorrected memory errors.
3190
3191       The Memory block
3192
3193       Note: these options cannot be used in conjunction with the logfile
3194       options, they are mutually exclusive.
3195
3196       McelogClientSocket Path Connect to the mcelog client socket using the
3197       UNIX domain socket at Path. Defaults to "/var/run/mcelog-client".
3198       PersistentNotification true|false Override default configuration to
3199       only send notifications when sent when there is a change in the number
3200       of corrected/uncorrected memory errors. When set to true notifications
3201       will be sent for every read cycle. Default is false. Does not affect
3202       the stats being dispatched.
3203       McelogLogfile Path
3204           The mcelog file to parse. Defaults to "/var/log/mcelog". Note: this
3205           option cannot be used in conjunction with the memory block options,
3206           they are mutually exclusive.
3207
3208   Plugin "md"
3209       The "md plugin" collects information from Linux Software-RAID devices
3210       (md).
3211
3212       All reported values are of the type "md_disks". Reported type instances
3213       are active, failed (present but not operational), spare (hot stand-by)
3214       and missing (physically absent) disks.
3215
3216       Device Device
3217           Select md devices based on device name. The device name is the
3218           basename of the device, i.e. the name of the block device without
3219           the leading "/dev/".  See IgnoreSelected for more details.
3220
3221           See /"IGNORELISTS" for details.
3222
3223       IgnoreSelected true|false
3224           Invert device selection: If set to true, all md devices except
3225           those listed using Device are collected. If false (the default),
3226           only those listed are collected. If no configuration is given, the
3227           md plugin will collect data from all md devices.
3228
3229   Plugin "memcachec"
3230       The "memcachec plugin" connects to a memcached server, queries one or
3231       more given pages and parses the returned data according to user
3232       specification.  The matches used are the same as the matches used in
3233       the "curl" and "tail" plugins.
3234
3235       In order to talk to the memcached server, this plugin uses the
3236       libmemcached library. Please note that there is another library with a
3237       very similar name, libmemcache (notice the missing `d'), which is not
3238       applicable.
3239
3240       Synopsis of the configuration:
3241
3242        <Plugin "memcachec">
3243          <Page "plugin_instance">
3244            Server "localhost"
3245            Key "page_key"
3246            Plugin "plugin_name"
3247            <Match>
3248              Regex "(\\d+) bytes sent"
3249              DSType CounterAdd
3250              Type "ipt_octets"
3251              Instance "type_instance"
3252            </Match>
3253          </Page>
3254        </Plugin>
3255
3256       The configuration options are:
3257
3258       <Page Name>
3259           Each Page block defines one page to be queried from the memcached
3260           server.  The block requires one string argument which is used as
3261           plugin instance.
3262
3263       Server Address
3264           Sets the server address to connect to when querying the page. Must
3265           be inside a Page block.
3266
3267       Key Key
3268           When connected to the memcached server, asks for the page Key.
3269
3270       Plugin Plugin
3271           Use Plugin as the plugin name when submitting values.  Defaults to
3272           "memcachec".
3273
3274       <Match>
3275           Match blocks define which strings to look for and how matches
3276           substrings are interpreted. For a description of match blocks,
3277           please see "Plugin tail".
3278
3279   Plugin "memcached"
3280       The memcached plugin connects to a memcached server and queries
3281       statistics about cache utilization, memory and bandwidth used.
3282       <http://memcached.org/>
3283
3284        <Plugin "memcached">
3285          <Instance "name">
3286            #Host "memcache.example.com"
3287            Address "127.0.0.1"
3288            Port 11211
3289          </Instance>
3290        </Plugin>
3291
3292       The plugin configuration consists of one or more Instance blocks which
3293       specify one memcached connection each. Within the Instance blocks, the
3294       following options are allowed:
3295
3296       Host Hostname
3297           Sets the host field of dispatched values. Defaults to the global
3298           hostname setting.  For backwards compatibility, values are also
3299           dispatched with the global hostname when Host is set to 127.0.0.1
3300           or localhost and Address is not set.
3301
3302       Address Address
3303           Hostname or IP to connect to. For backwards compatibility, defaults
3304           to the value of Host or 127.0.0.1 if Host is unset.
3305
3306       Port Port
3307           TCP port to connect to. Defaults to 11211.
3308
3309       Socket Path
3310           Connect to memcached using the UNIX domain socket at Path. If this
3311           setting is given, the Address and Port settings are ignored.
3312
3313   Plugin "mic"
3314       The mic plugin gathers CPU statistics, memory usage and temperatures
3315       from Intel's Many Integrated Core (MIC) systems.
3316
3317       Synopsis:
3318
3319        <Plugin mic>
3320          ShowCPU true
3321          ShowCPUCores true
3322          ShowMemory true
3323
3324          ShowTemperatures true
3325          Temperature vddg
3326          Temperature vddq
3327          IgnoreSelectedTemperature true
3328
3329          ShowPower true
3330          Power total0
3331          Power total1
3332          IgnoreSelectedPower true
3333        </Plugin>
3334
3335       The following options are valid inside the Plugin mic block:
3336
3337       ShowCPU true|false
3338           If enabled (the default) a sum of the CPU usage across all cores is
3339           reported.
3340
3341       ShowCPUCores true|false
3342           If enabled (the default) per-core CPU usage is reported.
3343
3344       ShowMemory true|false
3345           If enabled (the default) the physical memory usage of the MIC
3346           system is reported.
3347
3348       ShowTemperatures true|false
3349           If enabled (the default) various temperatures of the MIC system are
3350           reported.
3351
3352       Temperature Name
3353           This option controls which temperatures are being reported. Whether
3354           matching temperatures are being ignored or only matching
3355           temperatures are reported depends on the IgnoreSelectedTemperature
3356           setting below. By default all temperatures are reported.
3357
3358       IgnoreSelectedTemperature false|true
3359           Controls the behavior of the Temperature setting above. If set to
3360           false (the default) only temperatures matching a Temperature option
3361           are reported or, if no Temperature option is specified, all
3362           temperatures are reported. If set to true, matching temperatures
3363           are ignored and all other temperatures are reported.
3364
3365           Known temperature names are:
3366
3367           die Die of the CPU
3368
3369           devmem
3370               Device Memory
3371
3372           fin Fan In
3373
3374           fout
3375               Fan Out
3376
3377           vccp
3378               Voltage ccp
3379
3380           vddg
3381               Voltage ddg
3382
3383           vddq
3384               Voltage ddq
3385
3386       ShowPower true|false
3387           If enabled (the default) various temperatures of the MIC system are
3388           reported.
3389
3390       Power Name
3391           This option controls which power readings are being reported.
3392           Whether matching power readings are being ignored or only matching
3393           power readings are reported depends on the IgnoreSelectedPower
3394           setting below. By default all power readings are reported.
3395
3396       IgnoreSelectedPower false|true
3397           Controls the behavior of the Power setting above. If set to false
3398           (the default) only power readings matching a Power option are
3399           reported or, if no Power option is specified, all power readings
3400           are reported. If set to true, matching power readings are ignored
3401           and all other power readings are reported.
3402
3403           Known power names are:
3404
3405           total0
3406               Total power utilization averaged over Time Window 0 (uWatts).
3407
3408           total1
3409               Total power utilization averaged over Time Window 0 (uWatts).
3410
3411           inst
3412               Instantaneous power (uWatts).
3413
3414           imax
3415               Max instantaneous power (uWatts).
3416
3417           pcie
3418               PCI-E connector power (uWatts).
3419
3420           c2x3
3421               2x3 connector power (uWatts).
3422
3423           c2x4
3424               2x4 connector power (uWatts).
3425
3426           vccp
3427               Core rail (uVolts).
3428
3429           vddg
3430               Uncore rail (uVolts).
3431
3432           vddq
3433               Memory subsystem rail (uVolts).
3434
3435   Plugin "memory"
3436       The memory plugin provides the following configuration options:
3437
3438       ValuesAbsolute true|false
3439           Enables or disables reporting of physical memory usage in absolute
3440           numbers, i.e. bytes. Defaults to true.
3441
3442       ValuesPercentage false|true
3443           Enables or disables reporting of physical memory usage in
3444           percentages, e.g.  percent of physical memory used. Defaults to
3445           false.
3446
3447           This is useful for deploying collectd in a heterogeneous
3448           environment in which the sizes of physical memory vary.
3449
3450   Plugin "modbus"
3451       The modbus plugin connects to a Modbus "slave" via Modbus/TCP or
3452       Modbus/RTU and reads register values. It supports reading single
3453       registers (unsigned 16 bit values), large integer values (unsigned
3454       32 bit values) and floating point values (two registers interpreted as
3455       IEEE floats in big endian notation).
3456
3457       Synopsis:
3458
3459        <Data "voltage-input-1">
3460          RegisterBase 0
3461          RegisterType float
3462          RegisterCmd ReadHolding
3463          Type voltage
3464          Instance "input-1"
3465        </Data>
3466
3467        <Data "voltage-input-2">
3468          RegisterBase 2
3469          RegisterType float
3470          RegisterCmd ReadHolding
3471          Type voltage
3472          Instance "input-2"
3473        </Data>
3474
3475        <Data "supply-temperature-1">
3476          RegisterBase 0
3477          RegisterType Int16
3478          RegisterCmd ReadHolding
3479          Type temperature
3480          Instance "temp-1"
3481        </Data>
3482
3483        <Host "modbus.example.com">
3484          Address "192.168.0.42"
3485          Port    "502"
3486          Interval 60
3487
3488          <Slave 1>
3489            Instance "power-supply"
3490            Collect  "voltage-input-1"
3491            Collect  "voltage-input-2"
3492          </Slave>
3493        </Host>
3494
3495        <Host "localhost">
3496          Device "/dev/ttyUSB0"
3497          Baudrate 38400
3498          Interval 20
3499
3500          <Slave 1>
3501            Instance "temperature"
3502            Collect  "supply-temperature-1"
3503          </Slave>
3504        </Host>
3505
3506       <Data Name> blocks
3507           Data blocks define a mapping between register numbers and the
3508           "types" used by collectd.
3509
3510           Within <Data /> blocks, the following options are allowed:
3511
3512           RegisterBase Number
3513               Configures the base register to read from the device. If the
3514               option RegisterType has been set to Uint32 or Float, this and
3515               the next register will be read (the register number is
3516               increased by one).
3517
3518           RegisterType Int16|Int32|Uint16|Uint32|Float
3519               Specifies what kind of data is returned by the device. If the
3520               type is Int32, Uint32 or Float, two 16 bit registers will be
3521               read and the data is combined into one value. Defaults to
3522               Uint16.
3523
3524           RegisterCmd ReadHolding|ReadInput
3525               Specifies register type to be collected from device. Works only
3526               with libmodbus 2.9.2 or higher. Defaults to ReadHolding.
3527
3528           Type Type
3529               Specifies the "type" (data set) to use when dispatching the
3530               value to collectd. Currently, only data sets with exactly one
3531               data source are supported.
3532
3533           Instance Instance
3534               Sets the type instance to use when dispatching the value to
3535               collectd. If unset, an empty string (no type instance) is used.
3536
3537       <Host Name> blocks
3538           Host blocks are used to specify to which hosts to connect and what
3539           data to read from their "slaves". The string argument Name is used
3540           as hostname when dispatching the values to collectd.
3541
3542           Within <Host /> blocks, the following options are allowed:
3543
3544           Address Hostname
3545               For Modbus/TCP, specifies the node name (the actual network
3546               address) used to connect to the host. This may be an IP address
3547               or a hostname. Please note that the used libmodbus library only
3548               supports IPv4 at the moment.
3549
3550           Port Service
3551               for Modbus/TCP, specifies the port used to connect to the host.
3552               The port can either be given as a number or as a service name.
3553               Please note that the Service argument must be a string, even if
3554               ports are given in their numerical form. Defaults to "502".
3555
3556           Device Devicenode
3557               For Modbus/RTU, specifies the path to the serial device being
3558               used.
3559
3560           Baudrate Baudrate
3561               For Modbus/RTU, specifies the baud rate of the serial device.
3562               Note, connections currently support only 8/N/1.
3563
3564           Interval Interval
3565               Sets the interval (in seconds) in which the values will be
3566               collected from this host. By default the global Interval
3567               setting will be used.
3568
3569           <Slave ID>
3570               Over each connection, multiple Modbus devices may be reached.
3571               The slave ID is used to specify which device should be
3572               addressed. For each device you want to query, one Slave block
3573               must be given.
3574
3575               Within <Slave /> blocks, the following options are allowed:
3576
3577               Instance Instance
3578                   Specify the plugin instance to use when dispatching the
3579                   values to collectd.  By default "slave_ID" is used.
3580
3581               Collect DataName
3582                   Specifies which data to retrieve from the device. DataName
3583                   must be the same string as the Name argument passed to a
3584                   Data block. You can specify this option multiple times to
3585                   collect more than one value from a slave. At least one
3586                   Collect option is mandatory.
3587
3588   Plugin "mqtt"
3589       The MQTT plugin can send metrics to MQTT (Publish blocks) and receive
3590       values from MQTT (Subscribe blocks).
3591
3592       Synopsis:
3593
3594        <Plugin mqtt>
3595          <Publish "name">
3596            Host "mqtt.example.com"
3597            Prefix "collectd"
3598          </Publish>
3599          <Subscribe "name">
3600            Host "mqtt.example.com"
3601            Topic "collectd/#"
3602          </Subscribe>
3603        </Plugin>
3604
3605       The plugin's configuration is in Publish and/or Subscribe blocks,
3606       configuring the sending and receiving direction respectively. The
3607       plugin will register a write callback named "mqtt/name" where name is
3608       the string argument given to the Publish block. Both types of blocks
3609       share many but not all of the following options. If an option is valid
3610       in only one of the blocks, it will be mentioned explicitly.
3611
3612       Options:
3613
3614       Host Hostname
3615           Hostname of the MQTT broker to connect to.
3616
3617       Port Service
3618           Port number or service name of the MQTT broker to connect to.
3619
3620       User UserName
3621           Username used when authenticating to the MQTT broker.
3622
3623       Password Password
3624           Password used when authenticating to the MQTT broker.
3625
3626       ClientId ClientId
3627           MQTT client ID to use. Defaults to the hostname used by collectd.
3628
3629       QoS [0-2]
3630           Sets the Quality of Service, with the values 0, 1 and 2 meaning:
3631
3632           0   At most once
3633
3634           1   At least once
3635
3636           2   Exactly once
3637
3638           In Publish blocks, this option determines the QoS flag set on
3639           outgoing messages and defaults to 0. In Subscribe blocks,
3640           determines the maximum QoS setting the client is going to accept
3641           and defaults to 2. If the QoS flag on a message is larger than the
3642           maximum accepted QoS of a subscriber, the message's QoS will be
3643           downgraded.
3644
3645       Prefix Prefix (Publish only)
3646           This plugin will use one topic per value list which will looks like
3647           a path.  Prefix is used as the first path element and defaults to
3648           collectd.
3649
3650           An example topic name would be:
3651
3652            collectd/cpu-0/cpu-user
3653
3654       Retain false|true (Publish only)
3655           Controls whether the MQTT broker will retain (keep a copy of) the
3656           last message sent to each topic and deliver it to new subscribers.
3657           Defaults to false.
3658
3659       StoreRates true|false (Publish only)
3660           Controls whether "DERIVE" and "COUNTER" metrics are converted to a
3661           rate before sending. Defaults to true.
3662
3663       CleanSession true|false (Subscribe only)
3664           Controls whether the MQTT "cleans" the session up after the
3665           subscriber disconnects or if it maintains the subscriber's
3666           subscriptions and all messages that arrive while the subscriber is
3667           disconnected. Defaults to true.
3668
3669       Topic TopicName (Subscribe only)
3670           Configures the topic(s) to subscribe to. You can use the single
3671           level "+" and multi level "#" wildcards. Defaults to collectd/#,
3672           i.e. all topics beneath the collectd branch.
3673
3674       CACert file
3675           Path to the PEM-encoded CA certificate file. Setting this option
3676           enables TLS communication with the MQTT broker, and as such, Port
3677           should be the TLS-enabled port of the MQTT broker.  This option
3678           enables the use of TLS.
3679
3680       CertificateFile file
3681           Path to the PEM-encoded certificate file to use as client
3682           certificate when connecting to the MQTT broker.  Only valid if
3683           CACert and CertificateKeyFile are also set.
3684
3685       CertificateKeyFile file
3686           Path to the unencrypted PEM-encoded key file corresponding to
3687           CertificateFile.  Only valid if CACert and CertificateFile are also
3688           set.
3689
3690       TLSProtocol protocol
3691           If configured, this specifies the string protocol version (e.g.
3692           "tlsv1", "tlsv1.2") to use for the TLS connection to the broker. If
3693           not set a default version is used which depends on the version of
3694           OpenSSL the Mosquitto library was linked against.  Only valid if
3695           CACert is set.
3696
3697       CipherSuite ciphersuite
3698           A string describing the ciphers available for use. See ciphers(1)
3699           and the "openssl ciphers" utility for more information. If unset,
3700           the default ciphers will be used.  Only valid if CACert is set.
3701
3702   Plugin "mysql"
3703       The "mysql plugin" requires mysqlclient to be installed. It connects to
3704       one or more databases when started and keeps the connection up as long
3705       as possible. When the connection is interrupted for whatever reason it
3706       will try to re-connect. The plugin will complain loudly in case
3707       anything goes wrong.
3708
3709       This plugin issues the MySQL "SHOW STATUS" / "SHOW GLOBAL STATUS"
3710       command and collects information about MySQL network traffic, executed
3711       statements, requests, the query cache and threads by evaluating the
3712       "Bytes_{received,sent}", "Com_*", "Handler_*", "Qcache_*" and
3713       "Threads_*" return values. Please refer to the MySQL reference manual,
3714       5.1.6. Server Status Variables for an explanation of these values.
3715
3716       Optionally, master and slave statistics may be collected in a MySQL
3717       replication setup. In that case, information about the synchronization
3718       state of the nodes are collected by evaluating the "Position" return
3719       value of the "SHOW MASTER STATUS" command and the
3720       "Seconds_Behind_Master", "Read_Master_Log_Pos" and
3721       "Exec_Master_Log_Pos" return values of the "SHOW SLAVE STATUS" command.
3722       See the MySQL reference manual, 12.5.5.21 SHOW MASTER STATUS Syntax and
3723       12.5.5.31 SHOW SLAVE STATUS Syntax for details.
3724
3725       Synopsis:
3726
3727         <Plugin mysql>
3728           <Database foo>
3729             Host "hostname"
3730             User "username"
3731             Password "password"
3732             Port "3306"
3733             MasterStats true
3734             ConnectTimeout 10
3735             SSLKey "/path/to/key.pem"
3736             SSLCert "/path/to/cert.pem"
3737             SSLCA "/path/to/ca.pem"
3738             SSLCAPath "/path/to/cas/"
3739             SSLCipher "DHE-RSA-AES256-SHA"
3740           </Database>
3741
3742           <Database bar>
3743             Alias "squeeze"
3744             Host "localhost"
3745             Socket "/var/run/mysql/mysqld.sock"
3746             SlaveStats true
3747             SlaveNotifications true
3748           </Database>
3749
3750          <Database galera>
3751             Alias "galera"
3752             Host "localhost"
3753             Socket "/var/run/mysql/mysqld.sock"
3754             WsrepStats true
3755          </Database>
3756         </Plugin>
3757
3758       A Database block defines one connection to a MySQL database. It accepts
3759       a single argument which specifies the name of the database. None of the
3760       other options are required. MySQL will use default values as documented
3761       in the "mysql_real_connect()" and "mysql_ssl_set()" sections in the
3762       MySQL reference manual.
3763
3764       Alias Alias
3765           Alias to use as sender instead of hostname when reporting. This may
3766           be useful when having cryptic hostnames.
3767
3768       Host Hostname
3769           Hostname of the database server. Defaults to localhost.
3770
3771       User Username
3772           Username to use when connecting to the database. The user does not
3773           have to be granted any privileges (which is synonym to granting the
3774           "USAGE" privilege), unless you want to collectd replication
3775           statistics (see MasterStats and SlaveStats below). In this case,
3776           the user needs the "REPLICATION CLIENT" (or "SUPER") privileges.
3777           Else, any existing MySQL user will do.
3778
3779       Password Password
3780           Password needed to log into the database.
3781
3782       Database Database
3783           Select this database. Defaults to no database which is a perfectly
3784           reasonable option for what this plugin does.
3785
3786       Port Port
3787           TCP-port to connect to. The port must be specified in its numeric
3788           form, but it must be passed as a string nonetheless. For example:
3789
3790             Port "3306"
3791
3792           If Host is set to localhost (the default), this setting has no
3793           effect.  See the documentation for the "mysql_real_connect"
3794           function for details.
3795
3796       Socket Socket
3797           Specifies the path to the UNIX domain socket of the MySQL server.
3798           This option only has any effect, if Host is set to localhost (the
3799           default).  Otherwise, use the Port option above. See the
3800           documentation for the "mysql_real_connect" function for details.
3801
3802       InnodbStats true|false
3803           If enabled, metrics about the InnoDB storage engine are collected.
3804           Disabled by default.
3805
3806       MasterStats true|false
3807       SlaveStats true|false
3808           Enable the collection of master / slave statistics in a replication
3809           setup. In order to be able to get access to these statistics, the
3810           user needs special privileges. See the User documentation above.
3811           Defaults to false.
3812
3813       SlaveNotifications true|false
3814           If enabled, the plugin sends a notification if the replication
3815           slave I/O and / or SQL threads are not running. Defaults to false.
3816
3817       WsrepStats true|false
3818            Enable the collection of wsrep plugin statistics, used in Master-Master
3819            replication setups like in MySQL Galera/Percona XtraDB Cluster.
3820            User needs only privileges to execute 'SHOW GLOBAL STATUS'
3821
3822       ConnectTimeout Seconds
3823           Sets the connect timeout for the MySQL client.
3824
3825       SSLKey Path
3826           If provided, the X509 key in PEM format.
3827
3828       SSLCert Path
3829           If provided, the X509 cert in PEM format.
3830
3831       SSLCA Path
3832           If provided, the CA file in PEM format (check OpenSSL docs).
3833
3834       SSLCAPath Path
3835           If provided, the CA directory (check OpenSSL docs).
3836
3837       SSLCipher String
3838           If provided, the SSL cipher to use.
3839
3840   Plugin "netapp"
3841       The netapp plugin can collect various performance and capacity
3842       information from a NetApp filer using the NetApp API.
3843
3844       Please note that NetApp has a wide line of products and a lot of
3845       different software versions for each of these products. This plugin was
3846       developed for a NetApp FAS3040 running OnTap 7.2.3P8 and tested on
3847       FAS2050 7.3.1.1L1, FAS3140 7.2.5.1 and FAS3020 7.2.4P9. It should work
3848       for most combinations of model and software version but it is very hard
3849       to test this.  If you have used this plugin with other models and/or
3850       software version, feel free to send us a mail to tell us about the
3851       results, even if it's just a short "It works".
3852
3853       To collect these data collectd will log in to the NetApp via HTTP(S)
3854       and HTTP basic authentication.
3855
3856       Do not use a regular user for this! Create a special collectd user with
3857       just the minimum of capabilities needed. The user only needs the
3858       "login-http-admin" capability as well as a few more depending on which
3859       data will be collected.  Required capabilities are documented below.
3860
3861       Synopsis
3862
3863        <Plugin "netapp">
3864          <Host "netapp1.example.com">
3865           Protocol      "https"
3866           Address       "10.0.0.1"
3867           Port          443
3868           User          "username"
3869           Password      "aef4Aebe"
3870           Interval      30
3871
3872           <WAFL>
3873             Interval 30
3874             GetNameCache   true
3875             GetDirCache    true
3876             GetBufferCache true
3877             GetInodeCache  true
3878           </WAFL>
3879
3880           <Disks>
3881             Interval 30
3882             GetBusy true
3883           </Disks>
3884
3885           <VolumePerf>
3886             Interval 30
3887             GetIO      "volume0"
3888             IgnoreSelectedIO      false
3889             GetOps     "volume0"
3890             IgnoreSelectedOps     false
3891             GetLatency "volume0"
3892             IgnoreSelectedLatency false
3893           </VolumePerf>
3894
3895           <VolumeUsage>
3896             Interval 30
3897             GetCapacity "vol0"
3898             GetCapacity "vol1"
3899             IgnoreSelectedCapacity false
3900             GetSnapshot "vol1"
3901             GetSnapshot "vol3"
3902             IgnoreSelectedSnapshot false
3903           </VolumeUsage>
3904
3905           <Quota>
3906             Interval 60
3907           </Quota>
3908
3909           <Snapvault>
3910             Interval 30
3911           </Snapvault>
3912
3913           <System>
3914             Interval 30
3915             GetCPULoad     true
3916             GetInterfaces  true
3917             GetDiskOps     true
3918             GetDiskIO      true
3919           </System>
3920
3921           <VFiler vfilerA>
3922             Interval 60
3923
3924             SnapVault true
3925             # ...
3926           </VFiler>
3927          </Host>
3928        </Plugin>
3929
3930       The netapp plugin accepts the following configuration options:
3931
3932       Host Name
3933           A host block defines one NetApp filer. It will appear in collectd
3934           with the name you specify here which does not have to be its real
3935           name nor its hostname (see the Address option below).
3936
3937       VFiler Name
3938           A VFiler block may only be used inside a host block. It accepts all
3939           the same options as the Host block (except for cascaded VFiler
3940           blocks) and will execute all NetApp API commands in the context of
3941           the specified VFiler(R). It will appear in collectd with the name
3942           you specify here which does not have to be its real name. The
3943           VFiler name may be specified using the VFilerName option. If this
3944           is not specified, it will default to the name you specify here.
3945
3946           The VFiler block inherits all connection related settings from the
3947           surrounding Host block (which appear before the VFiler block) but
3948           they may be overwritten inside the VFiler block.
3949
3950           This feature is useful, for example, when using a VFiler as
3951           SnapVault target (supported since OnTap 8.1). In that case, the
3952           SnapVault statistics are not available in the host filer (vfiler0)
3953           but only in the respective VFiler context.
3954
3955       Protocol httpd|http
3956           The protocol collectd will use to query this host.
3957
3958           Optional
3959
3960           Type: string
3961
3962           Default: https
3963
3964           Valid options: http, https
3965
3966       Address Address
3967           The hostname or IP address of the host.
3968
3969           Optional
3970
3971           Type: string
3972
3973           Default: The "host" block's name.
3974
3975       Port Port
3976           The TCP port to connect to on the host.
3977
3978           Optional
3979
3980           Type: integer
3981
3982           Default: 80 for protocol "http", 443 for protocol "https"
3983
3984       User User
3985       Password Password
3986           The username and password to use to login to the NetApp.
3987
3988           Mandatory
3989
3990           Type: string
3991
3992       VFilerName Name
3993           The name of the VFiler in which context to execute API commands. If
3994           not specified, the name provided to the VFiler block will be used
3995           instead.
3996
3997           Optional
3998
3999           Type: string
4000
4001           Default: name of the VFiler block
4002
4003           Note: This option may only be used inside VFiler blocks.
4004
4005       Interval Interval
4006           TODO
4007
4008       The following options decide what kind of data will be collected. You
4009       can either use them as a block and fine tune various parameters inside
4010       this block, use them as a single statement to just accept all default
4011       values, or omit it to not collect any data.
4012
4013       The following options are valid inside all blocks:
4014
4015       Interval Seconds
4016           Collect the respective statistics every Seconds seconds. Defaults
4017           to the host specific setting.
4018
4019       The System block
4020
4021       This will collect various performance data about the whole system.
4022
4023       Note: To get this data the collectd user needs the "api-perf-object-
4024       get-instances" capability.
4025
4026       Interval Seconds
4027           Collect disk statistics every Seconds seconds.
4028
4029       GetCPULoad true|false
4030           If you set this option to true the current CPU usage will be read.
4031           This will be the average usage between all CPUs in your NetApp
4032           without any information about individual CPUs.
4033
4034           Note: These are the same values that the NetApp CLI command
4035           "sysstat" returns in the "CPU" field.
4036
4037           Optional
4038
4039           Type: boolean
4040
4041           Default: true
4042
4043           Result: Two value lists of type "cpu", and type instances "idle"
4044           and "system".
4045
4046       GetInterfaces true|false
4047           If you set this option to true the current traffic of the network
4048           interfaces will be read. This will be the total traffic over all
4049           interfaces of your NetApp without any information about individual
4050           interfaces.
4051
4052           Note: This is the same values that the NetApp CLI command "sysstat"
4053           returns in the "Net kB/s" field.
4054
4055           Or is it?
4056
4057           Optional
4058
4059           Type: boolean
4060
4061           Default: true
4062
4063           Result: One value list of type "if_octects".
4064
4065       GetDiskIO true|false
4066           If you set this option to true the current IO throughput will be
4067           read. This will be the total IO of your NetApp without any
4068           information about individual disks, volumes or aggregates.
4069
4070           Note: This is the same values that the NetApp CLI command "sysstat"
4071           returns in the "Disk kB/s" field.
4072
4073           Optional
4074
4075           Type: boolean
4076
4077           Default: true
4078
4079           Result: One value list of type "disk_octets".
4080
4081       GetDiskOps true|false
4082           If you set this option to true the current number of HTTP, NFS,
4083           CIFS, FCP, iSCSI, etc. operations will be read. This will be the
4084           total number of operations on your NetApp without any information
4085           about individual volumes or aggregates.
4086
4087           Note: These are the same values that the NetApp CLI command
4088           "sysstat" returns in the "NFS", "CIFS", "HTTP", "FCP" and "iSCSI"
4089           fields.
4090
4091           Optional
4092
4093           Type: boolean
4094
4095           Default: true
4096
4097           Result: A variable number of value lists of type
4098           "disk_ops_complex". Each type of operation will result in one value
4099           list with the name of the operation as type instance.
4100
4101       The WAFL block
4102
4103       This will collect various performance data about the WAFL file system.
4104       At the moment this just means cache performance.
4105
4106       Note: To get this data the collectd user needs the "api-perf-object-
4107       get-instances" capability.
4108
4109       Note: The interface to get these values is classified as "Diagnostics"
4110       by NetApp. This means that it is not guaranteed to be stable even
4111       between minor releases.
4112
4113       Interval Seconds
4114           Collect disk statistics every Seconds seconds.
4115
4116       GetNameCache true|false
4117           Optional
4118
4119           Type: boolean
4120
4121           Default: true
4122
4123           Result: One value list of type "cache_ratio" and type instance
4124           "name_cache_hit".
4125
4126       GetDirCache true|false
4127           Optional
4128
4129           Type: boolean
4130
4131           Default: true
4132
4133           Result: One value list of type "cache_ratio" and type instance
4134           "find_dir_hit".
4135
4136       GetInodeCache true|false
4137           Optional
4138
4139           Type: boolean
4140
4141           Default: true
4142
4143           Result: One value list of type "cache_ratio" and type instance
4144           "inode_cache_hit".
4145
4146       GetBufferCache true|false
4147           Note: This is the same value that the NetApp CLI command "sysstat"
4148           returns in the "Cache hit" field.
4149
4150           Optional
4151
4152           Type: boolean
4153
4154           Default: true
4155
4156           Result: One value list of type "cache_ratio" and type instance
4157           "buf_hash_hit".
4158
4159       The Disks block
4160
4161       This will collect performance data about the individual disks in the
4162       NetApp.
4163
4164       Note: To get this data the collectd user needs the "api-perf-object-
4165       get-instances" capability.
4166
4167       Interval Seconds
4168           Collect disk statistics every Seconds seconds.
4169
4170       GetBusy true|false
4171           If you set this option to true the busy time of all disks will be
4172           calculated and the value of the busiest disk in the system will be
4173           written.
4174
4175           Note: This is the same values that the NetApp CLI command "sysstat"
4176           returns in the "Disk util" field. Probably.
4177
4178           Optional
4179
4180           Type: boolean
4181
4182           Default: true
4183
4184           Result: One value list of type "percent" and type instance
4185           "disk_busy".
4186
4187       The VolumePerf block
4188
4189       This will collect various performance data about the individual
4190       volumes.
4191
4192       You can select which data to collect about which volume using the
4193       following options. They follow the standard ignorelist semantic.
4194
4195       Note: To get this data the collectd user needs the api-perf-object-get-
4196       instances capability.
4197
4198       Interval Seconds
4199           Collect volume performance data every Seconds seconds.
4200
4201       GetIO Volume
4202       GetOps Volume
4203       GetLatency Volume
4204           Select the given volume for IO, operations or latency statistics
4205           collection.  The argument is the name of the volume without the
4206           "/vol/" prefix.
4207
4208           Since the standard ignorelist functionality is used here, you can
4209           use a string starting and ending with a slash to specify regular
4210           expression matching: To match the volumes "vol0", "vol2" and
4211           "vol7", you can use this regular expression:
4212
4213             GetIO "/^vol[027]$/"
4214
4215           If no regular expression is specified, an exact match is required.
4216           Both, regular and exact matching are case sensitive.
4217
4218           If no volume was specified at all for either of the three options,
4219           that data will be collected for all available volumes.
4220
4221           See /"IGNORELISTS" for details.
4222
4223       IgnoreSelectedIO true|false
4224       IgnoreSelectedOps true|false
4225       IgnoreSelectedLatency true|false
4226           When set to true, the volumes selected for IO, operations or
4227           latency statistics collection will be ignored and the data will be
4228           collected for all other volumes.
4229
4230           When set to false, data will only be collected for the specified
4231           volumes and all other volumes will be ignored.
4232
4233           If no volumes have been specified with the above Get* options, all
4234           volumes will be collected regardless of the IgnoreSelected* option.
4235
4236           Defaults to false
4237
4238       The VolumeUsage block
4239
4240       This will collect capacity data about the individual volumes.
4241
4242       Note: To get this data the collectd user needs the api-volume-list-info
4243       capability.
4244
4245       Interval Seconds
4246           Collect volume usage statistics every Seconds seconds.
4247
4248       GetCapacity VolumeName
4249           The current capacity of the volume will be collected. This will
4250           result in two to four value lists, depending on the configuration
4251           of the volume. All data sources are of type "df_complex" with the
4252           name of the volume as plugin_instance.
4253
4254           There will be type_instances "used" and "free" for the number of
4255           used and available bytes on the volume.  If the volume has some
4256           space reserved for snapshots, a type_instance "snap_reserved" will
4257           be available.  If the volume has SIS enabled, a type_instance
4258           "sis_saved" will be available. This is the number of bytes saved by
4259           the SIS feature.
4260
4261           Note: The current NetApp API has a bug that results in this value
4262           being reported as a 32 bit number. This plugin tries to guess the
4263           correct number which works most of the time.  If you see strange
4264           values here, bug NetApp support to fix this.
4265
4266           Repeat this option to specify multiple volumes.
4267
4268       IgnoreSelectedCapacity true|false
4269           Specify whether to collect only the volumes selected by the
4270           GetCapacity option or to ignore those volumes.
4271           IgnoreSelectedCapacity defaults to false. However, if no
4272           GetCapacity option is specified at all, all capacities will be
4273           selected anyway.
4274
4275       GetSnapshot VolumeName
4276           Select volumes from which to collect snapshot information.
4277
4278           Usually, the space used for snapshots is included in the space
4279           reported as "used". If snapshot information is collected as well,
4280           the space used for snapshots is subtracted from the used space.
4281
4282           To make things even more interesting, it is possible to reserve
4283           space to be used for snapshots. If the space required for snapshots
4284           is less than that reserved space, there is "reserved free" and
4285           "reserved used" space in addition to "free" and "used". If the
4286           space required for snapshots exceeds the reserved space, that part
4287           allocated in the normal space is subtracted from the "used" space
4288           again.
4289
4290           Repeat this option to specify multiple volumes.
4291
4292       IgnoreSelectedSnapshot
4293           Specify whether to collect only the volumes selected by the
4294           GetSnapshot option or to ignore those volumes.
4295           IgnoreSelectedSnapshot defaults to false. However, if no
4296           GetSnapshot option is specified at all, all capacities will be
4297           selected anyway.
4298
4299       The Quota block
4300
4301       This will collect (tree) quota statistics (used disk space and number
4302       of used files). This mechanism is useful to get usage information for
4303       single qtrees.  In case the quotas are not used for any other purpose,
4304       an entry similar to the following in "/etc/quotas" would be sufficient:
4305
4306         /vol/volA/some_qtree tree - - - - -
4307
4308       After adding the entry, issue "quota on -w volA" on the NetApp filer.
4309
4310       Interval Seconds
4311           Collect SnapVault(R) statistics every Seconds seconds.
4312
4313       The SnapVault block
4314
4315       This will collect statistics about the time and traffic of SnapVault(R)
4316       transfers.
4317
4318       Interval Seconds
4319           Collect SnapVault(R) statistics every Seconds seconds.
4320
4321   Plugin "netlink"
4322       The "netlink" plugin uses a netlink socket to query the Linux kernel
4323       about statistics of various interface and routing aspects.
4324
4325       Interface Interface
4326       VerboseInterface Interface
4327           Instruct the plugin to collect interface statistics. This is
4328           basically the same as the statistics provided by the "interface"
4329           plugin (see above) but potentially much more detailed.
4330
4331           When configuring with Interface only the basic statistics will be
4332           collected, namely octets, packets, and errors. These statistics are
4333           collected by the "interface" plugin, too, so using both at the same
4334           time is no benefit.
4335
4336           When configured with VerboseInterface all counters except the basic
4337           ones, so that no data needs to be collected twice if you use the
4338           "interface" plugin.  This includes dropped packets, received
4339           multicast packets, collisions and a whole zoo of differentiated RX
4340           and TX errors. You can try the following command to get an idea of
4341           what awaits you:
4342
4343             ip -s -s link list
4344
4345           If Interface is All, all interfaces will be selected.
4346
4347       QDisc Interface [QDisc]
4348       Class Interface [Class]
4349       Filter Interface [Filter]
4350           Collect the octets and packets that pass a certain qdisc, class or
4351           filter.
4352
4353           QDiscs and classes are identified by their type and handle (or
4354           classid).  Filters don't necessarily have a handle, therefore the
4355           parent's handle is used.  The notation used in collectd differs
4356           from that used in tc(1) in that it doesn't skip the major or minor
4357           number if it's zero and doesn't print special ids by their name.
4358           So, for example, a qdisc may be identified by "pfifo_fast-1:0" even
4359           though the minor number of all qdiscs is zero and thus not
4360           displayed by tc(1).
4361
4362           If QDisc, Class, or Filter is given without the second argument,
4363           i. .e. without an identifier, all qdiscs, classes, or filters that
4364           are associated with that interface will be collected.
4365
4366           Since a filter itself doesn't necessarily have a handle, the
4367           parent's handle is used. This may lead to problems when more than
4368           one filter is attached to a qdisc or class. This isn't nice, but we
4369           don't know how this could be done any better. If you have a idea,
4370           please don't hesitate to tell us.
4371
4372           As with the Interface option you can specify All as the interface,
4373           meaning all interfaces.
4374
4375           Here are some examples to help you understand the above text more
4376           easily:
4377
4378             <Plugin netlink>
4379               VerboseInterface "All"
4380               QDisc "eth0" "pfifo_fast-1:0"
4381               QDisc "ppp0"
4382               Class "ppp0" "htb-1:10"
4383               Filter "ppp0" "u32-1:0"
4384             </Plugin>
4385
4386           See /"IGNORELISTS" for details.
4387
4388       IgnoreSelected
4389           The behavior is the same as with all other similar plugins: If
4390           nothing is selected at all, everything is collected. If some things
4391           are selected using the options described above, only these
4392           statistics are collected. If you set IgnoreSelected to true, this
4393           behavior is inverted, i. e. the specified statistics will not be
4394           collected.
4395
4396   Plugin "network"
4397       The Network plugin sends data to a remote instance of collectd,
4398       receives data from a remote instance, or both at the same time. Data
4399       which has been received from the network is usually not transmitted
4400       again, but this can be activated, see the Forward option below.
4401
4402       The default IPv6 multicast group is "ff18::efc0:4a42". The default IPv4
4403       multicast group is 239.192.74.66. The default UDP port is 25826.
4404
4405       Both, Server and Listen can be used as single option or as block. When
4406       used as block, given options are valid for this socket only. The
4407       following example will export the metrics twice: Once to an "internal"
4408       server (without encryption and signing) and one to an external server
4409       (with cryptographic signature):
4410
4411        <Plugin "network">
4412          # Export to an internal server
4413          # (demonstrates usage without additional options)
4414          Server "collectd.internal.tld"
4415
4416          # Export to an external server
4417          # (demonstrates usage with signature options)
4418          <Server "collectd.external.tld">
4419            SecurityLevel "sign"
4420            Username "myhostname"
4421            Password "ohl0eQue"
4422          </Server>
4423        </Plugin>
4424
4425       <Server Host [Port]>
4426           The Server statement/block sets the server to send datagrams to.
4427           The statement may occur multiple times to send each datagram to
4428           multiple destinations.
4429
4430           The argument Host may be a hostname, an IPv4 address or an IPv6
4431           address. The optional second argument specifies a port number or a
4432           service name. If not given, the default, 25826, is used.
4433
4434           The following options are recognized within Server blocks:
4435
4436           SecurityLevel Encrypt|Sign|None
4437               Set the security you require for network communication. When
4438               the security level has been set to Encrypt, data sent over the
4439               network will be encrypted using AES-256. The integrity of
4440               encrypted packets is ensured using SHA-1. When set to Sign,
4441               transmitted data is signed using the HMAC-SHA-256 message
4442               authentication code. When set to None, data is sent without any
4443               security.
4444
4445               This feature is only available if the network plugin was linked
4446               with libgcrypt.
4447
4448           Username Username
4449               Sets the username to transmit. This is used by the server to
4450               lookup the password. See AuthFile below. All security levels
4451               except None require this setting.
4452
4453               This feature is only available if the network plugin was linked
4454               with libgcrypt.
4455
4456           Password Password
4457               Sets a password (shared secret) for this socket. All security
4458               levels except None require this setting.
4459
4460               This feature is only available if the network plugin was linked
4461               with libgcrypt.
4462
4463           Interface Interface name
4464               Set the outgoing interface for IP packets. This applies at
4465               least to IPv6 packets and if possible to IPv4. If this option
4466               is not applicable, undefined or a non-existent interface name
4467               is specified, the default behavior is to let the kernel choose
4468               the appropriate interface. Be warned that the manual selection
4469               of an interface for unicast traffic is only necessary in rare
4470               cases.
4471
4472           ResolveInterval Seconds
4473               Sets the interval at which to re-resolve the DNS for the Host.
4474               This is useful to force a regular DNS lookup to support a high
4475               availability setup. If not specified, re-resolves are never
4476               attempted.
4477
4478       <Listen Host [Port]>
4479           The Listen statement sets the interfaces to bind to. When multiple
4480           statements are found the daemon will bind to multiple interfaces.
4481
4482           The argument Host may be a hostname, an IPv4 address or an IPv6
4483           address. If the argument is a multicast address the daemon will
4484           join that multicast group.  The optional second argument specifies
4485           a port number or a service name. If not given, the default, 25826,
4486           is used.
4487
4488           The following options are recognized within "<Listen>" blocks:
4489
4490           SecurityLevel Encrypt|Sign|None
4491               Set the security you require for network communication. When
4492               the security level has been set to Encrypt, only encrypted data
4493               will be accepted. The integrity of encrypted packets is ensured
4494               using SHA-1. When set to Sign, only signed and encrypted data
4495               is accepted. When set to None, all data will be accepted. If an
4496               AuthFile option was given (see below), encrypted data is
4497               decrypted if possible.
4498
4499               This feature is only available if the network plugin was linked
4500               with libgcrypt.
4501
4502           AuthFile Filename
4503               Sets a file in which usernames are mapped to passwords. These
4504               passwords are used to verify signatures and to decrypt
4505               encrypted network packets. If SecurityLevel is set to None,
4506               this is optional. If given, signed data is verified and
4507               encrypted packets are decrypted. Otherwise, signed data is
4508               accepted without checking the signature and encrypted data
4509               cannot be decrypted.  For the other security levels this option
4510               is mandatory.
4511
4512               The file format is very simple: Each line consists of a
4513               username followed by a colon and any number of spaces followed
4514               by the password. To demonstrate, an example file could look
4515               like this:
4516
4517                 user0: foo
4518                 user1: bar
4519
4520               Each time a packet is received, the modification time of the
4521               file is checked using stat(2). If the file has been changed,
4522               the contents is re-read. While the file is being read, it is
4523               locked using fcntl(2).
4524
4525           Interface Interface name
4526               Set the incoming interface for IP packets explicitly. This
4527               applies at least to IPv6 packets and if possible to IPv4. If
4528               this option is not applicable, undefined or a non-existent
4529               interface name is specified, the default behavior is, to let
4530               the kernel choose the appropriate interface. Thus incoming
4531               traffic gets only accepted, if it arrives on the given
4532               interface.
4533
4534       TimeToLive 1-255
4535           Set the time-to-live of sent packets. This applies to all, unicast
4536           and multicast, and IPv4 and IPv6 packets. The default is to not
4537           change this value.  That means that multicast packets will be sent
4538           with a TTL of 1 (one) on most operating systems.
4539
4540       MaxPacketSize 1024-65535
4541           Set the maximum size for datagrams received over the network.
4542           Packets larger than this will be truncated. Defaults to 1452 bytes,
4543           which is the maximum payload size that can be transmitted in one
4544           Ethernet frame using IPv6 / UDP.
4545
4546           On the server side, this limit should be set to the largest value
4547           used on any client. Likewise, the value on the client must not be
4548           larger than the value on the server, or data will be lost.
4549
4550           Compatibility: Versions prior to version 4.8 used a fixed sized
4551           buffer of 1024 bytes. Versions 4.8, 4.9 and 4.10 used a default
4552           value of 1024 bytes to avoid problems when sending data to an older
4553           server.
4554
4555       Forward true|false
4556           If set to true, write packets that were received via the network
4557           plugin to the sending sockets. This should only be activated when
4558           the Listen- and Server-statements differ. Otherwise packets may be
4559           send multiple times to the same multicast group. While this results
4560           in more network traffic than necessary it's not a huge problem
4561           since the plugin has a duplicate detection, so the values will not
4562           loop.
4563
4564       ReportStats true|false
4565           The network plugin cannot only receive and send statistics, it can
4566           also create statistics about itself. Collectd data included the
4567           number of received and sent octets and packets, the length of the
4568           receive queue and the number of values handled. When set to true,
4569           the Network plugin will make these statistics available. Defaults
4570           to false.
4571
4572   Plugin "nfs"
4573       The nfs plugin collects information about the usage of the Network File
4574       System (NFS). It counts the number of procedure calls for each
4575       procedure, grouped by version and whether the system runs as server or
4576       client.
4577
4578       It is possibly to omit metrics for a specific NFS version by setting
4579       one or more of the following options to false (all of them default to
4580       true).
4581
4582       ReportV2 true|false
4583       ReportV3 true|false
4584       ReportV4 true|false
4585
4586   Plugin "nginx"
4587       This plugin collects the number of connections and requests handled by
4588       the "nginx daemon" (speak: engine X), a HTTP and mail server/proxy. It
4589       queries the page provided by the "ngx_http_stub_status_module" module,
4590       which isn't compiled by default. Please refer to
4591       <http://wiki.codemongers.com/NginxStubStatusModule> for more
4592       information on how to compile and configure nginx and this module.
4593
4594       The following options are accepted by the "nginx plugin":
4595
4596       URL http://host/nginx_status
4597           Sets the URL of the "ngx_http_stub_status_module" output.
4598
4599       User Username
4600           Optional user name needed for authentication.
4601
4602       Password Password
4603           Optional password needed for authentication.
4604
4605       VerifyPeer true|false
4606           Enable or disable peer SSL certificate verification. See
4607           <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
4608           default.
4609
4610       VerifyHost true|false
4611           Enable or disable peer host name verification. If enabled, the
4612           plugin checks if the "Common Name" or a "Subject Alternate Name"
4613           field of the SSL certificate matches the host name provided by the
4614           URL option. If this identity check fails, the connection is
4615           aborted. Obviously, only works when connecting to a SSL enabled
4616           server. Enabled by default.
4617
4618       CACert File
4619           File that holds one or more SSL certificates. If you want to use
4620           HTTPS you will possibly need this option. What CA certificates come
4621           bundled with "libcurl" and are checked by default depends on the
4622           distribution you use.
4623
4624       Timeout Milliseconds
4625           The Timeout option sets the overall timeout for HTTP requests to
4626           URL, in milliseconds. By default, the configured Interval is used
4627           to set the timeout.
4628
4629   Plugin "notify_desktop"
4630       This plugin sends a desktop notification to a notification daemon, as
4631       defined in the Desktop Notification Specification. To actually display
4632       the notifications, notification-daemon is required and collectd has to
4633       be able to access the X server (i. e., the "DISPLAY" and "XAUTHORITY"
4634       environment variables have to be set correctly) and the D-Bus message
4635       bus.
4636
4637       The Desktop Notification Specification can be found at
4638       <http://www.galago-project.org/specs/notification/>.
4639
4640       OkayTimeout timeout
4641       WarningTimeout timeout
4642       FailureTimeout timeout
4643           Set the timeout, in milliseconds, after which to expire the
4644           notification for "OKAY", "WARNING" and "FAILURE" severities
4645           respectively. If zero has been specified, the displayed
4646           notification will not be closed at all - the user has to do so
4647           herself. These options default to 5000. If a negative number has
4648           been specified, the default is used as well.
4649
4650   Plugin "notify_email"
4651       The notify_email plugin uses the ESMTP library to send notifications to
4652       a configured email address.
4653
4654       libESMTP is available from <http://www.stafford.uklinux.net/libesmtp/>.
4655
4656       Available configuration options:
4657
4658       From Address
4659           Email address from which the emails should appear to come from.
4660
4661           Default: "root@localhost"
4662
4663       Recipient Address
4664           Configures the email address(es) to which the notifications should
4665           be mailed.  May be repeated to send notifications to multiple
4666           addresses.
4667
4668           At least one Recipient must be present for the plugin to work
4669           correctly.
4670
4671       SMTPServer Hostname
4672           Hostname of the SMTP server to connect to.
4673
4674           Default: "localhost"
4675
4676       SMTPPort Port
4677           TCP port to connect to.
4678
4679           Default: 25
4680
4681       SMTPUser Username
4682           Username for ASMTP authentication. Optional.
4683
4684       SMTPPassword Password
4685           Password for ASMTP authentication. Optional.
4686
4687       Subject Subject
4688           Subject-template to use when sending emails. There must be exactly
4689           two string-placeholders in the subject, given in the standard
4690           printf(3) syntax, i. e. %s. The first will be replaced with the
4691           severity, the second with the hostname.
4692
4693           Default: "Collectd notify: %s@%s"
4694
4695   Plugin "notify_nagios"
4696       The notify_nagios plugin writes notifications to Nagios' command file
4697       as a passive service check result.
4698
4699       Available configuration options:
4700
4701       CommandFile Path
4702           Sets the command file to write to. Defaults to
4703           /usr/local/nagios/var/rw/nagios.cmd.
4704
4705   Plugin "ntpd"
4706       The "ntpd" plugin collects per-peer ntp data such as time offset and
4707       time dispersion.
4708
4709       For talking to ntpd, it mimics what the ntpdc control program does on
4710       the wire - using mode 7 specific requests. This mode is deprecated with
4711       newer ntpd releases (4.2.7p230 and later). For the "ntpd" plugin to
4712       work correctly with them, the ntp daemon must be explicitly configured
4713       to enable mode 7 (which is disabled by default). Refer to the
4714       ntp.conf(5) manual page for details.
4715
4716       Available configuration options for the "ntpd" plugin:
4717
4718       Host Hostname
4719           Hostname of the host running ntpd. Defaults to localhost.
4720
4721       Port Port
4722           UDP-Port to connect to. Defaults to 123.
4723
4724       ReverseLookups true|false
4725           Sets whether or not to perform reverse lookups on peers. Since the
4726           name or IP-address may be used in a filename it is recommended to
4727           disable reverse lookups. The default is to do reverse lookups to
4728           preserve backwards compatibility, though.
4729
4730       IncludeUnitID true|false
4731           When a peer is a refclock, include the unit ID in the type
4732           instance.  Defaults to false for backward compatibility.
4733
4734           If two refclock peers use the same driver and this is false, the
4735           plugin will try to write simultaneous measurements from both to the
4736           same type instance.  This will result in error messages in the log
4737           and only one set of measurements making it through.
4738
4739   Plugin "nut"
4740       UPS upsname@hostname[:port]
4741           Add a UPS to collect data from. The format is identical to the one
4742           accepted by upsc(8).
4743
4744       ForceSSL true|false
4745           Stops connections from falling back to unsecured if an SSL
4746           connection cannot be established. Defaults to false if undeclared.
4747
4748       VerifyPeer true|false
4749           If set to true, requires a CAPath be provided. Will use the CAPath
4750           to find certificates to use as Trusted Certificates to validate a
4751           upsd server certificate.  If validation of the upsd server
4752           certificate fails, the connection will not be established. If
4753           ForceSSL is undeclared or set to false, setting VerifyPeer to true
4754           will override and set ForceSSL to true.
4755
4756       CAPath I/path/to/certs/folder
4757           If VerifyPeer is set to true, this is required. Otherwise this is
4758           ignored.  The folder pointed at must contain certificate(s) named
4759           according to their hash.  Ex: XXXXXXXX.Y where X is the hash value
4760           of a cert and Y is 0. If name collisions occur because two
4761           different certs have the same hash value, Y can be  incremented in
4762           order to avoid conflict. To create a symbolic link to a certificate
4763           the following command can be used from within the directory where
4764           the cert resides:
4765
4766           "ln -s some.crt ./$(openssl x509 -hash -noout -in some.crt).0"
4767
4768           Alternatively, the package openssl-perl provides a command
4769           "c_rehash" that will generate links like the one described above
4770           for ALL certs in a given folder.  Example usage: "c_rehash
4771           /path/to/certs/folder"
4772
4773       ConnectTimeout Milliseconds
4774           The ConnectTimeout option sets the connect timeout, in
4775           milliseconds.  By default, the configured Interval is used to set
4776           the timeout.
4777
4778   Plugin "olsrd"
4779       The olsrd plugin connects to the TCP port opened by the txtinfo plugin
4780       of the Optimized Link State Routing daemon and reads information about
4781       the current state of the meshed network.
4782
4783       The following configuration options are understood:
4784
4785       Host Host
4786           Connect to Host. Defaults to "localhost".
4787
4788       Port Port
4789           Specifies the port to connect to. This must be a string, even if
4790           you give the port as a number rather than a service name. Defaults
4791           to "2006".
4792
4793       CollectLinks No|Summary|Detail
4794           Specifies what information to collect about links, i. e. direct
4795           connections of the daemon queried. If set to No, no information is
4796           collected. If set to Summary, the number of links and the average
4797           of all link quality (LQ) and neighbor link quality (NLQ) values is
4798           calculated.  If set to Detail LQ and NLQ are collected per link.
4799
4800           Defaults to Detail.
4801
4802       CollectRoutes No|Summary|Detail
4803           Specifies what information to collect about routes of the daemon
4804           queried. If set to No, no information is collected. If set to
4805           Summary, the number of routes and the average metric and ETX is
4806           calculated. If set to Detail metric and ETX are collected per
4807           route.
4808
4809           Defaults to Summary.
4810
4811       CollectTopology No|Summary|Detail
4812           Specifies what information to collect about the global topology. If
4813           set to No, no information is collected. If set to Summary, the
4814           number of links in the entire topology and the average link quality
4815           (LQ) is calculated.  If set to Detail LQ and NLQ are collected for
4816           each link in the entire topology.
4817
4818           Defaults to Summary.
4819
4820   Plugin "onewire"
4821       EXPERIMENTAL! See notes below.
4822
4823       The "onewire" plugin uses the owcapi library from the owfs project
4824       <http://owfs.org/> to read sensors connected via the onewire bus.
4825
4826       It can be used in two possible modes - standard or advanced.
4827
4828       In the standard mode only temperature sensors (sensors with the family
4829       code 10, 22 and 28 - e.g. DS1820, DS18S20, DS1920) can be read. If you
4830       have other sensors you would like to have included, please send a sort
4831       request to the mailing list. You can select sensors to be read or to be
4832       ignored depending on the option IgnoreSelected). When no list is
4833       provided the whole bus is walked and all sensors are read.
4834
4835       Hubs (the DS2409 chips) are working, but read the note, why this plugin
4836       is experimental, below.
4837
4838       In the advanced mode you can configure any sensor to be read (only
4839       numerical value) using full OWFS path (e.g.
4840       "/uncached/10.F10FCA000800/temperature").  In this mode you have to
4841       list all the sensors. Neither default bus walk nor IgnoreSelected are
4842       used here. Address and type (file) is extracted from the path
4843       automatically and should produce compatible structure with the
4844       "standard" mode (basically the path is expected as for example
4845       "/uncached/10.F10FCA000800/temperature" where it would extract address
4846       part "F10FCA000800" and the rest after the slash is considered the type
4847       - here "temperature").  There are two advantages to this mode - you can
4848       access virtually any sensor (not just temperature), select whether to
4849       use cached or directly read values and it is slighlty faster. The
4850       downside is more complex configuration.
4851
4852       The two modes are distinguished automatically by the format of the
4853       address.  It is not possible to mix the two modes. Once a full path is
4854       detected in any Sensor then the whole addressing (all sensors) is
4855       considered to be this way (and as standard addresses will fail parsing
4856       they will be ignored).
4857
4858       Device Device
4859           Sets the device to read the values from. This can either be a
4860           "real" hardware device, such as a serial port or an USB port, or
4861           the address of the owserver(1) socket, usually localhost:4304.
4862
4863           Though the documentation claims to automatically recognize the
4864           given address format, with version 2.7p4 we had to specify the type
4865           explicitly. So with that version, the following configuration
4866           worked for us:
4867
4868             <Plugin onewire>
4869               Device "-s localhost:4304"
4870             </Plugin>
4871
4872           This directive is required and does not have a default value.
4873
4874       Sensor Sensor
4875           In the standard mode selects sensors to collect or to ignore
4876           (depending on IgnoreSelected, see below). Sensors are specified
4877           without the family byte at the beginning, so you have to use for
4878           example "F10FCA000800", and not include the leading 10. family byte
4879           and point.  When no Sensor is configured the whole Onewire bus is
4880           walked and all supported sensors (see above) are read.
4881
4882           In the advanced mode the Sensor specifies full OWFS path - e.g.
4883           "/uncached/10.F10FCA000800/temperature" (or when cached values are
4884           OK "/10.F10FCA000800/temperature"). IgnoreSelected is not used.
4885
4886           As there can be multiple devices on the bus you can list multiple
4887           sensor (use multiple Sensor elements).
4888
4889           See /"IGNORELISTS" for details.
4890
4891       IgnoreSelected true|false
4892           If no configuration is given, the onewire plugin will collect data
4893           from all sensors found. This may not be practical, especially if
4894           sensors are added and removed regularly. Sometimes, however, it's
4895           easier/preferred to collect only specific sensors or all sensors
4896           except a few specified ones. This option enables you to do that: By
4897           setting IgnoreSelected to true the effect of Sensor is inverted:
4898           All selected interfaces are ignored and all other interfaces are
4899           collected.
4900
4901           Used only in the standard mode - see above.
4902
4903       Interval Seconds
4904           Sets the interval in which all sensors should be read. If not
4905           specified, the global Interval setting is used.
4906
4907       EXPERIMENTAL! The "onewire" plugin is experimental, because it doesn't
4908       yet work with big setups. It works with one sensor being attached to
4909       one controller, but as soon as you throw in a couple more senors and
4910       maybe a hub or two, reading all values will take more than ten seconds
4911       (the default interval). We will probably add some separate thread for
4912       reading the sensors and some cache or something like that, but it's not
4913       done yet. We will try to maintain backwards compatibility in the
4914       future, but we can't promise. So in short: If it works for you: Great!
4915       But keep in mind that the config might change, though this is unlikely.
4916       Oh, and if you want to help improving this plugin, just send a short
4917       notice to the mailing list. Thanks :)
4918
4919   Plugin "openldap"
4920       To use the "openldap" plugin you first need to configure the OpenLDAP
4921       server correctly. The backend database "monitor" needs to be loaded and
4922       working. See slapd-monitor(5) for the details.
4923
4924       The configuration of the "openldap" plugin consists of one or more
4925       Instance blocks. Each block requires one string argument as the
4926       instance name. For example:
4927
4928        <Plugin "openldap">
4929          <Instance "foo">
4930            URL "ldap://localhost/"
4931          </Instance>
4932          <Instance "bar">
4933            URL "ldaps://localhost/"
4934          </Instance>
4935        </Plugin>
4936
4937       The instance name will be used as the plugin instance. To emulate the
4938       old (version 4) behavior, you can use an empty string (""). In order
4939       for the plugin to work correctly, each instance name must be unique.
4940       This is not enforced by the plugin and it is your responsibility to
4941       ensure it is.
4942
4943       The following options are accepted within each Instance block:
4944
4945       URL ldap://host/binddn
4946           Sets the URL to use to connect to the OpenLDAP server. This option
4947           is mandatory.
4948
4949       BindDN BindDN
4950           Name in the form of an LDAP distinguished name intended to be used
4951           for authentication. Defaults to empty string to establish an
4952           anonymous authorization.
4953
4954       Password Password
4955           Password for simple bind authentication. If this option is not set,
4956           unauthenticated bind operation is used.
4957
4958       StartTLS true|false
4959           Defines whether TLS must be used when connecting to the OpenLDAP
4960           server.  Disabled by default.
4961
4962       VerifyHost true|false
4963           Enables or disables peer host name verification. If enabled, the
4964           plugin checks if the "Common Name" or a "Subject Alternate Name"
4965           field of the SSL certificate matches the host name provided by the
4966           URL option. If this identity check fails, the connection is
4967           aborted. Enabled by default.
4968
4969       CACert File
4970           File that holds one or more SSL certificates. If you want to use
4971           TLS/SSL you may possibly need this option. What CA certificates are
4972           checked by default depends on the distribution you use and can be
4973           changed with the usual ldap client configuration mechanisms. See
4974           ldap.conf(5) for the details.
4975
4976       Timeout Seconds
4977           Sets the timeout value for ldap operations, in seconds. By default,
4978           the configured Interval is used to set the timeout. Use -1 to
4979           disable (infinite timeout).
4980
4981       Version Version
4982           An integer which sets the LDAP protocol version number to use when
4983           connecting to the OpenLDAP server. Defaults to 3 for using LDAPv3.
4984
4985   Plugin "openvpn"
4986       The OpenVPN plugin reads a status file maintained by OpenVPN and
4987       gathers traffic statistics about connected clients.
4988
4989       To set up OpenVPN to write to the status file periodically, use the
4990       --status option of OpenVPN.
4991
4992       So, in a nutshell you need:
4993
4994         openvpn $OTHER_OPTIONS \
4995           --status "/var/run/openvpn-status" 10
4996
4997       Available options:
4998
4999       StatusFile File
5000           Specifies the location of the status file.
5001
5002       ImprovedNamingSchema true|false
5003           When enabled, the filename of the status file will be used as
5004           plugin instance and the client's "common name" will be used as type
5005           instance. This is required when reading multiple status files.
5006           Enabling this option is recommended, but to maintain backwards
5007           compatibility this option is disabled by default.
5008
5009       CollectCompression true|false
5010           Sets whether or not statistics about the compression used by
5011           OpenVPN should be collected. This information is only available in
5012           single mode. Enabled by default.
5013
5014       CollectIndividualUsers true|false
5015           Sets whether or not traffic information is collected for each
5016           connected client individually. If set to false, currently no
5017           traffic data is collected at all because aggregating this data in a
5018           save manner is tricky. Defaults to true.
5019
5020       CollectUserCount true|false
5021           When enabled, the number of currently connected clients or users is
5022           collected.  This is especially interesting when
5023           CollectIndividualUsers is disabled, but can be configured
5024           independently from that option. Defaults to false.
5025
5026   Plugin "oracle"
5027       The "oracle" plugin uses the OracleX Call Interface (OCI) to connect to
5028       an OracleX Database and lets you execute SQL statements there. It is
5029       very similar to the "dbi" plugin, because it was written around the
5030       same time. See the "dbi" plugin's documentation above for details.
5031
5032         <Plugin oracle>
5033           <Query "out_of_stock">
5034             Statement "SELECT category, COUNT(*) AS value FROM products WHERE in_stock = 0 GROUP BY category"
5035             <Result>
5036               Type "gauge"
5037               # InstancePrefix "foo"
5038               InstancesFrom "category"
5039               ValuesFrom "value"
5040             </Result>
5041           </Query>
5042           <Database "product_information">
5043             #Plugin "warehouse"
5044             ConnectID "db01"
5045             Username "oracle"
5046             Password "secret"
5047             Query "out_of_stock"
5048           </Database>
5049         </Plugin>
5050
5051       Query blocks
5052
5053       The Query blocks are handled identically to the Query blocks of the
5054       "dbi" plugin. Please see its documentation above for details on how to
5055       specify queries.
5056
5057       Database blocks
5058
5059       Database blocks define a connection to a database and which queries
5060       should be sent to that database. Each database needs a "name" as string
5061       argument in the starting tag of the block. This name will be used as
5062       "PluginInstance" in the values submitted to the daemon. Other than
5063       that, that name is not used.
5064
5065       Plugin Plugin
5066           Use Plugin as the plugin name when submitting query results from
5067           this Database. Defaults to "oracle".
5068
5069       ConnectID ID
5070           Defines the "database alias" or "service name" to connect to.
5071           Usually, these names are defined in the file named
5072           "$ORACLE_HOME/network/admin/tnsnames.ora".
5073
5074       Host Host
5075           Hostname to use when dispatching values for this database. Defaults
5076           to using the global hostname of the collectd instance.
5077
5078       Username Username
5079           Username used for authentication.
5080
5081       Password Password
5082           Password used for authentication.
5083
5084       Query QueryName
5085           Associates the query named QueryName with this database connection.
5086           The query needs to be defined before this statement, i. e. all
5087           query blocks you want to refer to must be placed above the database
5088           block you want to refer to them from.
5089
5090   Plugin "ovs_events"
5091       The ovs_events plugin monitors the link status of Open vSwitch (OVS)
5092       connected interfaces, dispatches the values to collectd and sends the
5093       notification whenever the link state change occurs. This plugin uses
5094       OVS database to get a link state change notification.
5095
5096       Synopsis:
5097
5098        <Plugin "ovs_events">
5099          Port 6640
5100          Address "127.0.0.1"
5101          Socket "/var/run/openvswitch/db.sock"
5102          Interfaces "br0" "veth0"
5103          SendNotification true
5104          DispatchValues false
5105        </Plugin>
5106
5107       The plugin provides the following configuration options:
5108
5109       Address node
5110           The address of the OVS DB server JSON-RPC interface used by the
5111           plugin. To enable the interface, OVS DB daemon should be running
5112           with "--remote=ptcp:" option. See ovsdb-server(1) for more details.
5113           The option may be either network hostname, IPv4 numbers-and-dots
5114           notation or IPv6 hexadecimal string format. Defaults to
5115           "localhost".
5116
5117       Port service
5118           TCP-port to connect to. Either a service name or a port number may
5119           be given.  Defaults to 6640.
5120
5121       Socket path
5122           The UNIX domain socket path of OVS DB server JSON-RPC interface
5123           used by the plugin. To enable the interface, the OVS DB daemon
5124           should be running with "--remote=punix:" option. See
5125           ovsdb-server(1) for more details. If this option is set, Address
5126           and Port options are ignored.
5127
5128       Interfaces [ifname ...]
5129           List of interface names to be monitored by this plugin. If this
5130           option is not specified or is empty then all OVS connected
5131           interfaces on all bridges are monitored.
5132
5133           Default: empty (all interfaces on all bridges are monitored)
5134
5135       SendNotification true|false
5136           If set to true, OVS link notifications (interface status and OVS DB
5137           connection terminate) are sent to collectd. Default value is true.
5138
5139       DispatchValues true|false
5140           Dispatch the OVS DB interface link status value with configured
5141           plugin interval.  Defaults to false. Please note, if
5142           SendNotification and DispatchValues options are false, no OVS
5143           information will be provided by the plugin.
5144
5145       Note: By default, the global interval setting is used within which to
5146       retrieve the OVS link status. To configure a plugin-specific interval,
5147       please use Interval option of the OVS LoadPlugin block settings. For
5148       milliseconds simple divide the time by 1000 for example if the desired
5149       interval is 50ms, set interval to 0.05.
5150
5151   Plugin "ovs_stats"
5152       The ovs_stats plugin collects statistics of OVS connected interfaces.
5153       This plugin uses OVSDB management protocol (RFC7047) monitor mechanism
5154       to get statistics from OVSDB
5155
5156       Synopsis:
5157
5158        <Plugin "ovs_stats">
5159          Port 6640
5160          Address "127.0.0.1"
5161          Socket "/var/run/openvswitch/db.sock"
5162          Bridges "br0" "br_ext"
5163        </Plugin>
5164
5165       The plugin provides the following configuration options:
5166
5167       Address node
5168           The address of the OVS DB server JSON-RPC interface used by the
5169           plugin. To enable the interface, OVS DB daemon should be running
5170           with "--remote=ptcp:" option. See ovsdb-server(1) for more details.
5171           The option may be either network hostname, IPv4 numbers-and-dots
5172           notation or IPv6 hexadecimal string format. Defaults to
5173           "localhost".
5174
5175       Port service
5176           TCP-port to connect to. Either a service name or a port number may
5177           be given.  Defaults to 6640.
5178
5179       Socket path
5180           The UNIX domain socket path of OVS DB server JSON-RPC interface
5181           used by the plugin. To enable the interface, the OVS DB daemon
5182           should be running with "--remote=punix:" option. See
5183           ovsdb-server(1) for more details. If this option is set, Address
5184           and Port options are ignored.
5185
5186       Bridges [brname ...]
5187           List of OVS bridge names to be monitored by this plugin. If this
5188           option is omitted or is empty then all OVS bridges will be
5189           monitored.
5190
5191           Default: empty (monitor all bridges)
5192
5193   Plugin "perl"
5194       This plugin embeds a Perl-interpreter into collectd and provides an
5195       interface to collectd's plugin system. See collectd-perl(5) for its
5196       documentation.
5197
5198   Plugin "pinba"
5199       The Pinba plugin receives profiling information from Pinba, an
5200       extension for the PHP interpreter. At the end of executing a script,
5201       i.e. after a PHP-based webpage has been delivered, the extension will
5202       send a UDP packet containing timing information, peak memory usage and
5203       so on. The plugin will wait for such packets, parse them and account
5204       the provided information, which is then dispatched to the daemon once
5205       per interval.
5206
5207       Synopsis:
5208
5209        <Plugin pinba>
5210          Address "::0"
5211          Port "30002"
5212          # Overall statistics for the website.
5213          <View "www-total">
5214            Server "www.example.com"
5215          </View>
5216          # Statistics for www-a only
5217          <View "www-a">
5218            Host "www-a.example.com"
5219            Server "www.example.com"
5220          </View>
5221          # Statistics for www-b only
5222          <View "www-b">
5223            Host "www-b.example.com"
5224            Server "www.example.com"
5225          </View>
5226        </Plugin>
5227
5228       The plugin provides the following configuration options:
5229
5230       Address Node
5231           Configures the address used to open a listening socket. By default,
5232           plugin will bind to the any address "::0".
5233
5234       Port Service
5235           Configures the port (service) to bind to. By default the default
5236           Pinba port "30002" will be used. The option accepts service names
5237           in addition to port numbers and thus requires a string argument.
5238
5239       <View Name> block
5240           The packets sent by the Pinba extension include the hostname of the
5241           server, the server name (the name of the virtual host) and the
5242           script that was executed.  Using View blocks it is possible to
5243           separate the data into multiple groups to get more meaningful
5244           statistics. Each packet is added to all matching groups, so that a
5245           packet may be accounted for more than once.
5246
5247           Host Host
5248               Matches the hostname of the system the webserver / script is
5249               running on. This will contain the result of the gethostname(2)
5250               system call. If not configured, all hostnames will be accepted.
5251
5252           Server Server
5253               Matches the name of the virtual host, i.e. the contents of the
5254               $_SERVER["SERVER_NAME"] variable when within PHP. If not
5255               configured, all server names will be accepted.
5256
5257           Script Script
5258               Matches the name of the script name, i.e. the contents of the
5259               $_SERVER["SCRIPT_NAME"] variable when within PHP. If not
5260               configured, all script names will be accepted.
5261
5262   Plugin "ping"
5263       The Ping plugin starts a new thread which sends ICMP "ping" packets to
5264       the configured hosts periodically and measures the network latency.
5265       Whenever the "read" function of the plugin is called, it submits the
5266       average latency, the standard deviation and the drop rate for each
5267       host.
5268
5269       Available configuration options:
5270
5271       Host IP-address
5272           Host to ping periodically. This option may be repeated several
5273           times to ping multiple hosts.
5274
5275       Interval Seconds
5276           Sets the interval in which to send ICMP echo packets to the
5277           configured hosts.  This is not the interval in which metrics are
5278           read from the plugin but the interval in which the hosts are
5279           "pinged". Therefore, the setting here should be smaller than or
5280           equal to the global Interval setting. Fractional times, such as
5281           "1.24" are allowed.
5282
5283           Default: 1.0
5284
5285       Timeout Seconds
5286           Time to wait for a response from the host to which an ICMP packet
5287           had been sent. If a reply was not received after Seconds seconds,
5288           the host is assumed to be down or the packet to be dropped. This
5289           setting must be smaller than the Interval setting above for the
5290           plugin to work correctly. Fractional arguments are accepted.
5291
5292           Default: 0.9
5293
5294       TTL 0-255
5295           Sets the Time-To-Live of generated ICMP packets.
5296
5297       Size size
5298           Sets the size of the data payload in ICMP packet to specified size
5299           (it will be filled with regular ASCII pattern). If not set, default
5300           56 byte long string is used so that the packet size of an ICMPv4
5301           packet is exactly 64 bytes, similar to the behaviour of normal
5302           ping(1) command.
5303
5304       SourceAddress host
5305           Sets the source address to use. host may either be a numerical
5306           network address or a network hostname.
5307
5308       Device name
5309           Sets the outgoing network device to be used. name has to specify an
5310           interface name (e. g. "eth0"). This might not be supported by all
5311           operating systems.
5312
5313       MaxMissed Packets
5314           Trigger a DNS resolve after the host has not replied to Packets
5315           packets. This enables the use of dynamic DNS services (like
5316           dyndns.org) with the ping plugin.
5317
5318           Default: -1 (disabled)
5319
5320   Plugin "postgresql"
5321       The "postgresql" plugin queries statistics from PostgreSQL databases.
5322       It keeps a persistent connection to all configured databases and tries
5323       to reconnect if the connection has been interrupted. A database is
5324       configured by specifying a Database block as described below. The
5325       default statistics are collected from PostgreSQL's statistics collector
5326       which thus has to be enabled for this plugin to work correctly. This
5327       should usually be the case by default. See the section "The Statistics
5328       Collector" of the PostgreSQL Documentation for details.
5329
5330       By specifying custom database queries using a Query block as described
5331       below, you may collect any data that is available from some PostgreSQL
5332       database. This way, you are able to access statistics of external
5333       daemons which are available in a PostgreSQL database or use future or
5334       special statistics provided by PostgreSQL without the need to upgrade
5335       your collectd installation.
5336
5337       Starting with version 5.2, the "postgresql" plugin supports writing
5338       data to PostgreSQL databases as well. This has been implemented in a
5339       generic way. You need to specify an SQL statement which will then be
5340       executed by collectd in order to write the data (see below for
5341       details). The benefit of that approach is that there is no fixed
5342       database layout. Rather, the layout may be optimized for the current
5343       setup.
5344
5345       The PostgreSQL Documentation manual can be found at
5346       <http://www.postgresql.org/docs/manuals/>.
5347
5348         <Plugin postgresql>
5349           <Query magic>
5350             Statement "SELECT magic FROM wizard WHERE host = $1;"
5351             Param hostname
5352             <Result>
5353               Type gauge
5354               InstancePrefix "magic"
5355               ValuesFrom magic
5356             </Result>
5357           </Query>
5358
5359           <Query rt36_tickets>
5360             Statement "SELECT COUNT(type) AS count, type \
5361                               FROM (SELECT CASE \
5362                                            WHEN resolved = 'epoch' THEN 'open' \
5363                                            ELSE 'resolved' END AS type \
5364                                            FROM tickets) type \
5365                               GROUP BY type;"
5366             <Result>
5367               Type counter
5368               InstancePrefix "rt36_tickets"
5369               InstancesFrom "type"
5370               ValuesFrom "count"
5371             </Result>
5372           </Query>
5373
5374           <Writer sqlstore>
5375             Statement "SELECT collectd_insert($1, $2, $3, $4, $5, $6, $7, $8, $9);"
5376             StoreRates true
5377           </Writer>
5378
5379           <Database foo>
5380             Plugin "kingdom"
5381             Host "hostname"
5382             Port "5432"
5383             User "username"
5384             Password "secret"
5385             SSLMode "prefer"
5386             KRBSrvName "kerberos_service_name"
5387             Query magic
5388           </Database>
5389
5390           <Database bar>
5391             Interval 300
5392             Service "service_name"
5393             Query backends # predefined
5394             Query rt36_tickets
5395           </Database>
5396
5397           <Database qux>
5398             # ...
5399             Writer sqlstore
5400             CommitInterval 10
5401           </Database>
5402         </Plugin>
5403
5404       The Query block defines one database query which may later be used by a
5405       database definition. It accepts a single mandatory argument which
5406       specifies the name of the query. The names of all queries have to be
5407       unique (see the MinVersion and MaxVersion options below for an
5408       exception to this rule).
5409
5410       In each Query block, there is one or more Result blocks. Multiple
5411       Result blocks may be used to extract multiple values from a single
5412       query.
5413
5414       The following configuration options are available to define the query:
5415
5416       Statement sql query statement
5417           Specify the sql query statement which the plugin should execute.
5418           The string may contain the tokens $1, $2, etc. which are used to
5419           reference the first, second, etc. parameter. The value of the
5420           parameters is specified by the Param configuration option - see
5421           below for details. To include a literal $ character followed by a
5422           number, surround it with single quotes (').
5423
5424           Any SQL command which may return data (such as "SELECT" or "SHOW")
5425           is allowed. Note, however, that only a single command may be used.
5426           Semicolons are allowed as long as a single non-empty command has
5427           been specified only.
5428
5429           The returned lines will be handled separately one after another.
5430
5431       Param hostname|database|instance|username|interval
5432           Specify the parameters which should be passed to the SQL query. The
5433           parameters are referred to in the SQL query as $1, $2, etc. in the
5434           same order as they appear in the configuration file. The value of
5435           the parameter is determined depending on the value of the Param
5436           option as follows:
5437
5438           hostname
5439               The configured hostname of the database connection. If a UNIX
5440               domain socket is used, the parameter expands to "localhost".
5441
5442           database
5443               The name of the database of the current connection.
5444
5445           instance
5446               The name of the database plugin instance. See the Instance
5447               option of the database specification below for details.
5448
5449           username
5450               The username used to connect to the database.
5451
5452           interval
5453               The interval with which this database is queried (as specified
5454               by the database specific or global Interval options).
5455
5456           Please note that parameters are only supported by PostgreSQL's
5457           protocol version 3 and above which was introduced in version 7.4 of
5458           PostgreSQL.
5459
5460       PluginInstanceFrom column
5461           Specify how to create the "PluginInstance" for reporting this query
5462           results.  Only one column is supported. You may concatenate fields
5463           and string values in the query statement to get the required
5464           results.
5465
5466       MinVersion version
5467       MaxVersion version
5468           Specify the minimum or maximum version of PostgreSQL that this
5469           query should be used with. Some statistics might only be available
5470           with certain versions of PostgreSQL. This allows you to specify
5471           multiple queries with the same name but which apply to different
5472           versions, thus allowing you to use the same configuration in a
5473           heterogeneous environment.
5474
5475           The version has to be specified as the concatenation of the major,
5476           minor and patch-level versions, each represented as two-decimal-
5477           digit numbers. For example, version 8.2.3 will become 80203.
5478
5479       The Result block defines how to handle the values returned from the
5480       query.  It defines which column holds which value and how to dispatch
5481       that value to the daemon.
5482
5483       Type type
5484           The type name to be used when dispatching the values. The type
5485           describes how to handle the data and where to store it. See
5486           types.db(5) for more details on types and their configuration. The
5487           number and type of values (as selected by the ValuesFrom option)
5488           has to match the type of the given name.
5489
5490           This option is mandatory.
5491
5492       InstancePrefix prefix
5493       InstancesFrom column0 [column1 ...]
5494           Specify how to create the "TypeInstance" for each data set (i. e.
5495           line).  InstancePrefix defines a static prefix that will be
5496           prepended to all type instances. InstancesFrom defines the column
5497           names whose values will be used to create the type instance.
5498           Multiple values will be joined together using the hyphen ("-") as
5499           separation character.
5500
5501           The plugin itself does not check whether or not all built instances
5502           are different. It is your responsibility to assure that each is
5503           unique.
5504
5505           Both options are optional. If none is specified, the type instance
5506           will be empty.
5507
5508       ValuesFrom column0 [column1 ...]
5509           Names the columns whose content is used as the actual data for the
5510           data sets that are dispatched to the daemon. How many such columns
5511           you need is determined by the Type setting as explained above. If
5512           you specify too many or not enough columns, the plugin will
5513           complain about that and no data will be submitted to the daemon.
5514
5515           The actual data type, as seen by PostgreSQL, is not that important
5516           as long as it represents numbers. The plugin will automatically
5517           cast the values to the right type if it know how to do that. For
5518           that, it uses the strtoll(3) and strtod(3) functions, so anything
5519           supported by those functions is supported by the plugin as well.
5520
5521           This option is required inside a Result block and may be specified
5522           multiple times. If multiple ValuesFrom options are specified, the
5523           columns are read in the given order.
5524
5525       The following predefined queries are available (the definitions can be
5526       found in the postgresql_default.conf file which, by default, is
5527       available at "prefix/share/collectd/"):
5528
5529       backends
5530           This query collects the number of backends, i. e. the number of
5531           connected clients.
5532
5533       transactions
5534           This query collects the numbers of committed and rolled-back
5535           transactions of the user tables.
5536
5537       queries
5538           This query collects the numbers of various table modifications
5539           (i. e.  insertions, updates, deletions) of the user tables.
5540
5541       query_plans
5542           This query collects the numbers of various table scans and returned
5543           tuples of the user tables.
5544
5545       table_states
5546           This query collects the numbers of live and dead rows in the user
5547           tables.
5548
5549       disk_io
5550           This query collects disk block access counts for user tables.
5551
5552       disk_usage
5553           This query collects the on-disk size of the database in bytes.
5554
5555       In addition, the following detailed queries are available by default.
5556       Please note that each of those queries collects information by table,
5557       thus, potentially producing a lot of data. For details see the
5558       description of the non-by_table queries above.
5559
5560       queries_by_table
5561       query_plans_by_table
5562       table_states_by_table
5563       disk_io_by_table
5564
5565       The Writer block defines a PostgreSQL writer backend. It accepts a
5566       single mandatory argument specifying the name of the writer. This will
5567       then be used in the Database specification in order to activate the
5568       writer instance. The names of all writers have to be unique. The
5569       following options may be specified:
5570
5571       Statement sql statement
5572           This mandatory option specifies the SQL statement that will be
5573           executed for each submitted value. A single SQL statement is
5574           allowed only. Anything after the first semicolon will be ignored.
5575
5576           Nine parameters will be passed to the statement and should be
5577           specified as tokens $1, $2, through $9 in the statement string. The
5578           following values are made available through those parameters:
5579
5580           $1  The timestamp of the queried value as an RFC 3339-formatted
5581               local time.
5582
5583           $2  The hostname of the queried value.
5584
5585           $3  The plugin name of the queried value.
5586
5587           $4  The plugin instance of the queried value. This value may be
5588               NULL if there is no plugin instance.
5589
5590           $5  The type of the queried value (cf. types.db(5)).
5591
5592           $6  The type instance of the queried value. This value may be NULL
5593               if there is no type instance.
5594
5595           $7  An array of names for the submitted values (i. e., the name of
5596               the data sources of the submitted value-list).
5597
5598           $8  An array of types for the submitted values (i. e., the type of
5599               the data sources of the submitted value-list; "counter",
5600               "gauge", ...). Note, that if StoreRates is enabled (which is
5601               the default, see below), all types will be "gauge".
5602
5603           $9  An array of the submitted values. The dimensions of the value
5604               name and value arrays match.
5605
5606           In general, it is advisable to create and call a custom function in
5607           the PostgreSQL database for this purpose. Any procedural language
5608           supported by PostgreSQL will do (see chapter "Server Programming"
5609           in the PostgreSQL manual for details).
5610
5611       StoreRates false|true
5612           If set to true (the default), convert counter values to rates. If
5613           set to false counter values are stored as is, i. e. as an
5614           increasing integer number.
5615
5616       The Database block defines one PostgreSQL database for which to collect
5617       statistics. It accepts a single mandatory argument which specifies the
5618       database name. None of the other options are required. PostgreSQL will
5619       use default values as documented in the section "CONNECTING TO A
5620       DATABASE" in the psql(1) manpage. However, be aware that those defaults
5621       may be influenced by the user collectd is run as and special
5622       environment variables. See the manpage for details.
5623
5624       Interval seconds
5625           Specify the interval with which the database should be queried. The
5626           default is to use the global Interval setting.
5627
5628       CommitInterval seconds
5629           This option may be used for database connections which have
5630           "writers" assigned (see above). If specified, it causes a writer to
5631           put several updates into a single transaction. This transaction
5632           will last for the specified amount of time. By default, each update
5633           will be executed in a separate transaction. Each transaction
5634           generates a fair amount of overhead which can, thus, be reduced by
5635           activating this option. The draw-back is, that data covering the
5636           specified amount of time will be lost, for example, if a single
5637           statement within the transaction fails or if the database server
5638           crashes.
5639
5640       Plugin Plugin
5641           Use Plugin as the plugin name when submitting query results from
5642           this Database. Defaults to "postgresql".
5643
5644       Instance name
5645           Specify the plugin instance name that should be used instead of the
5646           database name (which is the default, if this option has not been
5647           specified). This allows one to query multiple databases of the same
5648           name on the same host (e.g.  when running multiple database server
5649           versions in parallel).  The plugin instance name can also be set
5650           from the query result using the PluginInstanceFrom option in Query
5651           block.
5652
5653       Host hostname
5654           Specify the hostname or IP of the PostgreSQL server to connect to.
5655           If the value begins with a slash, it is interpreted as the
5656           directory name in which to look for the UNIX domain socket.
5657
5658           This option is also used to determine the hostname that is
5659           associated with a collected data set. If it has been omitted or
5660           either begins with with a slash or equals localhost it will be
5661           replaced with the global hostname definition of collectd. Any other
5662           value will be passed literally to collectd when dispatching values.
5663           Also see the global Hostname and FQDNLookup options.
5664
5665       Port port
5666           Specify the TCP port or the local UNIX domain socket file extension
5667           of the server.
5668
5669       User username
5670           Specify the username to be used when connecting to the server.
5671
5672       Password password
5673           Specify the password to be used when connecting to the server.
5674
5675       ExpireDelay delay
5676           Skip expired values in query output.
5677
5678       SSLMode disable|allow|prefer|require
5679           Specify whether to use an SSL connection when contacting the
5680           server. The following modes are supported:
5681
5682           disable
5683               Do not use SSL at all.
5684
5685           allow
5686               First, try to connect without using SSL. If that fails, try
5687               using SSL.
5688
5689           prefer (default)
5690               First, try to connect using SSL. If that fails, try without
5691               using SSL.
5692
5693           require
5694               Use SSL only.
5695
5696       Instance name
5697           Specify the plugin instance name that should be used instead of the
5698           database name (which is the default, if this option has not been
5699           specified). This allows one to query multiple databases of the same
5700           name on the same host (e.g.  when running multiple database server
5701           versions in parallel).
5702
5703       KRBSrvName kerberos_service_name
5704           Specify the Kerberos service name to use when authenticating with
5705           Kerberos 5 or GSSAPI. See the sections "Kerberos authentication"
5706           and "GSSAPI" of the PostgreSQL Documentation for details.
5707
5708       Service service_name
5709           Specify the PostgreSQL service name to use for additional
5710           parameters. That service has to be defined in pg_service.conf and
5711           holds additional connection parameters. See the section "The
5712           Connection Service File" in the PostgreSQL Documentation for
5713           details.
5714
5715       Query query
5716           Specifies a query which should be executed in the context of the
5717           database connection. This may be any of the predefined or user-
5718           defined queries. If no such option is given, it defaults to
5719           "backends", "transactions", "queries", "query_plans",
5720           "table_states", "disk_io" and "disk_usage" (unless a Writer has
5721           been specified). Else, the specified queries are used only.
5722
5723       Writer writer
5724           Assigns the specified writer backend to the database connection.
5725           This causes all collected data to be send to the database using the
5726           settings defined in the writer configuration (see the section
5727           "FILTER CONFIGURATION" below for details on how to selectively send
5728           data to certain plugins).
5729
5730           Each writer will register a flush callback which may be used when
5731           having long transactions enabled (see the CommitInterval option
5732           above). When issuing the FLUSH command (see collectd-unixsock(5)
5733           for details) the current transaction will be committed right away.
5734           Two different kinds of flush callbacks are available with the
5735           "postgresql" plugin:
5736
5737           postgresql
5738               Flush all writer backends.
5739
5740           postgresql-database
5741               Flush all writers of the specified database only.
5742
5743   Plugin "powerdns"
5744       The "powerdns" plugin queries statistics from an authoritative PowerDNS
5745       nameserver and/or a PowerDNS recursor. Since both offer a wide variety
5746       of values, many of which are probably meaningless to most users, but
5747       may be useful for some. So you may chose which values to collect, but
5748       if you don't, some reasonable defaults will be collected.
5749
5750         <Plugin "powerdns">
5751           <Server "server_name">
5752             Collect "latency"
5753             Collect "udp-answers" "udp-queries"
5754             Socket "/var/run/pdns.controlsocket"
5755           </Server>
5756           <Recursor "recursor_name">
5757             Collect "questions"
5758             Collect "cache-hits" "cache-misses"
5759             Socket "/var/run/pdns_recursor.controlsocket"
5760           </Recursor>
5761           LocalSocket "/opt/collectd/var/run/collectd-powerdns"
5762         </Plugin>
5763
5764       Server and Recursor block
5765           The Server block defines one authoritative server to query, the
5766           Recursor does the same for an recursing server. The possible
5767           options in both blocks are the same, though. The argument defines a
5768           name for the server / recursor and is required.
5769
5770           Collect Field
5771               Using the Collect statement you can select which values to
5772               collect. Here, you specify the name of the values as used by
5773               the PowerDNS servers, e. g.  "dlg-only-drops", "answers10-100".
5774
5775               The method of getting the values differs for Server and
5776               Recursor blocks: When querying the server a "SHOW *" command is
5777               issued in any case, because that's the only way of getting
5778               multiple values out of the server at once.  collectd then picks
5779               out the values you have selected. When querying the recursor, a
5780               command is generated to query exactly these values. So if you
5781               specify invalid fields when querying the recursor, a syntax
5782               error may be returned by the daemon and collectd may not
5783               collect any values at all.
5784
5785               If no Collect statement is given, the following Server values
5786               will be collected:
5787
5788               latency
5789               packetcache-hit
5790               packetcache-miss
5791               packetcache-size
5792               query-cache-hit
5793               query-cache-miss
5794               recursing-answers
5795               recursing-questions
5796               tcp-answers
5797               tcp-queries
5798               udp-answers
5799               udp-queries
5800
5801               The following Recursor values will be collected by default:
5802
5803               noerror-answers
5804               nxdomain-answers
5805               servfail-answers
5806               sys-msec
5807               user-msec
5808               qa-latency
5809               cache-entries
5810               cache-hits
5811               cache-misses
5812               questions
5813
5814               Please note that up to that point collectd doesn't know what
5815               values are available on the server and values that are added do
5816               not need a change of the mechanism so far. However, the values
5817               must be mapped to collectd's naming scheme, which is done using
5818               a lookup table that lists all known values. If values are added
5819               in the future and collectd does not know about them, you will
5820               get an error much like this:
5821
5822                 powerdns plugin: submit: Not found in lookup table: foobar = 42
5823
5824               In this case please file a bug report with the collectd team.
5825
5826           Socket Path
5827               Configures the path to the UNIX domain socket to be used when
5828               connecting to the daemon. By default
5829               "${localstatedir}/run/pdns.controlsocket" will be used for an
5830               authoritative server and
5831               "${localstatedir}/run/pdns_recursor.controlsocket" will be used
5832               for the recursor.
5833
5834       LocalSocket Path
5835           Querying the recursor is done using UDP. When using UDP over UNIX
5836           domain sockets, the client socket needs a name in the file system,
5837           too. You can set this local name to Path using the LocalSocket
5838           option. The default is "prefix/var/run/collectd-powerdns".
5839
5840   Plugin "processes"
5841       Collects information about processes of local system.
5842
5843       By default, with no process matches configured, only general statistics
5844       is collected: the number of processes in each state and fork rate.
5845
5846       Process matches can be configured by Process and ProcessMatch options.
5847       These may also be a block in which further options may be specified.
5848
5849       The statistics collected for matched processes are:
5850        - size of the resident segment size (RSS)
5851        - user- and system-time used
5852        - number of processes
5853        - number of threads
5854        - number of open files (under Linux)
5855        - number of memory mapped files (under Linux)
5856        - io data (where available)
5857        - context switches (under Linux)
5858        - minor and major pagefaults.
5859
5860       Synopsis:
5861
5862        <Plugin processes>
5863          CollectFileDescriptor true
5864          CollectContextSwitch true
5865          Process "name"
5866          ProcessMatch "name" "regex"
5867          <Process "collectd">
5868            CollectFileDescriptor false
5869            CollectContextSwitch false
5870          </Process>
5871          <ProcessMatch "name" "regex">
5872            CollectFileDescriptor false
5873            CollectContextSwitch true
5874          </ProcessMatch>
5875        </Plugin>
5876
5877       Process Name
5878           Select more detailed statistics of processes matching this name.
5879
5880           Some platforms have a limit on the length of process names.  Name
5881           must stay below this limit.
5882
5883       ProcessMatch name regex
5884           Select more detailed statistics of processes matching the specified
5885           regex (see regex(7) for details). The statistics of all matching
5886           processes are summed up and dispatched to the daemon using the
5887           specified name as an identifier. This allows one to "group" several
5888           processes together.  name must not contain slashes.
5889
5890       CollectContextSwitch Boolean
5891           Collect the number of context switches for matched processes.
5892           Disabled by default.
5893
5894       CollectFileDescriptor Boolean
5895           Collect number of file descriptors of matched processes.  Disabled
5896           by default.
5897
5898       CollectMemoryMaps Boolean
5899           Collect the number of memory mapped files of the process.  The
5900           limit for this number is configured via /proc/sys/vm/max_map_count
5901           in the Linux kernel.
5902
5903       Options CollectContextSwitch and CollectFileDescriptor may be used
5904       inside Process and ProcessMatch blocks - then they affect corresponding
5905       match only. Otherwise they set the default value for subsequent
5906       matches.
5907
5908   Plugin "protocols"
5909       Collects a lot of information about various network protocols, such as
5910       IP, TCP, UDP, etc.
5911
5912       Available configuration options:
5913
5914       Value Selector
5915           Selects whether or not to select a specific value. The string being
5916           matched is of the form "Protocol:ValueName", where Protocol will be
5917           used as the plugin instance and ValueName will be used as type
5918           instance. An example of the string being used would be
5919           "Tcp:RetransSegs".
5920
5921           You can use regular expressions to match a large number of values
5922           with just one configuration option. To select all "extended" TCP
5923           values, you could use the following statement:
5924
5925             Value "/^TcpExt:/"
5926
5927           Whether only matched values are selected or all matched values are
5928           ignored depends on the IgnoreSelected. By default, only matched
5929           values are selected.  If no value is configured at all, all values
5930           will be selected.
5931
5932           See /"IGNORELISTS" for details.
5933
5934       IgnoreSelected true|false
5935           If set to true, inverts the selection made by Value, i. e. all
5936           matching values will be ignored.
5937
5938   Plugin "python"
5939       This plugin embeds a Python-interpreter into collectd and provides an
5940       interface to collectd's plugin system. See collectd-python(5) for its
5941       documentation.
5942
5943   Plugin "routeros"
5944       The "routeros" plugin connects to a device running RouterOS, the Linux-
5945       based operating system for routers by MikroTik. The plugin uses
5946       librouteros to connect and reads information about the interfaces and
5947       wireless connections of the device. The configuration supports querying
5948       multiple routers:
5949
5950         <Plugin "routeros">
5951           <Router>
5952             Host "router0.example.com"
5953             User "collectd"
5954             Password "secr3t"
5955             CollectInterface true
5956             CollectCPULoad true
5957             CollectMemory true
5958           </Router>
5959           <Router>
5960             Host "router1.example.com"
5961             User "collectd"
5962             Password "5ecret"
5963             CollectInterface true
5964             CollectRegistrationTable true
5965             CollectDF true
5966             CollectDisk true
5967           </Router>
5968         </Plugin>
5969
5970       As you can see above, the configuration of the routeros plugin consists
5971       of one or more <Router> blocks. Within each block, the following
5972       options are understood:
5973
5974       Host Host
5975           Hostname or IP-address of the router to connect to.
5976
5977       Port Port
5978           Port name or port number used when connecting. If left unspecified,
5979           the default will be chosen by librouteros, currently "8728". This
5980           option expects a string argument, even when a numeric port number
5981           is given.
5982
5983       User User
5984           Use the user name User to authenticate. Defaults to "admin".
5985
5986       Password Password
5987           Set the password used to authenticate.
5988
5989       CollectInterface true|false
5990           When set to true, interface statistics will be collected for all
5991           interfaces present on the device. Defaults to false.
5992
5993       CollectRegistrationTable true|false
5994           When set to true, information about wireless LAN connections will
5995           be collected. Defaults to false.
5996
5997       CollectCPULoad true|false
5998           When set to true, information about the CPU usage will be
5999           collected. The number is a dimensionless value where zero indicates
6000           no CPU usage at all.  Defaults to false.
6001
6002       CollectMemory true|false
6003           When enabled, the amount of used and free memory will be collected.
6004           How used memory is calculated is unknown, for example whether or
6005           not caches are counted as used space.  Defaults to false.
6006
6007       CollectDF true|false
6008           When enabled, the amount of used and free disk space will be
6009           collected.  Defaults to false.
6010
6011       CollectDisk true|false
6012           When enabled, the number of sectors written and bad blocks will be
6013           collected.  Defaults to false.
6014
6015   Plugin "redis"
6016       The Redis plugin connects to one or more Redis servers and gathers
6017       information about each server's state. For each server there is a Node
6018       block which configures the connection parameters for this node.
6019
6020         <Plugin redis>
6021           <Node "example">
6022               Host "localhost"
6023               Port "6379"
6024               Timeout 2000
6025               <Query "LLEN myqueue">
6026                 Type "queue_length"
6027                 Instance "myqueue"
6028               <Query>
6029           </Node>
6030         </Plugin>
6031
6032       The information shown in the synopsis above is the default
6033       configuration which is used by the plugin if no configuration is
6034       present.
6035
6036       Node Nodename
6037           The Node block identifies a new Redis node, that is a new Redis
6038           instance running in an specified host and port. The name for node
6039           is a canonical identifier which is used as plugin instance. It is
6040           limited to 64 characters in length.
6041
6042       Host Hostname
6043           The Host option is the hostname or IP-address where the Redis
6044           instance is running on.
6045
6046       Port Port
6047           The Port option is the TCP port on which the Redis instance accepts
6048           connections. Either a service name of a port number may be given.
6049           Please note that numerical port numbers must be given as a string,
6050           too.
6051
6052       Password Password
6053           Use Password to authenticate when connecting to Redis.
6054
6055       Timeout Milliseconds
6056           The Timeout option set the socket timeout for node response. Since
6057           the Redis read function is blocking, you should keep this value as
6058           low as possible. Keep in mind that the sum of all Timeout values
6059           for all Nodes should be lower than Interval defined globally.
6060
6061       Query Querystring
6062           The Query block identifies a query to execute against the redis
6063           server.  There may be an arbitrary number of queries to execute.
6064
6065       Type Collectd type
6066           Within a query definition, a valid collectd type to use as when
6067           submitting the result of the query. When not supplied, will default
6068           to gauge.
6069
6070       Instance Type instance
6071           Within a query definition, an optional type instance to use when
6072           submitting the result of the query. When not supplied will default
6073           to the escaped command, up to 64 chars.
6074
6075   Plugin "rrdcached"
6076       The "rrdcached" plugin uses the RRDtool accelerator daemon,
6077       rrdcached(1), to store values to RRD files in an efficient manner. The
6078       combination of the "rrdcached" plugin and the "rrdcached" daemon is
6079       very similar to the way the "rrdtool" plugin works (see below). The
6080       added abstraction layer provides a number of benefits, though: Because
6081       the cache is not within "collectd" anymore, it does not need to be
6082       flushed when "collectd" is to be restarted. This results in much
6083       shorter (if any) gaps in graphs, especially under heavy load. Also, the
6084       "rrdtool" command line utility is aware of the daemon so that it can
6085       flush values to disk automatically when needed. This allows one to
6086       integrate automated flushing of values into graphing solutions much
6087       more easily.
6088
6089       There are disadvantages, though: The daemon may reside on a different
6090       host, so it may not be possible for "collectd" to create the
6091       appropriate RRD files anymore. And even if "rrdcached" runs on the same
6092       host, it may run in a different base directory, so relative paths may
6093       do weird stuff if you're not careful.
6094
6095       So the recommended configuration is to let "collectd" and "rrdcached"
6096       run on the same host, communicating via a UNIX domain socket. The
6097       DataDir setting should be set to an absolute path, so that a changed
6098       base directory does not result in RRD files being created / expected in
6099       the wrong place.
6100
6101       DaemonAddress Address
6102           Address of the daemon as understood by the "rrdc_connect" function
6103           of the RRD library. See rrdcached(1) for details. Example:
6104
6105             <Plugin "rrdcached">
6106               DaemonAddress "unix:/var/run/rrdcached.sock"
6107             </Plugin>
6108
6109       DataDir Directory
6110           Set the base directory in which the RRD files reside. If this is a
6111           relative path, it is relative to the working base directory of the
6112           "rrdcached" daemon!  Use of an absolute path is recommended.
6113
6114       CreateFiles true|false
6115           Enables or disables the creation of RRD files. If the daemon is not
6116           running locally, or DataDir is set to a relative path, this will
6117           not work as expected. Default is true.
6118
6119       CreateFilesAsync false|true
6120           When enabled, new RRD files are enabled asynchronously, using a
6121           separate thread that runs in the background. This prevents writes
6122           to block, which is a problem especially when many hundreds of files
6123           need to be created at once. However, since the purpose of creating
6124           the files asynchronously is not to block until the file is
6125           available, values before the file is available will be discarded.
6126           When disabled (the default) files are created synchronously,
6127           blocking for a short while, while the file is being written.
6128
6129       StepSize Seconds
6130           Force the stepsize of newly created RRD-files. Ideally (and per
6131           default) this setting is unset and the stepsize is set to the
6132           interval in which the data is collected. Do not use this option
6133           unless you absolutely have to for some reason. Setting this option
6134           may cause problems with the "snmp plugin", the "exec plugin" or
6135           when the daemon is set up to receive data from other hosts.
6136
6137       HeartBeat Seconds
6138           Force the heartbeat of newly created RRD-files. This setting should
6139           be unset in which case the heartbeat is set to twice the StepSize
6140           which should equal the interval in which data is collected. Do not
6141           set this option unless you have a very good reason to do so.
6142
6143       RRARows NumRows
6144           The "rrdtool plugin" calculates the number of PDPs per CDP based on
6145           the StepSize, this setting and a timespan. This plugin creates RRD-
6146           files with three times five RRAs, i. e. five RRAs with the CFs MIN,
6147           AVERAGE, and MAX. The five RRAs are optimized for graphs covering
6148           one hour, one day, one week, one month, and one year.
6149
6150           So for each timespan, it calculates how many PDPs need to be
6151           consolidated into one CDP by calculating:
6152             number of PDPs = timespan / (stepsize * rrarows)
6153
6154           Bottom line is, set this no smaller than the width of you graphs in
6155           pixels. The default is 1200.
6156
6157       RRATimespan Seconds
6158           Adds an RRA-timespan, given in seconds. Use this option multiple
6159           times to have more then one RRA. If this option is never used, the
6160           built-in default of (3600, 86400, 604800, 2678400, 31622400) is
6161           used.
6162
6163           For more information on how RRA-sizes are calculated see RRARows
6164           above.
6165
6166       XFF Factor
6167           Set the "XFiles Factor". The default is 0.1. If unsure, don't set
6168           this option.  Factor must be in the range "[0.0-1.0)", i.e. between
6169           zero (inclusive) and one (exclusive).
6170
6171       CollectStatistics false|true
6172           When set to true, various statistics about the rrdcached daemon
6173           will be collected, with "rrdcached" as the plugin name. Defaults to
6174           false.
6175
6176           Statistics are read via rrdcacheds socket using the STATS command.
6177           See rrdcached(1) for details.
6178
6179   Plugin "rrdtool"
6180       You can use the settings StepSize, HeartBeat, RRARows, and XFF to fine-
6181       tune your RRD-files. Please read rrdcreate(1) if you encounter problems
6182       using these settings. If you don't want to dive into the depths of
6183       RRDtool, you can safely ignore these settings.
6184
6185       DataDir Directory
6186           Set the directory to store RRD files under. By default RRD files
6187           are generated beneath the daemon's working directory, i.e. the
6188           BaseDir.
6189
6190       CreateFilesAsync false|true
6191           When enabled, new RRD files are enabled asynchronously, using a
6192           separate thread that runs in the background. This prevents writes
6193           to block, which is a problem especially when many hundreds of files
6194           need to be created at once. However, since the purpose of creating
6195           the files asynchronously is not to block until the file is
6196           available, values before the file is available will be discarded.
6197           When disabled (the default) files are created synchronously,
6198           blocking for a short while, while the file is being written.
6199
6200       StepSize Seconds
6201           Force the stepsize of newly created RRD-files. Ideally (and per
6202           default) this setting is unset and the stepsize is set to the
6203           interval in which the data is collected. Do not use this option
6204           unless you absolutely have to for some reason. Setting this option
6205           may cause problems with the "snmp plugin", the "exec plugin" or
6206           when the daemon is set up to receive data from other hosts.
6207
6208       HeartBeat Seconds
6209           Force the heartbeat of newly created RRD-files. This setting should
6210           be unset in which case the heartbeat is set to twice the StepSize
6211           which should equal the interval in which data is collected. Do not
6212           set this option unless you have a very good reason to do so.
6213
6214       RRARows NumRows
6215           The "rrdtool plugin" calculates the number of PDPs per CDP based on
6216           the StepSize, this setting and a timespan. This plugin creates RRD-
6217           files with three times five RRAs, i.e. five RRAs with the CFs MIN,
6218           AVERAGE, and MAX. The five RRAs are optimized for graphs covering
6219           one hour, one day, one week, one month, and one year.
6220
6221           So for each timespan, it calculates how many PDPs need to be
6222           consolidated into one CDP by calculating:
6223             number of PDPs = timespan / (stepsize * rrarows)
6224
6225           Bottom line is, set this no smaller than the width of you graphs in
6226           pixels. The default is 1200.
6227
6228       RRATimespan Seconds
6229           Adds an RRA-timespan, given in seconds. Use this option multiple
6230           times to have more then one RRA. If this option is never used, the
6231           built-in default of (3600, 86400, 604800, 2678400, 31622400) is
6232           used.
6233
6234           For more information on how RRA-sizes are calculated see RRARows
6235           above.
6236
6237       XFF Factor
6238           Set the "XFiles Factor". The default is 0.1. If unsure, don't set
6239           this option.  Factor must be in the range "[0.0-1.0)", i.e. between
6240           zero (inclusive) and one (exclusive).
6241
6242       CacheFlush Seconds
6243           When the "rrdtool" plugin uses a cache (by setting CacheTimeout,
6244           see below) it writes all values for a certain RRD-file if the
6245           oldest value is older than (or equal to) the number of seconds
6246           specified by CacheTimeout.  That check happens on new values
6247           arriwal. If some RRD-file is not updated anymore for some reason
6248           (the computer was shut down, the network is broken, etc.) some
6249           values may still be in the cache. If CacheFlush is set, then every
6250           Seconds seconds the entire cache is searched for entries older than
6251           CacheTimeout + RandomTimeout seconds. The entries found are written
6252           to disk. Since scanning the entire cache is kind of expensive and
6253           does nothing under normal circumstances, this value should not be
6254           too small. 900 seconds might be a good value, though setting this
6255           to 7200 seconds doesn't normally do much harm either.
6256
6257           Defaults to 10x CacheTimeout.  CacheFlush must be larger than or
6258           equal to CacheTimeout, otherwise the above default is used.
6259
6260       CacheTimeout Seconds
6261           If this option is set to a value greater than zero, the "rrdtool
6262           plugin" will save values in a cache, as described above. Writing
6263           multiple values at once reduces IO-operations and thus lessens the
6264           load produced by updating the files.  The trade off is that the
6265           graphs kind of "drag behind" and that more memory is used.
6266
6267       WritesPerSecond Updates
6268           When collecting many statistics with collectd and the "rrdtool"
6269           plugin, you will run serious performance problems. The CacheFlush
6270           setting and the internal update queue assert that collectd
6271           continues to work just fine even under heavy load, but the system
6272           may become very unresponsive and slow. This is a problem especially
6273           if you create graphs from the RRD files on the same machine, for
6274           example using the "graph.cgi" script included in the
6275           "contrib/collection3/" directory.
6276
6277           This setting is designed for very large setups. Setting this option
6278           to a value between 25 and 80 updates per second, depending on your
6279           hardware, will leave the server responsive enough to draw graphs
6280           even while all the cached values are written to disk. Flushed
6281           values, i. e. values that are forced to disk by the FLUSH command,
6282           are not effected by this limit. They are still written as fast as
6283           possible, so that web frontends have up to date data when
6284           generating graphs.
6285
6286           For example: If you have 100,000 RRD files and set WritesPerSecond
6287           to 30 updates per second, writing all values to disk will take
6288           approximately 56 minutes. Together with the flushing ability that's
6289           integrated into "collection3" you'll end up with a responsive and
6290           fast system, up to date graphs and basically a "backup" of your
6291           values every hour.
6292
6293       RandomTimeout Seconds
6294           When set, the actual timeout for each value is chosen randomly
6295           between CacheTimeout-RandomTimeout and CacheTimeout+RandomTimeout.
6296           The intention is to avoid high load situations that appear when
6297           many values timeout at the same time. This is especially a problem
6298           shortly after the daemon starts, because all values were added to
6299           the internal cache at roughly the same time.
6300
6301   Plugin "sensors"
6302       The Sensors plugin uses lm_sensors to retrieve sensor-values. This
6303       means that all the needed modules have to be loaded and lm_sensors has
6304       to be configured (most likely by editing /etc/sensors.conf. Read
6305       sensors.conf(5) for details.
6306
6307       The lm_sensors homepage can be found at
6308       <http://secure.netroedge.com/~lm78/>.
6309
6310       SensorConfigFile File
6311           Read the lm_sensors configuration from File. When unset
6312           (recommended), the library's default will be used.
6313
6314       Sensor chip-bus-address/type-feature
6315           Selects the name of the sensor which you want to collect or ignore,
6316           depending on the IgnoreSelected below. For example, the option
6317           "Sensor it8712-isa-0290/voltage-in1" will cause collectd to gather
6318           data for the voltage sensor in1 of the it8712 on the isa bus at the
6319           address 0290.
6320
6321           See /"IGNORELISTS" for details.
6322
6323       IgnoreSelected true|false
6324           If no configuration if given, the sensors-plugin will collect data
6325           from all sensors. This may not be practical, especially for
6326           uninteresting sensors.  Thus, you can use the Sensor-option to pick
6327           the sensors you're interested in. Sometimes, however, it's
6328           easier/preferred to collect all sensors except a few ones. This
6329           option enables you to do that: By setting IgnoreSelected to true
6330           the effect of Sensor is inverted: All selected sensors are ignored
6331           and all other sensors are collected.
6332
6333       UseLabels true|false
6334           Configures how sensor readings are reported. When set to true,
6335           sensor readings are reported using their descriptive label (e.g.
6336           "VCore"). When set to false (the default) the sensor name is used
6337           ("in0").
6338
6339   Plugin "sigrok"
6340       The sigrok plugin uses libsigrok to retrieve measurements from any
6341       device supported by the sigrok <http://sigrok.org/> project.
6342
6343       Synopsis
6344
6345        <Plugin sigrok>
6346          LogLevel 3
6347          <Device "AC Voltage">
6348             Driver "fluke-dmm"
6349             MinimumInterval 10
6350             Conn "/dev/ttyUSB2"
6351          </Device>
6352          <Device "Sound Level">
6353             Driver "cem-dt-885x"
6354             Conn "/dev/ttyUSB1"
6355          </Device>
6356        </Plugin>
6357
6358       LogLevel 0-5
6359           The sigrok logging level to pass on to the collectd log, as a
6360           number between 0 and 5 (inclusive). These levels correspond to
6361           "None", "Errors", "Warnings", "Informational", "Debug "and "Spew",
6362           respectively.  The default is 2 ("Warnings"). The sigrok log
6363           messages, regardless of their level, are always submitted to
6364           collectd at its INFO log level.
6365
6366       <Device Name>
6367           A sigrok-supported device, uniquely identified by this section's
6368           options. The Name is passed to collectd as the plugin instance.
6369
6370       Driver DriverName
6371           The sigrok driver to use for this device.
6372
6373       Conn ConnectionSpec
6374           If the device cannot be auto-discovered, or more than one might be
6375           discovered by the driver, ConnectionSpec specifies the connection
6376           string to the device.  It can be of the form of a device path
6377           (e.g. "/dev/ttyUSB2"), or, in case of a non-serial USB-connected
6378           device, the USB VendorID.ProductID separated by a period
6379           (e.g. 0403.6001). A USB device can also be specified as Bus.Address
6380           (e.g. 1.41).
6381
6382       SerialComm SerialSpec
6383           For serial devices with non-standard port settings, this option can
6384           be used to specify them in a form understood by sigrok,
6385           e.g. "9600/8n1".  This should not be necessary; drivers know how to
6386           communicate with devices they support.
6387
6388       MinimumInterval Seconds
6389           Specifies the minimum time between measurement dispatches to
6390           collectd, in seconds. Since some sigrok supported devices can
6391           acquire measurements many times per second, it may be necessary to
6392           throttle these. For example, the RRD plugin cannot process writes
6393           more than once per second.
6394
6395           The default MinimumInterval is 0, meaning measurements received
6396           from the device are always dispatched to collectd. When throttled,
6397           unused measurements are discarded.
6398
6399   Plugin "smart"
6400       The "smart" plugin collects SMART information from physical disks.
6401       Values collectd include temperature, power cycle count, poweron time
6402       and bad sectors. Also, all SMART attributes are collected along with
6403       the normalized current value, the worst value, the threshold and a
6404       human readable value.
6405
6406       Using the following two options you can ignore some disks or configure
6407       the collection only of specific disks.
6408
6409       Disk Name
6410           Select the disk Name. Whether it is collected or ignored depends on
6411           the IgnoreSelected setting, see below. As with other plugins that
6412           use the daemon's ignorelist functionality, a string that starts and
6413           ends with a slash is interpreted as a regular expression. Examples:
6414
6415             Disk "sdd"
6416             Disk "/hda[34]/"
6417
6418           See /"IGNORELISTS" for details.
6419
6420       IgnoreSelected true|false
6421           Sets whether selected disks, i. e. the ones matches by any of the
6422           Disk statements, are ignored or if all other disks are ignored. The
6423           behavior (hopefully) is intuitive: If no Disk option is configured,
6424           all disks are collected. If at least one Disk option is given and
6425           no IgnoreSelected or set to false, only matching disks will be
6426           collected. If IgnoreSelected is set to true, all disks are
6427           collected except the ones matched.
6428
6429       IgnoreSleepMode true|false
6430           Normally, the "smart" plugin will ignore disks that are reported to
6431           be asleep.  This option disables the sleep mode check and allows
6432           the plugin to collect data from these disks anyway. This is useful
6433           in cases where libatasmart mistakenly reports disks as asleep
6434           because it has not been updated to incorporate support for newer
6435           idle states in the ATA spec.
6436
6437       UseSerial true|false
6438           A disk's kernel name (e.g., sda) can change from one boot to the
6439           next. If this option is enabled, the "smart" plugin will use the
6440           disk's serial number (e.g., HGST_HUH728080ALE600_2EJ8VH8X) instead
6441           of the kernel name as the key for storing data. This ensures that
6442           the data for a given disk will be kept together even if the kernel
6443           name changes.
6444
6445   Plugin "snmp"
6446       Since the configuration of the "snmp plugin" is a little more
6447       complicated than other plugins, its documentation has been moved to an
6448       own manpage, collectd-snmp(5). Please see there for details.
6449
6450   Plugin "snmp_agent"
6451       The snmp_agent plugin is an AgentX subagent that receives and handles
6452       queries from SNMP master agent and returns the data collected by read
6453       plugins.  The snmp_agent plugin handles requests only for OIDs
6454       specified in configuration file. To handle SNMP queries the plugin gets
6455       data from collectd and translates requested values from collectd's
6456       internal format to SNMP format.  This plugin is a generic plugin and
6457       cannot work without configuration.  For more details on AgentX subagent
6458       see <http://www.net-snmp.org/tutorial/tutorial-5/toolkit/demon/>
6459
6460       Synopsis:
6461
6462         <Plugin snmp_agent>
6463           <Data "memAvailReal">
6464             Plugin "memory"
6465             #PluginInstance "some"
6466             Type "memory"
6467             TypeInstance "free"
6468             OIDs "1.3.6.1.4.1.2021.4.6.0"
6469           </Data>
6470           <Table "ifTable">
6471             IndexOID "IF-MIB::ifIndex"
6472             SizeOID "IF-MIB::ifNumber"
6473             <Data "ifDescr">
6474               Instance true
6475               Plugin "interface"
6476               OIDs "IF-MIB::ifDescr"
6477             </Data>
6478             <Data "ifOctets">
6479               Plugin "interface"
6480               Type "if_octets"
6481               TypeInstance ""
6482               OIDs "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets"
6483             </Data>
6484           </Table>
6485         </Plugin>
6486
6487       There are two types of blocks that can be contained in the "<Plugin
6488       snmp_agent>" block: Data and Table:
6489
6490       The Data block
6491
6492       The Data block defines a list OIDs that are to be handled. This block
6493       can define scalar or table OIDs. If Data block is defined inside of
6494       Table block it reperesents table OIDs.  The following options can be
6495       set:
6496
6497       Instance true|false
6498           When Instance is set to true, the value for requested OID is copied
6499           from plugin instance field of corresponding collectd value. If Data
6500           block defines scalar data type Instance has no effect and can be
6501           omitted.
6502
6503       Plugin String
6504           Read plugin name whose collected data will be mapped to specified
6505           OIDs.
6506
6507       PluginInstance String
6508           Read plugin instance whose collected data will be mapped to
6509           specified OIDs.  The field is optional and by default there is no
6510           plugin instance check.  Allowed only if Data block defines scalar
6511           data type.
6512
6513       Type String
6514           Collectd's type that is to be used for specified OID, e. g.
6515           "if_octets" for example. The types are read from the TypesDB (see
6516           collectd.conf(5)).
6517
6518       TypeInstance String
6519           Collectd's type-instance that is to be used for specified OID.
6520
6521       OIDs OID [OID ...]
6522           Configures the OIDs to be handled by snmp_agent plugin. Values for
6523           these OIDs are taken from collectd data type specified by Plugin,
6524           PluginInstance, Type, TypeInstance fields of this Data block.
6525           Number of the OIDs configured should correspond to number of values
6526           in specified Type.  For example two OIDs "IF-MIB::ifInOctets"
6527           "IF-MIB::ifOutOctets" can be mapped to "rx" and "tx" values of
6528           "if_octets" type.
6529
6530       Scale Value
6531           The values taken from collectd are multiplied by Value. The field
6532           is optional and the default is 1.0.
6533
6534       Shift Value
6535           Value is added to values from collectd after they have been
6536           multiplied by Scale value. The field is optional and the default
6537           value is 0.0.
6538
6539       The Table block
6540
6541       The Table block defines a collection of Data blocks that belong to one
6542       snmp table. In addition to multiple Data blocks the following options
6543       can be set:
6544
6545       IndexOID OID
6546           OID that is handled by the plugin and is mapped to numerical index
6547           value that is generated by the plugin for each table record.
6548
6549       SizeOID OID
6550           OID that is handled by the plugin. Returned value is the number of
6551           records in the table. The field is optional.
6552
6553   Plugin "statsd"
6554       The statsd plugin listens to a UDP socket, reads "events" in the statsd
6555       protocol and dispatches rates or other aggregates of these numbers
6556       periodically.
6557
6558       The plugin implements the Counter, Timer, Gauge and Set types which are
6559       dispatched as the collectd types "derive", "latency", "gauge" and
6560       "objects" respectively.
6561
6562       The following configuration options are valid:
6563
6564       Host Host
6565           Bind to the hostname / address Host. By default, the plugin will
6566           bind to the "any" address, i.e. accept packets sent to any of the
6567           hosts addresses.
6568
6569       Port Port
6570           UDP port to listen to. This can be either a service name or a port
6571           number.  Defaults to 8125.
6572
6573       DeleteCounters false|true
6574       DeleteTimers false|true
6575       DeleteGauges false|true
6576       DeleteSets false|true
6577           These options control what happens if metrics are not updated in an
6578           interval.  If set to False, the default, metrics are dispatched
6579           unchanged, i.e. the rate of counters and size of sets will be zero,
6580           timers report "NaN" and gauges are unchanged. If set to True, the
6581           such metrics are not dispatched and removed from the internal
6582           cache.
6583
6584       CounterSum false|true
6585           When enabled, creates a "count" metric which reports the change
6586           since the last read. This option primarily exists for compatibility
6587           with the statsd implementation by Etsy.
6588
6589       TimerPercentile Percent
6590           Calculate and dispatch the configured percentile, i.e. compute the
6591           latency, so that Percent of all reported timers are smaller than or
6592           equal to the computed latency. This is useful for cutting off the
6593           long tail latency, as it's often done in Service Level Agreements
6594           (SLAs).
6595
6596           Different percentiles can be calculated by setting this option
6597           several times.  If none are specified, no percentiles are
6598           calculated / dispatched.
6599
6600       TimerLower false|true
6601       TimerUpper false|true
6602       TimerSum false|true
6603       TimerCount false|true
6604           Calculate and dispatch various values out of Timer metrics received
6605           during an interval. If set to False, the default, these values
6606           aren't calculated / dispatched.
6607
6608           Please note what reported timer values less than 0.001 are ignored
6609           in all Timer* reports.
6610
6611   Plugin "swap"
6612       The Swap plugin collects information about used and available swap
6613       space. On Linux and Solaris, the following options are available:
6614
6615       ReportByDevice false|true
6616           Configures how to report physical swap devices. If set to false
6617           (the default), the summary over all swap devices is reported only,
6618           i.e. the globally used and available space over all devices. If
6619           true is configured, the used and available space of each device
6620           will be reported separately.
6621
6622           This option is only available if the Swap plugin can read
6623           "/proc/swaps" (under Linux) or use the swapctl(2) mechanism (under
6624           Solaris).
6625
6626       ReportBytes false|true
6627           When enabled, the swap I/O is reported in bytes. When disabled, the
6628           default, swap I/O is reported in pages. This option is available
6629           under Linux only.
6630
6631       ValuesAbsolute true|false
6632           Enables or disables reporting of absolute swap metrics, i.e. number
6633           of bytes available and used. Defaults to true.
6634
6635       ValuesPercentage false|true
6636           Enables or disables reporting of relative swap metrics, i.e.
6637           percent available and free. Defaults to false.
6638
6639           This is useful for deploying collectd in a heterogeneous
6640           environment, where swap sizes differ and you want to specify
6641           generic thresholds or similar.
6642
6643       ReportIO true|false
6644           Enables or disables reporting swap IO. Defaults to true.
6645
6646           This is useful for the cases when swap IO is not neccessary, is not
6647           available, or is not reliable.
6648
6649   Plugin "syslog"
6650       LogLevel debug|info|notice|warning|err
6651           Sets the log-level. If, for example, set to notice, then all events
6652           with severity notice, warning, or err will be submitted to the
6653           syslog-daemon.
6654
6655           Please note that debug is only available if collectd has been
6656           compiled with debugging support.
6657
6658       NotifyLevel OKAY|WARNING|FAILURE
6659           Controls which notifications should be sent to syslog. The default
6660           behaviour is not to send any. Less severe notifications always
6661           imply logging more severe notifications: Setting this to OKAY means
6662           all notifications will be sent to syslog, setting this to WARNING
6663           will send WARNING and FAILURE notifications but will dismiss OKAY
6664           notifications. Setting this option to FAILURE will only send
6665           failures to syslog.
6666
6667   Plugin "table"
6668       The "table plugin" provides generic means to parse tabular data and
6669       dispatch user specified values. Values are selected based on column
6670       numbers. For example, this plugin may be used to get values from the
6671       Linux proc(5) filesystem or CSV (comma separated values) files.
6672
6673         <Plugin table>
6674           <Table "/proc/slabinfo">
6675             #Plugin "slab"
6676             Instance "slabinfo"
6677             Separator " "
6678             <Result>
6679               Type gauge
6680               InstancePrefix "active_objs"
6681               InstancesFrom 0
6682               ValuesFrom 1
6683             </Result>
6684             <Result>
6685               Type gauge
6686               InstancePrefix "objperslab"
6687               InstancesFrom 0
6688               ValuesFrom 4
6689             </Result>
6690           </Table>
6691         </Plugin>
6692
6693       The configuration consists of one or more Table blocks, each of which
6694       configures one file to parse. Within each Table block, there are one or
6695       more Result blocks, which configure which data to select and how to
6696       interpret it.
6697
6698       The following options are available inside a Table block:
6699
6700       Plugin Plugin
6701           If specified, Plugin is used as the plugin name when submitting
6702           values.  Defaults to table.
6703
6704       Instance instance
6705           If specified, instance is used as the plugin instance. If omitted,
6706           the filename of the table is used instead, with all special
6707           characters replaced with an underscore ("_").
6708
6709       Separator string
6710           Any character of string is interpreted as a delimiter between the
6711           different columns of the table. A sequence of two or more
6712           contiguous delimiters in the table is considered to be a single
6713           delimiter, i. e. there cannot be any empty columns. The plugin uses
6714           the strtok_r(3) function to parse the lines of a table - see its
6715           documentation for more details. This option is mandatory.
6716
6717           A horizontal tab, newline and carriage return may be specified by
6718           "\\t", "\\n" and "\\r" respectively. Please note that the double
6719           backslashes are required because of collectd's config parsing.
6720
6721       The following options are available inside a Result block:
6722
6723       Type type
6724           Sets the type used to dispatch the values to the daemon. Detailed
6725           information about types and their configuration can be found in
6726           types.db(5). This option is mandatory.
6727
6728       InstancePrefix prefix
6729           If specified, prepend prefix to the type instance. If omitted, only
6730           the InstancesFrom option is considered for the type instance.
6731
6732       InstancesFrom column0 [column1 ...]
6733           If specified, the content of the given columns (identified by the
6734           column number starting at zero) will be used to create the type
6735           instance for each row. Multiple values (and the instance prefix)
6736           will be joined together with dashes (-) as separation character. If
6737           omitted, only the InstancePrefix option is considered for the type
6738           instance.
6739
6740           The plugin itself does not check whether or not all built instances
6741           are different. ItXs your responsibility to assure that each is
6742           unique. This is especially true, if you do not specify
6743           InstancesFrom: You have to make sure that the table only contains
6744           one row.
6745
6746           If neither InstancePrefix nor InstancesFrom is given, the type
6747           instance will be empty.
6748
6749       ValuesFrom column0 [column1 ...]
6750           Specifies the columns (identified by the column numbers starting at
6751           zero) whose content is used as the actual data for the data sets
6752           that are dispatched to the daemon. How many such columns you need
6753           is determined by the Type setting above. If you specify too many or
6754           not enough columns, the plugin will complain about that and no data
6755           will be submitted to the daemon. The plugin uses strtoll(3) and
6756           strtod(3) to parse counter and gauge values respectively, so
6757           anything supported by those functions is supported by the plugin as
6758           well. This option is mandatory.
6759
6760   Plugin "tail"
6761       The "tail plugin" follows logfiles, just like tail(1) does, parses each
6762       line and dispatches found values. What is matched can be configured by
6763       the user using (extended) regular expressions, as described in
6764       regex(7).
6765
6766         <Plugin "tail">
6767           <File "/var/log/exim4/mainlog">
6768             Plugin "mail"
6769             Instance "exim"
6770             Interval 60
6771             <Match>
6772               Regex "S=([1-9][0-9]*)"
6773               DSType "CounterAdd"
6774               Type "ipt_bytes"
6775               Instance "total"
6776             </Match>
6777             <Match>
6778               Regex "\\<R=local_user\\>"
6779               ExcludeRegex "\\<R=local_user\\>.*mail_spool defer"
6780               DSType "CounterInc"
6781               Type "counter"
6782               Instance "local_user"
6783             </Match>
6784             <Match>
6785               Regex "l=([0-9]*\\.[0-9]*)"
6786               <DSType "Distribution">
6787                 Percentile 99
6788                 Bucket 0 100
6789                 #BucketType "bucket"
6790               </DSType>
6791               Type "latency"
6792               Instance "foo"
6793             </Match>
6794           </File>
6795         </Plugin>
6796
6797       The config consists of one or more File blocks, each of which
6798       configures one logfile to parse. Within each File block, there are one
6799       or more Match blocks, which configure a regular expression to search
6800       for.
6801
6802       The Plugin and Instance options in the File block may be used to set
6803       the plugin name and instance respectively. So in the above example the
6804       plugin name "mail-exim" would be used.
6805
6806       These options are applied for all Match blocks that follow it, until
6807       the next Plugin or Instance option. This way you can extract several
6808       plugin instances from one logfile, handy when parsing syslog and the
6809       like.
6810
6811       The Interval option allows you to define the length of time between
6812       reads. If this is not set, the default Interval will be used.
6813
6814       Each Match block has the following options to describe how the match
6815       should be performed:
6816
6817       Regex regex
6818           Sets the regular expression to use for matching against a line. The
6819           first subexpression has to match something that can be turned into
6820           a number by strtoll(3) or strtod(3), depending on the value of
6821           "CounterAdd", see below. Because extended regular expressions are
6822           used, you do not need to use backslashes for subexpressions! If in
6823           doubt, please consult regex(7). Due to collectd's config parsing
6824           you need to escape backslashes, though. So if you want to match
6825           literal parentheses you need to do the following:
6826
6827             Regex "SPAM \\(Score: (-?[0-9]+\\.[0-9]+)\\)"
6828
6829       ExcludeRegex regex
6830           Sets an optional regular expression to use for excluding lines from
6831           the match.  An example which excludes all connections from
6832           localhost from the match:
6833
6834             ExcludeRegex "127\\.0\\.0\\.1"
6835
6836       DSType Type
6837           Sets how the values are cumulated. Type is one of:
6838
6839           GaugeAverage
6840               Calculate the average.
6841
6842           GaugeMin
6843               Use the smallest number only.
6844
6845           GaugeMax
6846               Use the greatest number only.
6847
6848           GaugeLast
6849               Use the last number found.
6850
6851           GaugePersist
6852               Use the last number found. The number is not reset at the end
6853               of an interval.  It is continously reported until another
6854               number is matched. This is intended for cases in which only
6855               state changes are reported, for example a thermometer that only
6856               reports the temperature when it changes.
6857
6858           CounterSet
6859           DeriveSet
6860           AbsoluteSet
6861               The matched number is a counter. Simply sets the internal
6862               counter to this value. Variants exist for "COUNTER", "DERIVE",
6863               and "ABSOLUTE" data sources.
6864
6865           GaugeAdd
6866           CounterAdd
6867           DeriveAdd
6868               Add the matched value to the internal counter. In case of
6869               DeriveAdd, the matched number may be negative, which will
6870               effectively subtract from the internal counter.
6871
6872           GaugeInc
6873           CounterInc
6874           DeriveInc
6875               Increase the internal counter by one. These DSType are the only
6876               ones that do not use the matched subexpression, but simply
6877               count the number of matched lines. Thus, you may use a regular
6878               expression without submatch in this case.
6879
6880           Distribution
6881               Type to do calculations based on the distribution of values,
6882               primarily calculating percentiles. This is primarily geared
6883               towards latency, but can be used for other metrics as well. The
6884               range of values tracked with this setting must be in the range
6885               (0X2^34) and can be fractional. Please note that neither zero
6886               nor 2^34 are inclusive bounds, i.e. zero cannot be handled by a
6887               distribution.
6888
6889               This option must be used together with the Percentile and/or
6890               Bucket options.
6891
6892               Synopsis:
6893
6894                 <DSType "Distribution">
6895                   Percentile 99
6896                   Bucket 0 100
6897                   BucketType "bucket"
6898                 </DSType>
6899
6900               Percentile Percent
6901                   Calculate and dispatch the configured percentile, i.e.
6902                   compute the value, so that Percent of all matched values
6903                   are smaller than or equal to the computed latency.
6904
6905                   Metrics are reported with the type Type (the value of the
6906                   above option) and the type instance
6907                   "[<Instance>-]<Percent>".
6908
6909                   This option may be repeated to calculate more than one
6910                   percentile.
6911
6912               Bucket lower_bound upper_bound
6913                   Export the number of values (a "DERIVE") falling within the
6914                   given range. Both, lower_bound and upper_bound may be a
6915                   fractional number, such as 0.5.  Each Bucket option
6916                   specifies an interval "(lower_bound, upper_bound]", i.e.
6917                   the range excludes the lower bound and includes the upper
6918                   bound. lower_bound and upper_bound may be zero, meaning no
6919                   lower/upper bound.
6920
6921                   To export the entire (0Xinf) range without overlap, use the
6922                   upper bound of the previous range as the lower bound of the
6923                   following range. In other words, use the following schema:
6924
6925                     Bucket   0   1
6926                     Bucket   1   2
6927                     Bucket   2   5
6928                     Bucket   5  10
6929                     Bucket  10  20
6930                     Bucket  20  50
6931                     Bucket  50   0
6932
6933                   Metrics are reported with the type set by BucketType option
6934                   ("bucket" by default) and the type instance
6935                   "<Type>[-<Instance>]-<lower_bound>_<upper_bound>".
6936
6937                   This option may be repeated to calculate more than one
6938                   rate.
6939
6940               BucketType Type
6941                   Sets the type used to dispatch Bucket metrics.  Optional,
6942                   by default "bucket" will be used.
6943
6944           The Gauge* and Distribution types interpret the submatch as a
6945           floating point number, using strtod(3). The Counter* and
6946           AbsoluteSet types interpret the submatch as an unsigned integer
6947           using strtoull(3). The Derive* types interpret the submatch as a
6948           signed integer using strtoll(3). CounterInc and DeriveInc do not
6949           use the submatch at all and it may be omitted in this case.
6950
6951       Type Type
6952           Sets the type used to dispatch this value. Detailed information
6953           about types and their configuration can be found in types.db(5).
6954
6955       Instance TypeInstance
6956           This optional setting sets the type instance to use.
6957
6958   Plugin "tail_csv"
6959       The tail_csv plugin reads files in the CSV format, e.g. the statistics
6960       file written by Snort.
6961
6962       Synopsis:
6963
6964        <Plugin "tail_csv">
6965          <Metric "snort-dropped">
6966              Type "percent"
6967              Instance "dropped"
6968              Index 1
6969          </Metric>
6970          <File "/var/log/snort/snort.stats">
6971              Plugin "snortstats"
6972              Instance "eth0"
6973              Interval 600
6974              Collect "snort-dropped"
6975          </File>
6976        </Plugin>
6977
6978       The configuration consists of one or more Metric blocks that define an
6979       index into the line of the CSV file and how this value is mapped to
6980       collectd's internal representation. These are followed by one or more
6981       Instance blocks which configure which file to read, in which interval
6982       and which metrics to extract.
6983
6984       <Metric Name>
6985           The Metric block configures a new metric to be extracted from the
6986           statistics file and how it is mapped on collectd's data model. The
6987           string Name is only used inside the Instance blocks to refer to
6988           this block, so you can use one Metric block for multiple CSV files.
6989
6990           Type Type
6991               Configures which Type to use when dispatching this metric.
6992               Types are defined in the types.db(5) file, see the appropriate
6993               manual page for more information on specifying types. Only
6994               types with a single data source are supported by the tail_csv
6995               plugin. The information whether the value is an absolute value
6996               (i.e. a "GAUGE") or a rate (i.e. a "DERIVE") is taken from the
6997               Type's definition.
6998
6999           Instance TypeInstance
7000               If set, TypeInstance is used to populate the type instance
7001               field of the created value lists. Otherwise, no type instance
7002               is used.
7003
7004           ValueFrom Index
7005               Configure to read the value from the field with the zero-based
7006               index Index.  If the value is parsed as signed integer,
7007               unsigned integer or double depends on the Type setting, see
7008               above.
7009
7010       <File Path>
7011           Each File block represents one CSV file to read. There must be at
7012           least one File block but there can be multiple if you have multiple
7013           CSV files.
7014
7015           Plugin Plugin
7016               Use Plugin as the plugin name when submitting values.  Defaults
7017               to "tail_csv".
7018
7019           Instance PluginInstance
7020               Sets the plugin instance used when dispatching the values.
7021
7022           Collect Metric
7023               Specifies which Metric to collect. This option must be
7024               specified at least once, and you can use this option multiple
7025               times to specify more than one metric to be extracted from this
7026               statistic file.
7027
7028           Interval Seconds
7029               Configures the interval in which to read values from this
7030               instance / file.  Defaults to the plugin's default interval.
7031
7032           TimeFrom Index
7033               Rather than using the local time when dispatching a value, read
7034               the timestamp from the field with the zero-based index Index.
7035               The value is interpreted as seconds since epoch. The value is
7036               parsed as a double and may be factional.
7037
7038   Plugin "teamspeak2"
7039       The "teamspeak2 plugin" connects to the query port of a teamspeak2
7040       server and polls interesting global and virtual server data. The plugin
7041       can query only one physical server but unlimited virtual servers. You
7042       can use the following options to configure it:
7043
7044       Host hostname/ip
7045           The hostname or ip which identifies the physical server.  Default:
7046           127.0.0.1
7047
7048       Port port
7049           The query port of the physical server. This needs to be a string.
7050           Default: "51234"
7051
7052       Server port
7053           This option has to be added once for every virtual server the
7054           plugin should query. If you want to query the virtual server on
7055           port 8767 this is what the option would look like:
7056
7057             Server "8767"
7058
7059           This option, although numeric, needs to be a string, i. e. you must
7060           use quotes around it! If no such statement is given only global
7061           information will be collected.
7062
7063   Plugin "ted"
7064       The TED plugin connects to a device of "The Energy Detective", a device
7065       to measure power consumption. These devices are usually connected to a
7066       serial (RS232) or USB port. The plugin opens a configured device and
7067       tries to read the current energy readings. For more information on TED,
7068       visit <http://www.theenergydetective.com/>.
7069
7070       Available configuration options:
7071
7072       Device Path
7073           Path to the device on which TED is connected. collectd will need
7074           read and write permissions on that file.
7075
7076           Default: /dev/ttyUSB0
7077
7078       Retries Num
7079           Apparently reading from TED is not that reliable. You can therefore
7080           configure a number of retries here. You only configure the retries
7081           here, to if you specify zero, one reading will be performed (but no
7082           retries if that fails); if you specify three, a maximum of four
7083           readings are performed. Negative values are illegal.
7084
7085           Default: 0
7086
7087   Plugin "tcpconns"
7088       The "tcpconns plugin" counts the number of currently established TCP
7089       connections based on the local port and/or the remote port. Since there
7090       may be a lot of connections the default if to count all connections
7091       with a local port, for which a listening socket is opened. You can use
7092       the following options to fine-tune the ports you are interested in:
7093
7094       ListeningPorts true|false
7095           If this option is set to true, statistics for all local ports for
7096           which a listening socket exists are collected. The default depends
7097           on LocalPort and RemotePort (see below): If no port at all is
7098           specifically selected, the default is to collect listening ports.
7099           If specific ports (no matter if local or remote ports) are
7100           selected, this option defaults to false, i. e. only the selected
7101           ports will be collected unless this option is set to true
7102           specifically.
7103
7104       LocalPort Port
7105           Count the connections to a specific local port. This can be used to
7106           see how many connections are handled by a specific daemon, e. g.
7107           the mailserver.  You have to specify the port in numeric form, so
7108           for the mailserver example you'd need to set 25.
7109
7110       RemotePort Port
7111           Count the connections to a specific remote port. This is useful to
7112           see how much a remote service is used. This is most useful if you
7113           want to know how many connections a local service has opened to
7114           remote services, e. g. how many connections a mail server or news
7115           server has to other mail or news servers, or how many connections a
7116           web proxy holds to web servers. You have to give the port in
7117           numeric form.
7118
7119       AllPortsSummary true|false
7120           If this option is set to true a summary of statistics from all
7121           connections are collected. This option defaults to false.
7122
7123   Plugin "thermal"
7124       ForceUseProcfs true|false
7125           By default, the Thermal plugin tries to read the statistics from
7126           the Linux "sysfs" interface. If that is not available, the plugin
7127           falls back to the "procfs" interface. By setting this option to
7128           true, you can force the plugin to use the latter. This option
7129           defaults to false.
7130
7131       Device Device
7132           Selects the name of the thermal device that you want to collect or
7133           ignore, depending on the value of the IgnoreSelected option. This
7134           option may be used multiple times to specify a list of devices.
7135
7136           See /"IGNORELISTS" for details.
7137
7138       IgnoreSelected true|false
7139           Invert the selection: If set to true, all devices except the ones
7140           that match the device names specified by the Device option are
7141           collected. By default only selected devices are collected if a
7142           selection is made. If no selection is configured at all, all
7143           devices are selected.
7144
7145   Plugin "threshold"
7146       The Threshold plugin checks values collected or received by collectd
7147       against a configurable threshold and issues notifications if values are
7148       out of bounds.
7149
7150       Documentation for this plugin is available in the collectd-threshold(5)
7151       manual page.
7152
7153   Plugin "tokyotyrant"
7154       The TokyoTyrant plugin connects to a TokyoTyrant server and collects a
7155       couple metrics: number of records, and database size on disk.
7156
7157       Host Hostname/IP
7158           The hostname or IP which identifies the server.  Default: 127.0.0.1
7159
7160       Port Service/Port
7161           The query port of the server. This needs to be a string, even if
7162           the port is given in its numeric form.  Default: 1978
7163
7164   Plugin "turbostat"
7165       The Turbostat plugin reads CPU frequency and C-state residency on
7166       modern Intel processors by using Model Specific Registers.
7167
7168       CoreCstates Bitmask(Integer)
7169           Bit mask of the list of core C-states supported by the processor.
7170           This option should only be used if the automated detection fails.
7171           Default value extracted from the CPU model and family.
7172
7173           Currently supported C-states (by this plugin): 3, 6, 7
7174
7175           Example:
7176
7177             All states (3, 6 and 7):
7178             (1<<3) + (1<<6) + (1<<7) = 392
7179
7180       PackageCstates Bitmask(Integer)
7181           Bit mask of the list of packages C-states supported by the
7182           processor. This option should only be used if the automated
7183           detection fails. Default value extracted from the CPU model and
7184           family.
7185
7186           Currently supported C-states (by this plugin): 2, 3, 6, 7, 8, 9, 10
7187
7188           Example:
7189
7190             States 2, 3, 6 and 7:
7191             (1<<2) + (1<<3) + (1<<6) + (1<<7) = 396
7192
7193       SystemManagementInterrupt true|false
7194           Boolean enabling the collection of the I/O System-Management
7195           Interrupt counter.  This option should only be used if the
7196           automated detection fails or if you want to disable this feature.
7197
7198       DigitalTemperatureSensor true|false
7199           Boolean enabling the collection of the temperature of each core.
7200           This option should only be used if the automated detection fails or
7201           if you want to disable this feature.
7202
7203       TCCActivationTemp Temperature
7204           Thermal Control Circuit Activation Temperature of the installed
7205           CPU. This temperature is used when collecting the temperature of
7206           cores or packages. This option should only be used if the automated
7207           detection fails. Default value extracted from
7208           MSR_IA32_TEMPERATURE_TARGET.
7209
7210       RunningAveragePowerLimit Bitmask(Integer)
7211           Bit mask of the list of elements to be thermally monitored. This
7212           option should only be used if the automated detection fails or if
7213           you want to disable some collections. The different bits of this
7214           bit mask accepted by this plugin are:
7215
7216           0 ('1'): Package
7217           1 ('2'): DRAM
7218           2 ('4'): Cores
7219           3 ('8'): Embedded graphic device
7220       LogicalCoreNames true|false
7221           Boolean enabling the use of logical core numbering for per core
7222           statistics.  When enabled, "cpu<n>" is used as plugin instance,
7223           where n is a dynamic number assigned by the kernel. Otherwise,
7224           "core<n>" is used if there is only one package and "pkg<n>-core<m>"
7225           if there is more than one, where n is the n-th core of package m.
7226
7227   Plugin "unixsock"
7228       SocketFile Path
7229           Sets the socket-file which is to be created.
7230
7231       SocketGroup Group
7232           If running as root change the group of the UNIX-socket after it has
7233           been created. Defaults to collectd.
7234
7235       SocketPerms Permissions
7236           Change the file permissions of the UNIX-socket after it has been
7237           created. The permissions must be given as a numeric, octal value as
7238           you would pass to chmod(1). Defaults to 0770.
7239
7240       DeleteSocket false|true
7241           If set to true, delete the socket file before calling bind(2), if a
7242           file with the given name already exists. If collectd crashes a
7243           socket file may be left over, preventing the daemon from opening a
7244           new socket when restarted.  Since this is potentially dangerous,
7245           this defaults to false.
7246
7247   Plugin "uuid"
7248       This plugin, if loaded, causes the Hostname to be taken from the
7249       machine's UUID. The UUID is a universally unique designation for the
7250       machine, usually taken from the machine's BIOS. This is most useful if
7251       the machine is running in a virtual environment such as Xen, in which
7252       case the UUID is preserved across shutdowns and migration.
7253
7254       The following methods are used to find the machine's UUID, in order:
7255
7256       ·   Check /etc/uuid (or UUIDFile).
7257
7258       ·   Check for UUID from HAL
7259           (<http://www.freedesktop.org/wiki/Software/hal>) if present.
7260
7261       ·   Check for UUID from "dmidecode" / SMBIOS.
7262
7263       ·   Check for UUID from Xen hypervisor.
7264
7265       If no UUID can be found then the hostname is not modified.
7266
7267       UUIDFile Path
7268           Take the UUID from the given file (default /etc/uuid).
7269
7270   Plugin "varnish"
7271       The varnish plugin collects information about Varnish, an HTTP
7272       accelerator.  It collects a subset of the values displayed by
7273       varnishstat(1), and organizes them in categories which can be enabled
7274       or disabled. Currently only metrics shown in varnishstat(1)'s MAIN
7275       section are collected. The exact meaning of each metric can be found in
7276       varnish-counters(7).
7277
7278       Synopsis:
7279
7280        <Plugin "varnish">
7281          <Instance "example">
7282            CollectBackend     true
7283            CollectBan         false
7284            CollectCache       true
7285            CollectConnections true
7286            CollectDirectorDNS false
7287            CollectESI         false
7288            CollectFetch       false
7289            CollectHCB         false
7290            CollectObjects     false
7291            CollectPurge       false
7292            CollectSession     false
7293            CollectSHM         true
7294            CollectSMA         false
7295            CollectSMS         false
7296            CollectSM          false
7297            CollectStruct      false
7298            CollectTotals      false
7299            CollectUptime      false
7300            CollectVCL         false
7301            CollectVSM         false
7302            CollectWorkers     false
7303            CollectLock        false
7304            CollectMempool     false
7305            CollectManagement  false
7306            CollectSMF         false
7307            CollectVBE         false
7308            CollectMSE         false
7309          </Instance>
7310        </Plugin>
7311
7312       The configuration consists of one or more <Instance Name> blocks. Name
7313       is the parameter passed to "varnishd -n". If left empty, it will
7314       collectd statistics from the default "varnishd" instance (this should
7315       work fine in most cases).
7316
7317       Inside each <Instance> blocks, the following options are recognized:
7318
7319       CollectBackend true|false
7320           Back-end connection statistics, such as successful, reused, and
7321           closed connections. True by default.
7322
7323       CollectBan true|false
7324           Statistics about ban operations, such as number of bans added,
7325           retired, and number of objects tested against ban operations. Only
7326           available with Varnish 3.x and above. False by default.
7327
7328       CollectCache true|false
7329           Cache hits and misses. True by default.
7330
7331       CollectConnections true|false
7332           Number of client connections received, accepted and dropped. True
7333           by default.
7334
7335       CollectDirectorDNS true|false
7336           DNS director lookup cache statistics. Only available with Varnish
7337           3.x. False by default.
7338
7339       CollectESI true|false
7340           Edge Side Includes (ESI) parse statistics. False by default.
7341
7342       CollectFetch true|false
7343           Statistics about fetches (HTTP requests sent to the backend). False
7344           by default.
7345
7346       CollectHCB true|false
7347           Inserts and look-ups in the crit bit tree based hash. Look-ups are
7348           divided into locked and unlocked look-ups. False by default.
7349
7350       CollectObjects true|false
7351           Statistics on cached objects: number of objects expired, nuked
7352           (prematurely expired), saved, moved, etc. False by default.
7353
7354       CollectPurge true|false
7355           Statistics about purge operations, such as number of purges added,
7356           retired, and number of objects tested against purge operations.
7357           Only available with Varnish 2.x. False by default.
7358
7359       CollectSession true|false
7360           Client session statistics. Number of past and current sessions,
7361           session herd and linger counters, etc. False by default. Note that
7362           if using Varnish 4.x, some metrics found in the Connections and
7363           Threads sections with previous versions of Varnish have been moved
7364           here.
7365
7366       CollectSHM true|false
7367           Statistics about the shared memory log, a memory region to store
7368           log messages which is flushed to disk when full. True by default.
7369
7370       CollectSMA true|false
7371           malloc or umem (umem_alloc(3MALLOC) based) storage statistics. The
7372           umem storage component is Solaris specific. Note: SMA, SMF and MSE
7373           share counters, enable only the one used by the Varnish instance.
7374           Only available with Varnish 2.x.  False by default.
7375
7376       CollectSMS true|false
7377           synth (synthetic content) storage statistics. This storage
7378           component is used internally only. False by default.
7379
7380       CollectSM true|false
7381           file (memory mapped file) storage statistics. Only available with
7382           Varnish 2.x., in varnish 4.x. use CollectSMF.  False by default.
7383
7384       CollectStruct true|false
7385           Current varnish internal state statistics. Number of current
7386           sessions, objects in cache store, open connections to backends
7387           (with Varnish 2.x), etc. False by default.
7388
7389       CollectTotals true|false
7390           Collects overview counters, such as the number of sessions created,
7391           the number of requests and bytes transferred. False by default.
7392
7393       CollectUptime true|false
7394           Varnish uptime. Only available with Varnish 3.x and above. False by
7395           default.
7396
7397       CollectVCL true|false
7398           Number of total (available + discarded) VCL (config files). False
7399           by default.
7400
7401       CollectVSM true|false
7402           Collect statistics about Varnish's shared memory usage (used by the
7403           logging and statistics subsystems). Only available with Varnish
7404           4.x. False by default.
7405
7406       CollectWorkers true|false
7407           Collect statistics about worker threads. False by default.
7408
7409       CollectVBE true|false
7410           Backend counters. Only available with Varnish 4.x. False by
7411           default.
7412
7413       CollectSMF true|false
7414           file (memory mapped file) storage statistics. Only available with
7415           Varnish 4.x.  Note: SMA, SMF and MSE share counters, enable only
7416           the one used by the Varnish instance. Used to be called SM in
7417           Varnish 2.x. False by default.
7418
7419       CollectManagement true|false
7420           Management process counters. Only available with Varnish 4.x. False
7421           by default.
7422
7423       CollectLock true|false
7424           Lock counters. Only available with Varnish 4.x. False by default.
7425
7426       CollectMempool true|false
7427           Memory pool counters. Only available with Varnish 4.x. False by
7428           default.
7429
7430       CollectMSE true|false
7431           Varnish Massive Storage Engine 2.0 (MSE2) is an improved storage
7432           backend for Varnish, replacing the traditional malloc and file
7433           storages. Only available with Varnish-Plus 4.x. Note: SMA, SMF and
7434           MSE share counters, enable only the one used by the Varnish
7435           instance. False by default.
7436
7437   Plugin "virt"
7438       This plugin allows CPU, disk, network load and other metrics to be
7439       collected for virtualized guests on the machine. The statistics are
7440       collected through libvirt API (<http://libvirt.org/>). Majority of
7441       metrics can be gathered without installing any additional software on
7442       guests, especially collectd, which runs only on the host system.
7443
7444       Only Connection is required.
7445
7446       Connection uri
7447           Connect to the hypervisor given by uri. For example if using Xen
7448           use:
7449
7450            Connection "xen:///"
7451
7452           Details which URIs allowed are given at
7453           <http://libvirt.org/uri.html>.
7454
7455       RefreshInterval seconds
7456           Refresh the list of domains and devices every seconds. The default
7457           is 60 seconds. Setting this to be the same or smaller than the
7458           Interval will cause the list of domains and devices to be refreshed
7459           on every iteration.
7460
7461           Refreshing the devices in particular is quite a costly operation,
7462           so if your virtualization setup is static you might consider
7463           increasing this. If this option is set to 0, refreshing is disabled
7464           completely.
7465
7466       Domain name
7467       BlockDevice name:dev
7468       InterfaceDevice name:dev
7469       IgnoreSelected true|false
7470           Select which domains and devices are collected.
7471
7472           If IgnoreSelected is not given or false then only the listed
7473           domains and disk/network devices are collected.
7474
7475           If IgnoreSelected is true then the test is reversed and the listed
7476           domains and disk/network devices are ignored, while the rest are
7477           collected.
7478
7479           The domain name and device names may use a regular expression, if
7480           the name is surrounded by /.../ and collectd was compiled with
7481           support for regexps.
7482
7483           The default is to collect statistics for all domains and all their
7484           devices.
7485
7486           Example:
7487
7488            BlockDevice "/:hdb/"
7489            IgnoreSelected "true"
7490
7491           Ignore all hdb devices on any domain, but other block devices (eg.
7492           hda) will be collected.
7493
7494       BlockDeviceFormat target|source
7495           If BlockDeviceFormat is set to target, the default, then the device
7496           name seen by the guest will be used for reporting metrics.  This
7497           corresponds to the "<target>" node in the XML definition of the
7498           domain.
7499
7500           If BlockDeviceFormat is set to source, then metrics will be
7501           reported using the path of the source, e.g. an image file.  This
7502           corresponds to the "<source>" node in the XML definition of the
7503           domain.
7504
7505           Example:
7506
7507           If the domain XML have the following device defined:
7508
7509             <disk type='block' device='disk'>
7510               <driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
7511               <source dev='/var/lib/libvirt/images/image1.qcow2'/>
7512               <target dev='sda' bus='scsi'/>
7513               <boot order='2'/>
7514               <address type='drive' controller='0' bus='0' target='0' unit='0'/>
7515             </disk>
7516
7517           Setting "BlockDeviceFormat target" will cause the type instance to
7518           be set to "sda".  Setting "BlockDeviceFormat source" will cause the
7519           type instance to be set to "var_lib_libvirt_images_image1.qcow2".
7520
7521       BlockDeviceFormatBasename false|true
7522           The BlockDeviceFormatBasename controls whether the full path or the
7523           basename(1) of the source is being used as the type instance when
7524           BlockDeviceFormat is set to source. Defaults to false.
7525
7526           Example:
7527
7528           Assume the device path (source tag) is
7529           "/var/lib/libvirt/images/image1.qcow2".  Setting
7530           "BlockDeviceFormatBasename false" will cause the type instance to
7531           be set to "var_lib_libvirt_images_image1.qcow2".  Setting
7532           "BlockDeviceFormatBasename true" will cause the type instance to be
7533           set to "image1.qcow2".
7534
7535       HostnameFormat name|uuid|hostname|...
7536           When the virt plugin logs data, it sets the hostname of the
7537           collected data according to this setting. The default is to use the
7538           guest name as provided by the hypervisor, which is equal to setting
7539           name.
7540
7541           uuid means use the guest's UUID. This is useful if you want to
7542           track the same guest across migrations.
7543
7544           hostname means to use the global Hostname setting, which is
7545           probably not useful on its own because all guests will appear to
7546           have the same name.
7547
7548           You can also specify combinations of these fields. For example name
7549           uuid means to concatenate the guest name and UUID (with a literal
7550           colon character between, thus "foo:1234-1234-1234-1234").
7551
7552           At the moment of writing (collectd-5.5), hostname string is limited
7553           to 62 characters. In case when combination of fields exceeds 62
7554           characters, hostname will be truncated without a warning.
7555
7556       InterfaceFormat name|address
7557           When the virt plugin logs interface data, it sets the name of the
7558           collected data according to this setting. The default is to use the
7559           path as provided by the hypervisor (the "dev" property of the
7560           target node), which is equal to setting name.
7561
7562           address means use the interface's mac address. This is useful since
7563           the interface path might change between reboots of a guest or
7564           across migrations.
7565
7566       PluginInstanceFormat name|uuid|none
7567           When the virt plugin logs data, it sets the plugin_instance of the
7568           collected data according to this setting. The default is to not set
7569           the plugin_instance.
7570
7571           name means use the guest's name as provided by the hypervisor.
7572           uuid means use the guest's UUID.
7573
7574           You can also specify combinations of the name and uuid fields.  For
7575           example name uuid means to concatenate the guest name and UUID
7576           (with a literal colon character between, thus
7577           "foo:1234-1234-1234-1234").
7578
7579       Instances integer
7580           How many read instances you want to use for this plugin. The
7581           default is one, and the sensible setting is a multiple of the
7582           ReadThreads value.  If you are not sure, just use the default
7583           setting.
7584
7585       ExtraStats string
7586           Report additional extra statistics. The default is no extra
7587           statistics, preserving the previous behaviour of the plugin. If
7588           unsure, leave the default. If enabled, allows the plugin to
7589           reported more detailed statistics about the behaviour of Virtual
7590           Machines. The argument is a space-separated list of selectors.
7591
7592           Currently supported selectors are:
7593
7594           cpu_util: report CPU utilization per domain in percentage.
7595           disk: report extra statistics like number of flush operations and
7596           total service time for read, write and flush operations. Requires
7597           libvirt API version 0.9.5 or later.
7598           disk_err: report disk errors if any occured. Requires libvirt API
7599           version 0.9.10 or later.
7600           domain_state: report domain state and reason in human-readable
7601           format as a notification. If libvirt API version 0.9.2 or later is
7602           available, domain reason will be included in notification.
7603           fs_info: report file system information as a notification. Requires
7604           libvirt API version 1.2.11 or later. Can be collected only if Guest
7605           Agent is installed and configured inside VM. Make sure that
7606           installed Guest Agent version supports retrieving  file system
7607           information.
7608           job_stats_background: report statistics about progress of a
7609           background job on a domain. Only one type of job statistics can be
7610           collected at the same time. Requires libvirt API version 1.2.9 or
7611           later.
7612           job_stats_completed: report statistics about a recently completed
7613           job on a domain. Only one type of job statistics can be collected
7614           at the same time. Requires libvirt API version 1.2.9 or later.
7615           pcpu: report the physical user/system cpu time consumed by the
7616           hypervisor, per-vm. Requires libvirt API version 0.9.11 or later.
7617           perf: report performance monitoring events. To collect performance
7618           metrics they must be enabled for domain and supported by the
7619           platform. Requires libvirt API version 1.3.3 or later. Note: perf
7620           metrics can't be collected if intel_rdt plugin is enabled.
7621           vcpupin: report pinning of domain VCPUs to host physical CPUs.
7622
7623   Plugin "vmem"
7624       The "vmem" plugin collects information about the usage of virtual
7625       memory.  Since the statistics provided by the Linux kernel are very
7626       detailed, they are collected very detailed. However, to get all the
7627       details, you have to switch them on manually. Most people just want an
7628       overview over, such as the number of pages read from swap space.
7629
7630       Verbose true|false
7631           Enables verbose collection of information. This will start
7632           collecting page "actions", e. g. page allocations, (de)activations,
7633           steals and so on.  Part of these statistics are collected on a "per
7634           zone" basis.
7635
7636   Plugin "vserver"
7637       This plugin doesn't have any options. VServer support is only available
7638       for Linux. It cannot yet be found in a vanilla kernel, though. To make
7639       use of this plugin you need a kernel that has VServer support built in,
7640       i. e. you need to apply the patches and compile your own kernel, which
7641       will then provide the /proc/virtual filesystem that is required by this
7642       plugin.
7643
7644       The VServer homepage can be found at <http://linux-vserver.org/>.
7645
7646       Note: The traffic collected by this plugin accounts for the amount of
7647       traffic passing a socket which might be a lot less than the actual on-
7648       wire traffic (e. g. due to headers and retransmission). If you want to
7649       collect on-wire traffic you could, for example, use the logging
7650       facilities of iptables to feed data for the guest IPs into the iptables
7651       plugin.
7652
7653   Plugin "write_graphite"
7654       The "write_graphite" plugin writes data to Graphite, an open-source
7655       metrics storage and graphing project. The plugin connects to Carbon,
7656       the data layer of Graphite, via TCP or UDP and sends data via the "line
7657       based" protocol (per default using port 2003). The data will be sent in
7658       blocks of at most 1428 bytes to minimize the number of network packets.
7659
7660       Synopsis:
7661
7662        <Plugin write_graphite>
7663          <Node "example">
7664            Host "localhost"
7665            Port "2003"
7666            Protocol "tcp"
7667            LogSendErrors true
7668            Prefix "collectd"
7669          </Node>
7670        </Plugin>
7671
7672       The configuration consists of one or more <Node Name> blocks. Inside
7673       the Node blocks, the following options are recognized:
7674
7675       Host Address
7676           Hostname or address to connect to. Defaults to "localhost".
7677
7678       Port Service
7679           Service name or port number to connect to. Defaults to 2003.
7680
7681       Protocol String
7682           Protocol to use when connecting to Graphite. Defaults to "tcp".
7683
7684       ReconnectInterval Seconds
7685           When set to non-zero, forces the connection to the Graphite backend
7686           to be closed and re-opend periodically. This behavior is desirable
7687           in environments where the connection to the Graphite backend is
7688           done through load balancers, for example. When set to zero, the
7689           default, the connetion is kept open for as long as possible.
7690
7691       LogSendErrors false|true
7692           If set to true (the default), logs errors when sending data to
7693           Graphite.  If set to false, it will not log the errors. This is
7694           especially useful when using Protocol UDP since many times we want
7695           to use the "fire-and-forget" approach and logging errors fills
7696           syslog with unneeded messages.
7697
7698       Prefix String
7699           When set, String is added in front of the host name. Dots and
7700           whitespace are not escaped in this string (see EscapeCharacter
7701           below).
7702
7703       Postfix String
7704           When set, String is appended to the host name. Dots and whitespace
7705           are not escaped in this string (see EscapeCharacter below).
7706
7707       EscapeCharacter Char
7708           Carbon uses the dot (".") as escape character and doesn't allow
7709           whitespace in the identifier. The EscapeCharacter option determines
7710           which character dots, whitespace and control characters are
7711           replaced with. Defaults to underscore ("_").
7712
7713       StoreRates false|true
7714           If set to true (the default), convert counter values to rates. If
7715           set to false counter values are stored as is, i. e. as an
7716           increasing integer number.
7717
7718       SeparateInstances false|true
7719           If set to true, the plugin instance and type instance will be in
7720           their own path component, for example "host.cpu.0.cpu.idle". If set
7721           to false (the default), the plugin and plugin instance (and
7722           likewise the type and type instance) are put into one component,
7723           for example "host.cpu-0.cpu-idle".
7724
7725       AlwaysAppendDS false|true
7726           If set to true, append the name of the Data Source (DS) to the
7727           "metric" identifier. If set to false (the default), this is only
7728           done when there is more than one DS.
7729
7730       PreserveSeparator false|true
7731           If set to false (the default) the "." (dot) character is replaced
7732           with EscapeCharacter. Otherwise, if set to true, the "." (dot)
7733           character is preserved, i.e. passed through.
7734
7735       DropDuplicateFields false|true
7736           If set to true, detect and remove duplicate components in Graphite
7737           metric names. For example, the metric name
7738           "host.load.load.shortterm" will be shortened to
7739           "host.load.shortterm".
7740
7741   Plugin "write_log"
7742       The "write_log" plugin writes metrics as INFO log messages.
7743
7744       This plugin supports two output formats: Graphite and JSON.
7745
7746       Synopsis:
7747
7748        <Plugin write_log>
7749          Format Graphite
7750        </Plugin>
7751
7752       Format Format
7753           The output format to use. Can be one of "Graphite" or "JSON".
7754
7755   Plugin "write_tsdb"
7756       The "write_tsdb" plugin writes data to OpenTSDB, a scalable open-source
7757       time series database. The plugin connects to a TSD, a masterless, no
7758       shared state daemon that ingests metrics and stores them in HBase. The
7759       plugin uses TCP over the "line based" protocol with a default port
7760       4242. The data will be sent in blocks of at most 1428 bytes to minimize
7761       the number of network packets.
7762
7763       Synopsis:
7764
7765        <Plugin write_tsdb>
7766          ResolveInterval 60
7767          ResolveJitter 60
7768          <Node "example">
7769            Host "tsd-1.my.domain"
7770            Port "4242"
7771            HostTags "status=production"
7772          </Node>
7773        </Plugin>
7774
7775       The configuration consists of one or more <Node Name> blocks and global
7776       directives.
7777
7778       Global directives are:
7779
7780       ResolveInterval seconds
7781       ResolveJitter seconds
7782           When collectd connects to a TSDB node, it will request the hostname
7783           from DNS. This can become a problem if the TSDB node is unavailable
7784           or badly configured because collectd will request DNS in order to
7785           reconnect for every metric, which can flood your DNS. So you can
7786           cache the last value for ResolveInterval seconds.  Defaults to the
7787           Interval of the write_tsdb plugin, e.g. 10 seconds.
7788
7789           You can also define a jitter, a random interval to wait in addition
7790           to ResolveInterval. This prevents all your collectd servers to
7791           resolve the hostname at the same time when the connection fails.
7792           Defaults to the Interval of the write_tsdb plugin, e.g. 10 seconds.
7793
7794           Note: If the DNS resolution has already been successful when the
7795           socket closes, the plugin will try to reconnect immediately with
7796           the cached information. DNS is queried only when the socket is
7797           closed for a longer than ResolveInterval + ResolveJitter seconds.
7798
7799       Inside the Node blocks, the following options are recognized:
7800
7801       Host Address
7802           Hostname or address to connect to. Defaults to "localhost".
7803
7804       Port Service
7805           Service name or port number to connect to. Defaults to 4242.
7806
7807       HostTags String
7808           When set, HostTags is added to the end of the metric. It is
7809           intended to be used for name=value pairs that the TSD will tag the
7810           metric with. Dots and whitespace are not escaped in this string.
7811
7812       StoreRates false|true
7813           If set to true, convert counter values to rates. If set to false
7814           (the default) counter values are stored as is, as an increasing
7815           integer number.
7816
7817       AlwaysAppendDS false|true
7818           If set the true, append the name of the Data Source (DS) to the
7819           "metric" identifier. If set to false (the default), this is only
7820           done when there is more than one DS.
7821
7822   Plugin "write_mongodb"
7823       The write_mongodb plugin will send values to MongoDB, a schema-less
7824       NoSQL database.
7825
7826       Synopsis:
7827
7828        <Plugin "write_mongodb">
7829          <Node "default">
7830            Host "localhost"
7831            Port "27017"
7832            Timeout 1000
7833            StoreRates true
7834          </Node>
7835        </Plugin>
7836
7837       The plugin can send values to multiple instances of MongoDB by
7838       specifying one Node block for each instance. Within the Node blocks,
7839       the following options are available:
7840
7841       Host Address
7842           Hostname or address to connect to. Defaults to "localhost".
7843
7844       Port Service
7845           Service name or port number to connect to. Defaults to 27017.
7846
7847       Timeout Milliseconds
7848           Set the timeout for each operation on MongoDB to Timeout
7849           milliseconds.  Setting this option to zero means no timeout, which
7850           is the default.
7851
7852       StoreRates false|true
7853           If set to true (the default), convert counter values to rates. If
7854           set to false counter values are stored as is, i.e. as an increasing
7855           integer number.
7856
7857       Database Database
7858       User User
7859       Password Password
7860           Sets the information used when authenticating to a MongoDB
7861           database. The fields are optional (in which case no authentication
7862           is attempted), but if you want to use authentication all three
7863           fields must be set.
7864
7865   Plugin "write_prometheus"
7866       The write_prometheus plugin implements a tiny webserver that can be
7867       scraped using Prometheus.
7868
7869       Options:
7870
7871       Port Port
7872           Port the embedded webserver should listen on. Defaults to 9103.
7873
7874       StalenessDelta Seconds
7875           Time in seconds after which Prometheus considers a metric "stale"
7876           if it hasn't seen any update for it. This value must match the
7877           setting in Prometheus.  It defaults to 300 seconds (5 minutes),
7878           same as Prometheus.
7879
7880           Background:
7881
7882           Prometheus has a global setting, "StalenessDelta", which controls
7883           after which time a metric without updates is considered "stale".
7884           This setting effectively puts an upper limit on the interval in
7885           which metrics are reported.
7886
7887           When the write_prometheus plugin encounters a metric with an
7888           interval exceeding this limit, it will inform you, the user, and
7889           provide the metric to Prometheus without a timestamp. That causes
7890           Prometheus to consider the metric "fresh" each time it is scraped,
7891           with the time of the scrape being considered the time of the
7892           update. The result is that there appear more datapoints in
7893           Prometheus than were actually created, but at least the metric
7894           doesn't disappear periodically.
7895
7896   Plugin "write_http"
7897       This output plugin submits values to an HTTP server using POST requests
7898       and encoding metrics with JSON or using the "PUTVAL" command described
7899       in collectd-unixsock(5).
7900
7901       Synopsis:
7902
7903        <Plugin "write_http">
7904          <Node "example">
7905            URL "http://example.com/post-collectd"
7906            User "collectd"
7907            Password "weCh3ik0"
7908            Format JSON
7909          </Node>
7910        </Plugin>
7911
7912       The plugin can send values to multiple HTTP servers by specifying one
7913       <Node Name> block for each server. Within each Node block, the
7914       following options are available:
7915
7916       URL URL
7917           URL to which the values are submitted to. Mandatory.
7918
7919       User Username
7920           Optional user name needed for authentication.
7921
7922       Password Password
7923           Optional password needed for authentication.
7924
7925       VerifyPeer true|false
7926           Enable or disable peer SSL certificate verification. See
7927           <http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by
7928           default.
7929
7930       VerifyHost true|false
7931           Enable or disable peer host name verification. If enabled, the
7932           plugin checks if the "Common Name" or a "Subject Alternate Name"
7933           field of the SSL certificate matches the host name provided by the
7934           URL option. If this identity check fails, the connection is
7935           aborted. Obviously, only works when connecting to a SSL enabled
7936           server. Enabled by default.
7937
7938       CACert File
7939           File that holds one or more SSL certificates. If you want to use
7940           HTTPS you will possibly need this option. What CA certificates come
7941           bundled with "libcurl" and are checked by default depends on the
7942           distribution you use.
7943
7944       CAPath Directory
7945           Directory holding one or more CA certificate files. You can use
7946           this if for some reason all the needed CA certificates aren't in
7947           the same file and can't be pointed to using the CACert option.
7948           Requires "libcurl" to be built against OpenSSL.
7949
7950       ClientKey File
7951           File that holds the private key in PEM format to be used for
7952           certificate-based authentication.
7953
7954       ClientCert File
7955           File that holds the SSL certificate to be used for certificate-
7956           based authentication.
7957
7958       ClientKeyPass Password
7959           Password required to load the private key in ClientKey.
7960
7961       Header Header
7962           A HTTP header to add to the request.  Multiple headers are added if
7963           this option is specified more than once.  Example:
7964
7965             Header "X-Custom-Header: custom_value"
7966
7967       SSLVersion SSLv2|SSLv3|TLSv1|TLSv1_0|TLSv1_1|TLSv1_2
7968           Define which SSL protocol version must be used. By default
7969           "libcurl" will attempt to figure out the remote SSL protocol
7970           version. See curl_easy_setopt(3) for more details.
7971
7972       Format Command|JSON|KAIROSDB
7973           Format of the output to generate. If set to Command, will create
7974           output that is understood by the Exec and UnixSock plugins. When
7975           set to JSON, will create output in the JavaScript Object Notation
7976           (JSON). When set to KAIROSDB , will create output in the KairosDB
7977           format.
7978
7979           Defaults to Command.
7980
7981       Attribute String String
7982           Only available for the KAIROSDB output format.
7983
7984           Consider the two given strings to be the key and value of an
7985           additional tag for each metric being sent out.
7986
7987           You can add multiple Attribute.
7988
7989       TTL Int
7990           Only available for the KAIROSDB output format.
7991
7992           Sets the Cassandra ttl for the data points.
7993
7994           Please refer to
7995           <http://kairosdb.github.io/docs/build/html/restapi/AddDataPoints.html?highlight=ttl>
7996
7997       Prefix String
7998           Only available for the KAIROSDB output format.
7999
8000           Sets the metrics prefix string. Defaults to collectd.
8001
8002       Metrics true|false
8003           Controls whether metrics are POSTed to this location. Defaults to
8004           true.
8005
8006       Notifications false|true
8007           Controls whether notifications are POSTed to this location.
8008           Defaults to false.
8009
8010       StoreRates true|false
8011           If set to true, convert counter values to rates. If set to false
8012           (the default) counter values are stored as is, i.e. as an
8013           increasing integer number.
8014
8015       BufferSize Bytes
8016           Sets the send buffer size to Bytes. By increasing this buffer, less
8017           HTTP requests will be generated, but more metrics will be batched /
8018           metrics are cached for longer before being sent, introducing
8019           additional delay until they are available on the server side. Bytes
8020           must be at least 1024 and cannot exceed the size of an "int", i.e.
8021           2 GByte.  Defaults to 4096.
8022
8023       LowSpeedLimit Bytes per Second
8024           Sets the minimal transfer rate in Bytes per Second below which the
8025           connection with the HTTP server will be considered too slow and
8026           aborted. All the data submitted over this connection will probably
8027           be lost. Defaults to 0, which means no minimum transfer rate is
8028           enforced.
8029
8030       Timeout Timeout
8031           Sets the maximum time in milliseconds given for HTTP POST
8032           operations to complete. When this limit is reached, the POST
8033           operation will be aborted, and all the data in the current send
8034           buffer will probably be lost. Defaults to 0, which means the
8035           connection never times out.
8036
8037       LogHttpError false|true
8038           Enables printing of HTTP error code to log. Turned off by default.
8039
8040           The "write_http" plugin regularly submits the collected values to
8041           the HTTP server. How frequently this happens depends on how much
8042           data you are collecting and the size of BufferSize. The optimal
8043           value to set Timeout to is slightly below this interval, which you
8044           can estimate by monitoring the network traffic between collectd and
8045           the HTTP server.
8046
8047   Plugin "write_kafka"
8048       The write_kafka plugin will send values to a Kafka topic, a distributed
8049       queue.  Synopsis:
8050
8051        <Plugin "write_kafka">
8052          Property "metadata.broker.list" "broker1:9092,broker2:9092"
8053          <Topic "collectd">
8054            Format JSON
8055          </Topic>
8056        </Plugin>
8057
8058       The following options are understood by the write_kafka plugin:
8059
8060       <Topic Name>
8061           The plugin's configuration consists of one or more Topic blocks.
8062           Each block is given a unique Name and specifies one kafka producer.
8063           Inside the Topic block, the following per-topic options are
8064           understood:
8065
8066           Property String String
8067               Configure the named property for the current topic. Properties
8068               are forwarded to the kafka producer library librdkafka.
8069
8070           Key String
8071               Use the specified string as a partitioning key for the topic.
8072               Kafka breaks topic into partitions and guarantees that for a
8073               given topology, the same consumer will be used for a specific
8074               key. The special (case insensitive) string Random can be used
8075               to specify that an arbitrary partition should be used.
8076
8077           Format Command|JSON|Graphite
8078               Selects the format in which messages are sent to the broker. If
8079               set to Command (the default), values are sent as "PUTVAL"
8080               commands which are identical to the syntax used by the Exec and
8081               UnixSock plugins.
8082
8083               If set to JSON, the values are encoded in the JavaScript Object
8084               Notation, an easy and straight forward exchange format.
8085
8086               If set to Graphite, values are encoded in the Graphite format,
8087               which is "<metric> <value> <timestamp>\n".
8088
8089           StoreRates true|false
8090               Determines whether or not "COUNTER", "DERIVE" and "ABSOLUTE"
8091               data sources are converted to a rate (i.e. a "GAUGE" value). If
8092               set to false (the default), no conversion is performed.
8093               Otherwise the conversion is performed using the internal value
8094               cache.
8095
8096               Please note that currently this option is only used if the
8097               Format option has been set to JSON.
8098
8099           GraphitePrefix (Format=Graphite only)
8100               A prefix can be added in the metric name when outputting in the
8101               Graphite format. It's added before the Host name.  Metric name
8102               will be "<prefix><host><postfix><plugin><type><name>"
8103
8104           GraphitePostfix (Format=Graphite only)
8105               A postfix can be added in the metric name when outputting in
8106               the Graphite format. It's added after the Host name.  Metric
8107               name will be "<prefix><host><postfix><plugin><type><name>"
8108
8109           GraphiteEscapeChar (Format=Graphite only)
8110               Specify a character to replace dots (.) in the host part of the
8111               metric name.  In Graphite metric name, dots are used as
8112               separators between different metric parts (host, plugin, type).
8113               Default is "_" (Underscore).
8114
8115           GraphiteSeparateInstances false|true
8116               If set to true, the plugin instance and type instance will be
8117               in their own path component, for example "host.cpu.0.cpu.idle".
8118               If set to false (the default), the plugin and plugin instance
8119               (and likewise the type and type instance) are put into one
8120               component, for example "host.cpu-0.cpu-idle".
8121
8122           GraphiteAlwaysAppendDS true|false
8123               If set to true, append the name of the Data Source (DS) to the
8124               "metric" identifier. If set to false (the default), this is
8125               only done when there is more than one DS.
8126
8127           GraphitePreserveSeparator false|true
8128               If set to false (the default) the "." (dot) character is
8129               replaced with GraphiteEscapeChar. Otherwise, if set to true,
8130               the "." (dot) character is preserved, i.e. passed through.
8131
8132           StoreRates true|false
8133               If set to true (the default), convert counter values to rates.
8134               If set to false counter values are stored as is, i.e. as an
8135               increasing integer number.
8136
8137               This will be reflected in the "ds_type" tag: If StoreRates is
8138               enabled, converted values will have "rate" appended to the data
8139               source type, e.g.  "ds_type:derive:rate".
8140
8141       Property String String
8142           Configure the kafka producer through properties, you almost always
8143           will want to set metadata.broker.list to your Kafka broker list.
8144
8145   Plugin "write_redis"
8146       The write_redis plugin submits values to Redis, a data structure
8147       server.
8148
8149       Synopsis:
8150
8151         <Plugin "write_redis">
8152           <Node "example">
8153               Host "localhost"
8154               Port "6379"
8155               Timeout 1000
8156               Prefix "collectd/"
8157               Database 1
8158               MaxSetSize -1
8159               MaxSetDuration -1
8160               StoreRates true
8161           </Node>
8162         </Plugin>
8163
8164       Values are submitted to Sorted Sets, using the metric name as the key,
8165       and the timestamp as the score. Retrieving a date range can then be
8166       done using the "ZRANGEBYSCORE" Redis command. Additionally, all the
8167       identifiers of these Sorted Sets are kept in a Set called
8168       "collectd/values" (or "${prefix}/values" if the Prefix option was
8169       specified) and can be retrieved using the "SMEMBERS" Redis command. You
8170       can specify the database to use with the Database parameter (default is
8171       0). See <http://redis.io/commands#sorted_set> and
8172       <http://redis.io/commands#set> for details.
8173
8174       The information shown in the synopsis above is the default
8175       configuration which is used by the plugin if no configuration is
8176       present.
8177
8178       The plugin can send values to multiple instances of Redis by specifying
8179       one Node block for each instance. Within the Node blocks, the following
8180       options are available:
8181
8182       Node Nodename
8183           The Node block identifies a new Redis node, that is a new Redis
8184           instance running on a specified host and port. The node name is a
8185           canonical identifier which is used as plugin instance. It is
8186           limited to 51 characters in length.
8187
8188       Host Hostname
8189           The Host option is the hostname or IP-address where the Redis
8190           instance is running on.
8191
8192       Port Port
8193           The Port option is the TCP port on which the Redis instance accepts
8194           connections. Either a service name of a port number may be given.
8195           Please note that numerical port numbers must be given as a string,
8196           too.
8197
8198       Timeout Milliseconds
8199           The Timeout option sets the socket connection timeout, in
8200           milliseconds.
8201
8202       Prefix Prefix
8203           Prefix used when constructing the name of the Sorted Sets and the
8204           Set containing all metrics. Defaults to "collectd/", so metrics
8205           will have names like "collectd/cpu-0/cpu-user". When setting this
8206           to something different, it is recommended but not required to
8207           include a trailing slash in Prefix.
8208
8209       Database Index
8210           This index selects the redis database to use for writing
8211           operations. Defaults to 0.
8212
8213       MaxSetSize Items
8214           The MaxSetSize option limits the number of items that the Sorted
8215           Sets can hold. Negative values for Items sets no limit, which is
8216           the default behavior.
8217
8218       MaxSetDuration Seconds
8219           The MaxSetDuration option limits the duration of items that the
8220           Sorted Sets can hold. Negative values for Items sets no duration,
8221           which is the default behavior.
8222
8223       StoreRates true|false
8224           If set to true (the default), convert counter values to rates. If
8225           set to false counter values are stored as is, i.e. as an increasing
8226           integer number.
8227
8228   Plugin "write_riemann"
8229       The write_riemann plugin will send values to Riemann, a powerful stream
8230       aggregation and monitoring system. The plugin sends Protobuf encoded
8231       data to Riemann using UDP packets.
8232
8233       Synopsis:
8234
8235        <Plugin "write_riemann">
8236          <Node "example">
8237            Host "localhost"
8238            Port "5555"
8239            Protocol UDP
8240            StoreRates true
8241            AlwaysAppendDS false
8242            TTLFactor 2.0
8243          </Node>
8244          Tag "foobar"
8245          Attribute "foo" "bar"
8246        </Plugin>
8247
8248       The following options are understood by the write_riemann plugin:
8249
8250       <Node Name>
8251           The plugin's configuration consists of one or more Node blocks.
8252           Each block is given a unique Name and specifies one connection to
8253           an instance of Riemann. Indise the Node block, the following per-
8254           connection options are understood:
8255
8256           Host Address
8257               Hostname or address to connect to. Defaults to "localhost".
8258
8259           Port Service
8260               Service name or port number to connect to. Defaults to 5555.
8261
8262           Protocol UDP|TCP|TLS
8263               Specify the protocol to use when communicating with Riemann.
8264               Defaults to TCP.
8265
8266           TLSCertFile Path
8267               When using the TLS protocol, path to a PEM certificate to
8268               present to remote host.
8269
8270           TLSCAFile Path
8271               When using the TLS protocol, path to a PEM CA certificate to
8272               use to validate the remote hosts's identity.
8273
8274           TLSKeyFile Path
8275               When using the TLS protocol, path to a PEM private key
8276               associated with the certificate defined by TLSCertFile.
8277
8278           Batch true|false
8279               If set to true and Protocol is set to TCP, events will be
8280               batched in memory and flushed at regular intervals or when
8281               BatchMaxSize is exceeded.
8282
8283               Notifications are not batched and sent as soon as possible.
8284
8285               When enabled, it can occur that events get processed by the
8286               Riemann server close to or after their expiration time. Tune
8287               the TTLFactor and BatchMaxSize settings according to the amount
8288               of values collected, if this is an issue.
8289
8290               Defaults to true
8291
8292           BatchMaxSize size
8293               Maximum payload size for a riemann packet. Defaults to 8192
8294
8295           BatchFlushTimeout seconds
8296               Maximum amount of seconds to wait in between to batch flushes.
8297               No timeout by default.
8298
8299           StoreRates true|false
8300               If set to true (the default), convert counter values to rates.
8301               If set to false counter values are stored as is, i.e. as an
8302               increasing integer number.
8303
8304               This will be reflected in the "ds_type" tag: If StoreRates is
8305               enabled, converted values will have "rate" appended to the data
8306               source type, e.g.  "ds_type:derive:rate".
8307
8308           AlwaysAppendDS false|true
8309               If set to true, append the name of the Data Source (DS) to the
8310               "service", i.e. the field that, together with the "host" field,
8311               uniquely identifies a metric in Riemann. If set to false (the
8312               default), this is only done when there is more than one DS.
8313
8314           TTLFactor Factor
8315               Riemann events have a Time to Live (TTL) which specifies how
8316               long each event is considered active. collectd populates this
8317               field based on the metrics interval setting. This setting
8318               controls the factor with which the interval is multiplied to
8319               set the TTL. The default value is 2.0. Unless you know exactly
8320               what you're doing, you should only increase this setting from
8321               its default value.
8322
8323           Notifications false|true
8324               If set to true, create riemann events for notifications. This
8325               is true by default. When processing thresholds from
8326               write_riemann, it might prove useful to avoid getting
8327               notification events.
8328
8329           CheckThresholds false|true
8330               If set to true, attach state to events based on thresholds
8331               defined in the Threshold plugin. Defaults to false.
8332
8333           EventServicePrefix String
8334               Add the given string as a prefix to the event service name.  If
8335               EventServicePrefix not set or set to an empty string (""), no
8336               prefix will be used.
8337
8338       Tag String
8339           Add the given string as an additional tag to the metric being sent
8340           to Riemann.
8341
8342       Attribute String String
8343           Consider the two given strings to be the key and value of an
8344           additional attribute for each metric being sent out to Riemann.
8345
8346   Plugin "write_sensu"
8347       The write_sensu plugin will send values to Sensu, a powerful stream
8348       aggregation and monitoring system. The plugin sends JSON encoded data
8349       to a local Sensu client using a TCP socket.
8350
8351       At the moment, the write_sensu plugin does not send over a
8352       collectd_host parameter so it is not possible to use one collectd
8353       instance as a gateway for others. Each collectd host must pair with one
8354       Sensu client.
8355
8356       Synopsis:
8357
8358        <Plugin "write_sensu">
8359          <Node "example">
8360            Host "localhost"
8361            Port "3030"
8362            StoreRates true
8363            AlwaysAppendDS false
8364            MetricHandler "influx"
8365            MetricHandler "default"
8366            NotificationHandler "flapjack"
8367            NotificationHandler "howling_monkey"
8368            Notifications true
8369          </Node>
8370          Tag "foobar"
8371          Attribute "foo" "bar"
8372        </Plugin>
8373
8374       The following options are understood by the write_sensu plugin:
8375
8376       <Node Name>
8377           The plugin's configuration consists of one or more Node blocks.
8378           Each block is given a unique Name and specifies one connection to
8379           an instance of Sensu. Inside the Node block, the following per-
8380           connection options are understood:
8381
8382           Host Address
8383               Hostname or address to connect to. Defaults to "localhost".
8384
8385           Port Service
8386               Service name or port number to connect to. Defaults to 3030.
8387
8388           StoreRates true|false
8389               If set to true (the default), convert counter values to rates.
8390               If set to false counter values are stored as is, i.e. as an
8391               increasing integer number.
8392
8393               This will be reflected in the "collectd_data_source_type" tag:
8394               If StoreRates is enabled, converted values will have "rate"
8395               appended to the data source type, e.g.
8396               "collectd_data_source_type:derive:rate".
8397
8398           AlwaysAppendDS false|true
8399               If set the true, append the name of the Data Source (DS) to the
8400               "service", i.e. the field that, together with the "host" field,
8401               uniquely identifies a metric in Sensu. If set to false (the
8402               default), this is only done when there is more than one DS.
8403
8404           Notifications false|true
8405               If set to true, create Sensu events for notifications. This is
8406               false by default. At least one of Notifications or Metrics
8407               should be enabled.
8408
8409           Metrics false|true
8410               If set to true, create Sensu events for metrics. This is false
8411               by default. At least one of Notifications or Metrics should be
8412               enabled.
8413
8414           Separator String
8415               Sets the separator for Sensu metrics name or checks. Defaults
8416               to "/".
8417
8418           MetricHandler String
8419               Add a handler that will be set when metrics are sent to Sensu.
8420               You can add several of them, one per line. Defaults to no
8421               handler.
8422
8423           NotificationHandler String
8424               Add a handler that will be set when notifications are sent to
8425               Sensu. You can add several of them, one per line. Defaults to
8426               no handler.
8427
8428           EventServicePrefix String
8429               Add the given string as a prefix to the event service name.  If
8430               EventServicePrefix not set or set to an empty string (""), no
8431               prefix will be used.
8432
8433       Tag String
8434           Add the given string as an additional tag to the metric being sent
8435           to Sensu.
8436
8437       Attribute String String
8438           Consider the two given strings to be the key and value of an
8439           additional attribute for each metric being sent out to Sensu.
8440
8441   Plugin "xencpu"
8442       This plugin collects metrics of hardware CPU load for machine running
8443       Xen hypervisor. Load is calculated from 'idle time' value, provided by
8444       Xen.  Result is reported using the "percent" type, for each CPU (core).
8445
8446       This plugin doesn't have any options (yet).
8447
8448   Plugin "zookeeper"
8449       The zookeeper plugin will collect statistics from a Zookeeper server
8450       using the mntr command.  It requires Zookeeper 3.4.0+ and access to the
8451       client port.
8452
8453       Synopsis:
8454
8455        <Plugin "zookeeper">
8456          Host "127.0.0.1"
8457          Port "2181"
8458        </Plugin>
8459
8460       Host Address
8461           Hostname or address to connect to. Defaults to "localhost".
8462
8463       Port Service
8464           Service name or port number to connect to. Defaults to 2181.
8465

THRESHOLD CONFIGURATION

8467       Starting with version 4.3.0 collectd has support for monitoring. By
8468       that we mean that the values are not only stored or sent somewhere, but
8469       that they are judged and, if a problem is recognized, acted upon. The
8470       only action collectd takes itself is to generate and dispatch a
8471       "notification". Plugins can register to receive notifications and
8472       perform appropriate further actions.
8473
8474       Since systems and what you expect them to do differ a lot, you can
8475       configure thresholds for your values freely. This gives you a lot of
8476       flexibility but also a lot of responsibility.
8477
8478       Every time a value is out of range a notification is dispatched. This
8479       means that the idle percentage of your CPU needs to be less then the
8480       configured threshold only once for a notification to be generated.
8481       There's no such thing as a moving average or similar - at least not
8482       now.
8483
8484       Also, all values that match a threshold are considered to be relevant
8485       or "interesting". As a consequence collectd will issue a notification
8486       if they are not received for Timeout iterations. The Timeout
8487       configuration option is explained in section "GLOBAL OPTIONS". If, for
8488       example, Timeout is set to "2" (the default) and some hosts sends it's
8489       CPU statistics to the server every 60 seconds, a notification will be
8490       dispatched after about 120 seconds. It may take a little longer because
8491       the timeout is checked only once each Interval on the server.
8492
8493       When a value comes within range again or is received after it was
8494       missing, an "OKAY-notification" is dispatched.
8495
8496       Here is a configuration example to get you started. Read below for more
8497       information.
8498
8499        <Plugin threshold>
8500          <Type "foo">
8501            WarningMin    0.00
8502            WarningMax 1000.00
8503            FailureMin    0.00
8504            FailureMax 1200.00
8505            Invert false
8506            Instance "bar"
8507          </Type>
8508
8509          <Plugin "interface">
8510            Instance "eth0"
8511            <Type "if_octets">
8512              FailureMax 10000000
8513              DataSource "rx"
8514            </Type>
8515          </Plugin>
8516
8517          <Host "hostname">
8518            <Type "cpu">
8519              Instance "idle"
8520              FailureMin 10
8521            </Type>
8522
8523            <Plugin "memory">
8524              <Type "memory">
8525                Instance "cached"
8526                WarningMin 100000000
8527              </Type>
8528            </Plugin>
8529          </Host>
8530        </Plugin>
8531
8532       There are basically two types of configuration statements: The "Host",
8533       "Plugin", and "Type" blocks select the value for which a threshold
8534       should be configured. The "Plugin" and "Type" blocks may be specified
8535       further using the "Instance" option. You can combine the block by
8536       nesting the blocks, though they must be nested in the above order,
8537       i. e. "Host" may contain either "Plugin" and "Type" blocks, "Plugin"
8538       may only contain "Type" blocks and "Type" may not contain other blocks.
8539       If multiple blocks apply to the same value the most specific block is
8540       used.
8541
8542       The other statements specify the threshold to configure. They must be
8543       included in a "Type" block. Currently the following statements are
8544       recognized:
8545
8546       FailureMax Value
8547       WarningMax Value
8548           Sets the upper bound of acceptable values. If unset defaults to
8549           positive infinity. If a value is greater than FailureMax a FAILURE
8550           notification will be created. If the value is greater than
8551           WarningMax but less than (or equal to) FailureMax a WARNING
8552           notification will be created.
8553
8554       FailureMin Value
8555       WarningMin Value
8556           Sets the lower bound of acceptable values. If unset defaults to
8557           negative infinity. If a value is less than FailureMin a FAILURE
8558           notification will be created. If the value is less than WarningMin
8559           but greater than (or equal to) FailureMin a WARNING notification
8560           will be created.
8561
8562       DataSource DSName
8563           Some data sets have more than one "data source". Interesting
8564           examples are the "if_octets" data set, which has received ("rx")
8565           and sent ("tx") bytes and the "disk_ops" data set, which holds
8566           "read" and "write" operations. The system load data set, "load",
8567           even has three data sources: "shortterm", "midterm", and
8568           "longterm".
8569
8570           Normally, all data sources are checked against a configured
8571           threshold. If this is undesirable, or if you want to specify
8572           different limits for each data source, you can use the DataSource
8573           option to have a threshold apply only to one data source.
8574
8575       Invert true|false
8576           If set to true the range of acceptable values is inverted, i. e.
8577           values between FailureMin and FailureMax (WarningMin and
8578           WarningMax) are not okay. Defaults to false.
8579
8580       Persist true|false
8581           Sets how often notifications are generated. If set to true one
8582           notification will be generated for each value that is out of the
8583           acceptable range. If set to false (the default) then a notification
8584           is only generated if a value is out of range but the previous value
8585           was okay.
8586
8587           This applies to missing values, too: If set to true a notification
8588           about a missing value is generated once every Interval seconds. If
8589           set to false only one such notification is generated until the
8590           value appears again.
8591
8592       Percentage true|false
8593           If set to true, the minimum and maximum values given are
8594           interpreted as percentage value, relative to the other data
8595           sources. This is helpful for example for the "df" type, where you
8596           may want to issue a warning when less than 5 % of the total space
8597           is available. Defaults to false.
8598
8599       Hits Number
8600           Delay creating the notification until the threshold has been passed
8601           Number times. When a notification has been generated, or when a
8602           subsequent value is inside the threshold, the counter is reset. If,
8603           for example, a value is collected once every 10 seconds and Hits is
8604           set to 3, a notification will be dispatched at most once every
8605           30 seconds.
8606
8607           This is useful when short bursts are not a problem. If, for
8608           example, 100% CPU usage for up to a minute is normal (and data is
8609           collected every 10 seconds), you could set Hits to 6 to account for
8610           this.
8611
8612       Hysteresis Number
8613           When set to non-zero, a hysteresis value is applied when checking
8614           minimum and maximum bounds. This is useful for values that increase
8615           slowly and fluctuate a bit while doing so. When these values come
8616           close to the threshold, they may "flap", i.e. switch between
8617           failure / warning case and okay case repeatedly.
8618
8619           If, for example, the threshold is configures as
8620
8621             WarningMax 100.0
8622             Hysteresis 1.0
8623
8624           then a Warning notification is created when the value exceeds 101
8625           and the corresponding Okay notification is only created once the
8626           value falls below 99, thus avoiding the "flapping".
8627

FILTER CONFIGURATION

8629       Starting with collectd 4.6 there is a powerful filtering infrastructure
8630       implemented in the daemon. The concept has mostly been copied from
8631       ip_tables, the packet filter infrastructure for Linux. We'll use a
8632       similar terminology, so that users that are familiar with iptables feel
8633       right at home.
8634
8635   Terminology
8636       The following are the terms used in the remainder of the filter
8637       configuration documentation. For an ASCII-art schema of the mechanism,
8638       see "General structure" below.
8639
8640       Match
8641           A match is a criteria to select specific values. Examples are, of
8642           course, the name of the value or it's current value.
8643
8644           Matches are implemented in plugins which you have to load prior to
8645           using the match. The name of such plugins starts with the "match_"
8646           prefix.
8647
8648       Target
8649           A target is some action that is to be performed with data. Such
8650           actions could, for example, be to change part of the value's
8651           identifier or to ignore the value completely.
8652
8653           Some of these targets are built into the daemon, see "Built-in
8654           targets" below. Other targets are implemented in plugins which you
8655           have to load prior to using the target. The name of such plugins
8656           starts with the "target_" prefix.
8657
8658       Rule
8659           The combination of any number of matches and at least one target is
8660           called a rule. The target actions will be performed for all values
8661           for which all matches apply. If the rule does not have any matches
8662           associated with it, the target action will be performed for all
8663           values.
8664
8665       Chain
8666           A chain is a list of rules and possibly default targets. The rules
8667           are tried in order and if one matches, the associated target will
8668           be called. If a value is handled by a rule, it depends on the
8669           target whether or not any subsequent rules are considered or if
8670           traversal of the chain is aborted, see "Flow control" below. After
8671           all rules have been checked, the default targets will be executed.
8672
8673   General structure
8674       The following shows the resulting structure:
8675
8676        +---------+
8677        ! Chain   !
8678        +---------+
8679             !
8680             V
8681        +---------+  +---------+  +---------+  +---------+
8682        ! Rule    !->! Match   !->! Match   !->! Target  !
8683        +---------+  +---------+  +---------+  +---------+
8684             !
8685             V
8686        +---------+  +---------+  +---------+
8687        ! Rule    !->! Target  !->! Target  !
8688        +---------+  +---------+  +---------+
8689             !
8690             V
8691             :
8692             :
8693             !
8694             V
8695        +---------+  +---------+  +---------+
8696        ! Rule    !->! Match   !->! Target  !
8697        +---------+  +---------+  +---------+
8698             !
8699             V
8700        +---------+
8701        ! Default !
8702        ! Target  !
8703        +---------+
8704
8705   Flow control
8706       There are four ways to control which way a value takes through the
8707       filter mechanism:
8708
8709       jump
8710           The built-in jump target can be used to "call" another chain, i. e.
8711           process the value with another chain. When the called chain
8712           finishes, usually the next target or rule after the jump is
8713           executed.
8714
8715       stop
8716           The stop condition, signaled for example by the built-in target
8717           stop, causes all processing of the value to be stopped immediately.
8718
8719       return
8720           Causes processing in the current chain to be aborted, but
8721           processing of the value generally will continue. This means that if
8722           the chain was called via Jump, the next target or rule after the
8723           jump will be executed. If the chain was not called by another
8724           chain, control will be returned to the daemon and it may pass the
8725           value to another chain.
8726
8727       continue
8728           Most targets will signal the continue condition, meaning that
8729           processing should continue normally. There is no special built-in
8730           target for this condition.
8731
8732   Synopsis
8733       The configuration reflects this structure directly:
8734
8735        PostCacheChain "PostCache"
8736        <Chain "PostCache">
8737          <Rule "ignore_mysql_show">
8738            <Match "regex">
8739              Plugin "^mysql$"
8740              Type "^mysql_command$"
8741              TypeInstance "^show_"
8742            </Match>
8743            <Target "stop">
8744            </Target>
8745          </Rule>
8746          <Target "write">
8747            Plugin "rrdtool"
8748          </Target>
8749        </Chain>
8750
8751       The above configuration example will ignore all values where the plugin
8752       field is "mysql", the type is "mysql_command" and the type instance
8753       begins with "show_". All other values will be sent to the "rrdtool"
8754       write plugin via the default target of the chain. Since this chain is
8755       run after the value has been added to the cache, the MySQL "show_*"
8756       command statistics will be available via the "unixsock" plugin.
8757
8758   List of configuration options
8759       PreCacheChain ChainName
8760       PostCacheChain ChainName
8761           Configure the name of the "pre-cache chain" and the "post-cache
8762           chain". The argument is the name of a chain that should be executed
8763           before and/or after the values have been added to the cache.
8764
8765           To understand the implications, it's important you know what is
8766           going on inside collectd. The following diagram shows how values
8767           are passed from the read-plugins to the write-plugins:
8768
8769              +---------------+
8770              !  Read-Plugin  !
8771              +-------+-------+
8772                      !
8773            + - - - - V - - - - +
8774            : +---------------+ :
8775            : !   Pre-Cache   ! :
8776            : !     Chain     ! :
8777            : +-------+-------+ :
8778            :         !         :
8779            :         V         :
8780            : +-------+-------+ :  +---------------+
8781            : !     Cache     !--->!  Value Cache  !
8782            : !     insert    ! :  +---+---+-------+
8783            : +-------+-------+ :      !   !
8784            :         !   ,------------'   !
8785            :         V   V     :          V
8786            : +-------+---+---+ :  +-------+-------+
8787            : !  Post-Cache   +--->! Write-Plugins !
8788            : !     Chain     ! :  +---------------+
8789            : +---------------+ :
8790            :                   :
8791            :  dispatch values  :
8792            + - - - - - - - - - +
8793
8794           After the values are passed from the "read" plugins to the dispatch
8795           functions, the pre-cache chain is run first. The values are added
8796           to the internal cache afterwards. The post-cache chain is run after
8797           the values have been added to the cache. So why is it such a huge
8798           deal if chains are run before or after the values have been added
8799           to this cache?
8800
8801           Targets that change the identifier of a value list should be
8802           executed before the values are added to the cache, so that the name
8803           in the cache matches the name that is used in the "write" plugins.
8804           The "unixsock" plugin, too, uses this cache to receive a list of
8805           all available values. If you change the identifier after the value
8806           list has been added to the cache, this may easily lead to
8807           confusion, but it's not forbidden of course.
8808
8809           The cache is also used to convert counter values to rates. These
8810           rates are, for example, used by the "value" match (see below). If
8811           you use the rate stored in the cache before the new value is added,
8812           you will use the old, previous rate. Write plugins may use this
8813           rate, too, see the "csv" plugin, for example.  The "unixsock"
8814           plugin uses these rates too, to implement the "GETVAL" command.
8815
8816           Last but not last, the stop target makes a difference: If the pre-
8817           cache chain returns the stop condition, the value will not be added
8818           to the cache and the post-cache chain will not be run.
8819
8820       Chain Name
8821           Adds a new chain with a certain name. This name can be used to
8822           refer to a specific chain, for example to jump to it.
8823
8824           Within the Chain block, there can be Rule blocks and Target blocks.
8825
8826       Rule [Name]
8827           Adds a new rule to the current chain. The name of the rule is
8828           optional and currently has no meaning for the daemon.
8829
8830           Within the Rule block, there may be any number of Match blocks and
8831           there must be at least one Target block.
8832
8833       Match Name
8834           Adds a match to a Rule block. The name specifies what kind of match
8835           should be performed. Available matches depend on the plugins that
8836           have been loaded.
8837
8838           The arguments inside the Match block are passed to the plugin
8839           implementing the match, so which arguments are valid here depends
8840           on the plugin being used.  If you do not need any to pass any
8841           arguments to a match, you can use the shorter syntax:
8842
8843            Match "foobar"
8844
8845           Which is equivalent to:
8846
8847            <Match "foobar">
8848            </Match>
8849
8850       Target Name
8851           Add a target to a rule or a default target to a chain. The name
8852           specifies what kind of target is to be added. Which targets are
8853           available depends on the plugins being loaded.
8854
8855           The arguments inside the Target block are passed to the plugin
8856           implementing the target, so which arguments are valid here depends
8857           on the plugin being used.  If you do not need any to pass any
8858           arguments to a target, you can use the shorter syntax:
8859
8860            Target "stop"
8861
8862           This is the same as writing:
8863
8864            <Target "stop">
8865            </Target>
8866
8867   Built-in targets
8868       The following targets are built into the core daemon and therefore need
8869       no plugins to be loaded:
8870
8871       return
8872           Signals the "return" condition, see the "Flow control" section
8873           above. This causes the current chain to stop processing the value
8874           and returns control to the calling chain. The calling chain will
8875           continue processing targets and rules just after the jump target
8876           (see below). This is very similar to the RETURN target of iptables,
8877           see iptables(8).
8878
8879           This target does not have any options.
8880
8881           Example:
8882
8883            Target "return"
8884
8885       stop
8886           Signals the "stop" condition, see the "Flow control" section above.
8887           This causes processing of the value to be aborted immediately. This
8888           is similar to the DROP target of iptables, see iptables(8).
8889
8890           This target does not have any options.
8891
8892           Example:
8893
8894            Target "stop"
8895
8896       write
8897           Sends the value to "write" plugins.
8898
8899           Available options:
8900
8901           Plugin Name
8902               Name of the write plugin to which the data should be sent. This
8903               option may be given multiple times to send the data to more
8904               than one write plugin. If the plugin supports multiple
8905               instances, the plugin's instance(s) must also be specified.
8906
8907           If no plugin is explicitly specified, the values will be sent to
8908           all available write plugins.
8909
8910           Single-instance plugin example:
8911
8912            <Target "write">
8913              Plugin "rrdtool"
8914            </Target>
8915
8916           Multi-instance plugin example:
8917
8918            <Plugin "write_graphite">
8919              <Node "foo">
8920              ...
8921              </Node>
8922              <Node "bar">
8923              ...
8924              </Node>
8925            </Plugin>
8926             ...
8927            <Target "write">
8928              Plugin "write_graphite/foo"
8929            </Target>
8930
8931       jump
8932           Starts processing the rules of another chain, see "Flow control"
8933           above. If the end of that chain is reached, or a stop condition is
8934           encountered, processing will continue right after the jump target,
8935           i. e. with the next target or the next rule. This is similar to the
8936           -j command line option of iptables, see iptables(8).
8937
8938           Available options:
8939
8940           Chain Name
8941               Jumps to the chain Name. This argument is required and may
8942               appear only once.
8943
8944           Example:
8945
8946            <Target "jump">
8947              Chain "foobar"
8948            </Target>
8949
8950   Available matches
8951       regex
8952           Matches a value using regular expressions.
8953
8954           Available options:
8955
8956           Host Regex
8957           Plugin Regex
8958           PluginInstance Regex
8959           Type Regex
8960           TypeInstance Regex
8961           MetaData String Regex
8962               Match values where the given regular expressions match the
8963               various fields of the identifier of a value. If multiple
8964               regular expressions are given, all regexen must match for a
8965               value to match.
8966
8967           Invert false|true
8968               When set to true, the result of the match is inverted, i.e. all
8969               value lists where all regular expressions apply are not
8970               matched, all other value lists are matched. Defaults to false.
8971
8972           Example:
8973
8974            <Match "regex">
8975              Host "customer[0-9]+"
8976              Plugin "^foobar$"
8977            </Match>
8978
8979       timediff
8980           Matches values that have a time which differs from the time on the
8981           server.
8982
8983           This match is mainly intended for servers that receive values over
8984           the "network" plugin and write them to disk using the "rrdtool"
8985           plugin. RRDtool is very sensitive to the timestamp used when
8986           updating the RRD files. In particular, the time must be ever
8987           increasing. If a misbehaving client sends one packet with a
8988           timestamp far in the future, all further packets with a correct
8989           time will be ignored because of that one packet. What's worse, such
8990           corrupted RRD files are hard to fix.
8991
8992           This match lets one match all values outside a specified time range
8993           (relative to the server's time), so you can use the stop target
8994           (see below) to ignore the value, for example.
8995
8996           Available options:
8997
8998           Future Seconds
8999               Matches all values that are ahead of the server's time by
9000               Seconds or more seconds. Set to zero for no limit. Either
9001               Future or Past must be non-zero.
9002
9003           Past Seconds
9004               Matches all values that are behind of the server's time by
9005               Seconds or more seconds. Set to zero for no limit. Either
9006               Future or Past must be non-zero.
9007
9008           Example:
9009
9010            <Match "timediff">
9011              Future  300
9012              Past   3600
9013            </Match>
9014
9015           This example matches all values that are five minutes or more ahead
9016           of the server or one hour (or more) lagging behind.
9017
9018       value
9019           Matches the actual value of data sources against given minimum /
9020           maximum values. If a data-set consists of more than one data-
9021           source, all data-sources must match the specified ranges for a
9022           positive match.
9023
9024           Available options:
9025
9026           Min Value
9027               Sets the smallest value which still results in a match. If
9028               unset, behaves like negative infinity.
9029
9030           Max Value
9031               Sets the largest value which still results in a match. If
9032               unset, behaves like positive infinity.
9033
9034           Invert true|false
9035               Inverts the selection. If the Min and Max settings result in a
9036               match, no-match is returned and vice versa. Please note that
9037               the Invert setting only effects how Min and Max are applied to
9038               a specific value. Especially the DataSource and Satisfy
9039               settings (see below) are not inverted.
9040
9041           DataSource DSName [DSName ...]
9042               Select one or more of the data sources. If no data source is
9043               configured, all data sources will be checked. If the type
9044               handled by the match does not have a data source of the
9045               specified name(s), this will always result in no match
9046               (independent of the Invert setting).
9047
9048           Satisfy Any|All
9049               Specifies how checking with several data sources is performed.
9050               If set to Any, the match succeeds if one of the data sources is
9051               in the configured range. If set to All the match only succeeds
9052               if all data sources are within the configured range. Default is
9053               All.
9054
9055               Usually All is used for positive matches, Any is used for
9056               negative matches. This means that with All you usually check
9057               that all values are in a "good" range, while with Any you check
9058               if any value is within a "bad" range (or outside the "good"
9059               range).
9060
9061           Either Min or Max, but not both, may be unset.
9062
9063           Example:
9064
9065            # Match all values smaller than or equal to 100. Matches only if all data
9066            # sources are below 100.
9067            <Match "value">
9068              Max 100
9069              Satisfy "All"
9070            </Match>
9071
9072            # Match if the value of any data source is outside the range of 0 - 100.
9073            <Match "value">
9074              Min   0
9075              Max 100
9076              Invert true
9077              Satisfy "Any"
9078            </Match>
9079
9080       empty_counter
9081           Matches all values with one or more data sources of type COUNTER
9082           and where all counter values are zero. These counters usually never
9083           increased since they started existing (and are therefore
9084           uninteresting), or got reset recently or overflowed and you had
9085           really, really bad luck.
9086
9087           Please keep in mind that ignoring such counters can result in
9088           confusing behavior: Counters which hardly ever increase will be
9089           zero for long periods of time. If the counter is reset for some
9090           reason (machine or service restarted, usually), the graph will be
9091           empty (NAN) for a long time. People may not understand why.
9092
9093       hashed
9094           Calculates a hash value of the host name and matches values
9095           according to that hash value. This makes it possible to divide all
9096           hosts into groups and match only values that are in a specific
9097           group. The intended use is in load balancing, where you want to
9098           handle only part of all data and leave the rest for other servers.
9099
9100           The hashing function used tries to distribute the hosts evenly.
9101           First, it calculates a 32 bit hash value using the characters of
9102           the hostname:
9103
9104             hash_value = 0;
9105             for (i = 0; host[i] != 0; i++)
9106               hash_value = (hash_value * 251) + host[i];
9107
9108           The constant 251 is a prime number which is supposed to make this
9109           hash value more random. The code then checks the group for this
9110           host according to the Total and Match arguments:
9111
9112             if ((hash_value % Total) == Match)
9113               matches;
9114             else
9115               does not match;
9116
9117           Please note that when you set Total to two (i. e. you have only two
9118           groups), then the least significant bit of the hash value will be
9119           the XOR of all least significant bits in the host name. One
9120           consequence is that when you have two hosts, "server0.example.com"
9121           and "server1.example.com", where the host name differs in one digit
9122           only and the digits differ by one, those hosts will never end up in
9123           the same group.
9124
9125           Available options:
9126
9127           Match Match Total
9128               Divide the data into Total groups and match all hosts in group
9129               Match as described above. The groups are numbered from zero,
9130               i. e. Match must be smaller than Total. Total must be at least
9131               one, although only values greater than one really do make any
9132               sense.
9133
9134               You can repeat this option to match multiple groups, for
9135               example:
9136
9137                 Match 3 7
9138                 Match 5 7
9139
9140               The above config will divide the data into seven groups and
9141               match groups three and five. One use would be to keep every
9142               value on two hosts so that if one fails the missing data can
9143               later be reconstructed from the second host.
9144
9145           Example:
9146
9147            # Operate on the pre-cache chain, so that ignored values are not even in the
9148            # global cache.
9149            <Chain "PreCache">
9150              <Rule>
9151                <Match "hashed">
9152                  # Divide all received hosts in seven groups and accept all hosts in
9153                  # group three.
9154                  Match 3 7
9155                </Match>
9156                # If matched: Return and continue.
9157                Target "return"
9158              </Rule>
9159              # If not matched: Return and stop.
9160              Target "stop"
9161            </Chain>
9162
9163   Available targets
9164       notification
9165           Creates and dispatches a notification.
9166
9167           Available options:
9168
9169           Message String
9170               This required option sets the message of the notification. The
9171               following placeholders will be replaced by an appropriate
9172               value:
9173
9174               %{host}
9175               %{plugin}
9176               %{plugin_instance}
9177               %{type}
9178               %{type_instance}
9179                   These placeholders are replaced by the identifier field of
9180                   the same name.
9181
9182               %{ds:name}
9183                   These placeholders are replaced by a (hopefully) human
9184                   readable representation of the current rate of this data
9185                   source. If you changed the instance name (using the set or
9186                   replace targets, see below), it may not be possible to
9187                   convert counter values to rates.
9188
9189               Please note that these placeholders are case sensitive!
9190
9191           Severity "FAILURE"|"WARNING"|"OKAY"
9192               Sets the severity of the message. If omitted, the severity
9193               "WARNING" is used.
9194
9195           Example:
9196
9197             <Target "notification">
9198               Message "Oops, the %{type_instance} temperature is currently %{ds:value}!"
9199               Severity "WARNING"
9200             </Target>
9201
9202       replace
9203           Replaces parts of the identifier using regular expressions.
9204
9205           Available options:
9206
9207           Host Regex Replacement
9208           Plugin Regex Replacement
9209           PluginInstance Regex Replacement
9210           TypeInstance Regex Replacement
9211           MetaData String Regex Replacement
9212           DeleteMetaData String Regex
9213               Match the appropriate field with the given regular expression
9214               Regex. If the regular expression matches, that part that
9215               matches is replaced with Replacement. If multiple places of the
9216               input buffer match a given regular expression, only the first
9217               occurrence will be replaced.
9218
9219               You can specify each option multiple times to use multiple
9220               regular expressions one after another.
9221
9222           Example:
9223
9224            <Target "replace">
9225              # Replace "example.net" with "example.com"
9226              Host "\\<example.net\\>" "example.com"
9227
9228              # Strip "www." from hostnames
9229              Host "\\<www\\." ""
9230            </Target>
9231
9232       set Sets part of the identifier of a value to a given string.
9233
9234           Available options:
9235
9236           Host String
9237           Plugin String
9238           PluginInstance String
9239           TypeInstance String
9240           MetaData String String
9241               Set the appropriate field to the given string. The strings for
9242               plugin instance, type instance, and meta data may be empty, the
9243               strings for host and plugin may not be empty. It's currently
9244               not possible to set the type of a value this way.
9245
9246               The following placeholders will be replaced by an appropriate
9247               value:
9248
9249               %{host}
9250               %{plugin}
9251               %{plugin_instance}
9252               %{type}
9253               %{type_instance}
9254                   These placeholders are replaced by the identifier field of
9255                   the same name.
9256
9257               %{meta:name}
9258                   These placeholders are replaced by the meta data value with
9259                   the given name.
9260
9261               Please note that these placeholders are case sensitive!
9262
9263           DeleteMetaData String
9264               Delete the named meta data field.
9265
9266           Example:
9267
9268            <Target "set">
9269              PluginInstance "coretemp"
9270              TypeInstance "core3"
9271            </Target>
9272
9273   Backwards compatibility
9274       If you use collectd with an old configuration, i. e. one without a
9275       Chain block, it will behave as it used to. This is equivalent to the
9276       following configuration:
9277
9278        <Chain "PostCache">
9279          Target "write"
9280        </Chain>
9281
9282       If you specify a PostCacheChain, the write target will not be added
9283       anywhere and you will have to make sure that it is called where
9284       appropriate. We suggest to add the above snippet as default target to
9285       your "PostCache" chain.
9286
9287   Examples
9288       Ignore all values, where the hostname does not contain a dot, i. e.
9289       can't be an FQDN.
9290
9291        <Chain "PreCache">
9292          <Rule "no_fqdn">
9293            <Match "regex">
9294              Host "^[^\.]*$"
9295            </Match>
9296            Target "stop"
9297          </Rule>
9298          Target "write"
9299        </Chain>
9300

IGNORELISTS

9302       Ignorelists are a generic framework to either ignore some metrics or
9303       report specific metircs only. Plugins usually provide one or more
9304       options to specify the items (mounts points, devices, ...) and the
9305       boolean option "IgnoreSelected".
9306
9307       Select String
9308           Selects the item String. This option often has a plugin specific
9309           name, e.g.  Sensor in the "sensors" plugin. It is also plugin
9310           specific what this string is compared to. For example, the "df"
9311           plugin's MountPoint compares it to a mount point and the "sensors"
9312           plugin's Sensor compares it to a sensor name.
9313
9314           By default, this option is doing a case-sensitive full-string
9315           match. The following config will match "foo", but not "Foo":
9316
9317             Select "foo"
9318
9319           If String starts and ends with "/" (a slash), the string is
9320           compiled as a regular expression. For example, so match all item
9321           starting with "foo", use could use the following syntax:
9322
9323             Select "/^foo/"
9324
9325           The regular expression is not anchored, i.e. the following config
9326           will match "foobar", "barfoo" and "AfooZ":
9327
9328             Select "/foo/"
9329
9330           The Select option may be repeated to select multiple items.
9331
9332       IgnoreSelected true|false
9333           If set to true, matching metrics are ignored and all other metrics
9334           are collected. If set to false, matching metrics are collected and
9335           all other metrics are ignored.
9336

SEE ALSO

9338       collectd(1), collectd-exec(5), collectd-perl(5), collectd-unixsock(5),
9339       types.db(5), hddtemp(8), iptables(8), kstat(3KSTAT), mbmon(1), psql(1),
9340       regex(7), rrdtool(1), sensors(1)
9341

AUTHOR

9343       Florian Forster <octo@collectd.org>
9344
9345
9346
93475.8.0.145.gca1cb27                2018-10-23                  COLLECTD.CONF(5)
Impressum