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

THRESHOLD CONFIGURATION

10110       Starting with version 4.3.0 collectd has support for monitoring. By
10111       that we mean that the values are not only stored or sent somewhere, but
10112       that they are judged and, if a problem is recognized, acted upon. The
10113       only action collectd takes itself is to generate and dispatch a
10114       "notification". Plugins can register to receive notifications and
10115       perform appropriate further actions.
10116
10117       Since systems and what you expect them to do differ a lot, you can
10118       configure thresholds for your values freely. This gives you a lot of
10119       flexibility but also a lot of responsibility.
10120
10121       Every time a value is out of range a notification is dispatched. This
10122       means that the idle percentage of your CPU needs to be less then the
10123       configured threshold only once for a notification to be generated.
10124       There's no such thing as a moving average or similar - at least not
10125       now.
10126
10127       Also, all values that match a threshold are considered to be relevant
10128       or "interesting". As a consequence collectd will issue a notification
10129       if they are not received for Timeout iterations. The Timeout
10130       configuration option is explained in section "GLOBAL OPTIONS". If, for
10131       example, Timeout is set to "2" (the default) and some hosts sends it's
10132       CPU statistics to the server every 60 seconds, a notification will be
10133       dispatched after about 120 seconds. It may take a little longer because
10134       the timeout is checked only once each Interval on the server.
10135
10136       When a value comes within range again or is received after it was
10137       missing, an "OKAY-notification" is dispatched.
10138
10139       Here is a configuration example to get you started. Read below for more
10140       information.
10141
10142        <Plugin threshold>
10143          <Type "foo">
10144            WarningMin    0.00
10145            WarningMax 1000.00
10146            FailureMin    0.00
10147            FailureMax 1200.00
10148            Invert false
10149            Instance "bar"
10150          </Type>
10151
10152          <Plugin "interface">
10153            Instance "eth0"
10154            <Type "if_octets">
10155              FailureMax 10000000
10156              DataSource "rx"
10157            </Type>
10158          </Plugin>
10159
10160          <Host "hostname">
10161            <Type "cpu">
10162              Instance "idle"
10163              FailureMin 10
10164            </Type>
10165
10166            <Plugin "memory">
10167              <Type "memory">
10168                Instance "cached"
10169                WarningMin 100000000
10170              </Type>
10171            </Plugin>
10172          </Host>
10173        </Plugin>
10174
10175       There are basically two types of configuration statements: The "Host",
10176       "Plugin", and "Type" blocks select the value for which a threshold
10177       should be configured. The "Plugin" and "Type" blocks may be specified
10178       further using the "Instance" option. You can combine the block by
10179       nesting the blocks, though they must be nested in the above order,
10180       i. e. "Host" may contain either "Plugin" and "Type" blocks, "Plugin"
10181       may only contain "Type" blocks and "Type" may not contain other blocks.
10182       If multiple blocks apply to the same value the most specific block is
10183       used.
10184
10185       The other statements specify the threshold to configure. They must be
10186       included in a "Type" block. Currently the following statements are
10187       recognized:
10188
10189       FailureMax Value
10190       WarningMax Value
10191           Sets the upper bound of acceptable values. If unset defaults to
10192           positive infinity. If a value is greater than FailureMax a FAILURE
10193           notification will be created. If the value is greater than
10194           WarningMax but less than (or equal to) FailureMax a WARNING
10195           notification will be created.
10196
10197       FailureMin Value
10198       WarningMin Value
10199           Sets the lower bound of acceptable values. If unset defaults to
10200           negative infinity. If a value is less than FailureMin a FAILURE
10201           notification will be created. If the value is less than WarningMin
10202           but greater than (or equal to) FailureMin a WARNING notification
10203           will be created.
10204
10205       DataSource DSName
10206           Some data sets have more than one "data source". Interesting
10207           examples are the "if_octets" data set, which has received ("rx")
10208           and sent ("tx") bytes and the "disk_ops" data set, which holds
10209           "read" and "write" operations. The system load data set, "load",
10210           even has three data sources: "shortterm", "midterm", and
10211           "longterm".
10212
10213           Normally, all data sources are checked against a configured
10214           threshold. If this is undesirable, or if you want to specify
10215           different limits for each data source, you can use the DataSource
10216           option to have a threshold apply only to one data source.
10217
10218       Invert true|false
10219           If set to true the range of acceptable values is inverted, i. e.
10220           values between FailureMin and FailureMax (WarningMin and
10221           WarningMax) are not okay. Defaults to false.
10222
10223       Persist true|false
10224           Sets how often notifications are generated. If set to true one
10225           notification will be generated for each value that is out of the
10226           acceptable range. If set to false (the default) then a notification
10227           is only generated if a value is out of range but the previous value
10228           was okay.
10229
10230           This applies to missing values, too: If set to true a notification
10231           about a missing value is generated once every Interval seconds. If
10232           set to false only one such notification is generated until the
10233           value appears again.
10234
10235       Percentage true|false
10236           If set to true, the minimum and maximum values given are
10237           interpreted as percentage value, relative to the other data
10238           sources. This is helpful for example for the "df" type, where you
10239           may want to issue a warning when less than 5 % of the total space
10240           is available. Defaults to false.
10241
10242       Hits Number
10243           Delay creating the notification until the threshold has been passed
10244           Number times. When a notification has been generated, or when a
10245           subsequent value is inside the threshold, the counter is reset. If,
10246           for example, a value is collected once every 10 seconds and Hits is
10247           set to 3, a notification will be dispatched at most once every
10248           30 seconds.
10249
10250           This is useful when short bursts are not a problem. If, for
10251           example, 100% CPU usage for up to a minute is normal (and data is
10252           collected every 10 seconds), you could set Hits to 6 to account for
10253           this.
10254
10255       Hysteresis Number
10256           When set to non-zero, a hysteresis value is applied when checking
10257           minimum and maximum bounds. This is useful for values that increase
10258           slowly and fluctuate a bit while doing so. When these values come
10259           close to the threshold, they may "flap", i.e. switch between
10260           failure / warning case and okay case repeatedly.
10261
10262           If, for example, the threshold is configures as
10263
10264             WarningMax 100.0
10265             Hysteresis 1.0
10266
10267           then a Warning notification is created when the value exceeds 101
10268           and the corresponding Okay notification is only created once the
10269           value falls below 99, thus avoiding the "flapping".
10270

FILTER CONFIGURATION

10272       Starting with collectd 4.6 there is a powerful filtering infrastructure
10273       implemented in the daemon. The concept has mostly been copied from
10274       ip_tables, the packet filter infrastructure for Linux. We'll use a
10275       similar terminology, so that users that are familiar with iptables feel
10276       right at home.
10277
10278   Terminology
10279       The following are the terms used in the remainder of the filter
10280       configuration documentation. For an ASCII-art schema of the mechanism,
10281       see "General structure" below.
10282
10283       Match
10284           A match is a criteria to select specific values. Examples are, of
10285           course, the name of the value or it's current value.
10286
10287           Matches are implemented in plugins which you have to load prior to
10288           using the match. The name of such plugins starts with the "match_"
10289           prefix.
10290
10291       Target
10292           A target is some action that is to be performed with data. Such
10293           actions could, for example, be to change part of the value's
10294           identifier or to ignore the value completely.
10295
10296           Some of these targets are built into the daemon, see "Built-in
10297           targets" below. Other targets are implemented in plugins which you
10298           have to load prior to using the target. The name of such plugins
10299           starts with the "target_" prefix.
10300
10301       Rule
10302           The combination of any number of matches and at least one target is
10303           called a rule. The target actions will be performed for all values
10304           for which all matches apply. If the rule does not have any matches
10305           associated with it, the target action will be performed for all
10306           values.
10307
10308       Chain
10309           A chain is a list of rules and possibly default targets. The rules
10310           are tried in order and if one matches, the associated target will
10311           be called. If a value is handled by a rule, it depends on the
10312           target whether or not any subsequent rules are considered or if
10313           traversal of the chain is aborted, see "Flow control" below. After
10314           all rules have been checked, the default targets will be executed.
10315
10316   General structure
10317       The following shows the resulting structure:
10318
10319        +---------+
10320        ! Chain   !
10321        +---------+
10322             !
10323             V
10324        +---------+  +---------+  +---------+  +---------+
10325        ! Rule    !->! Match   !->! Match   !->! Target  !
10326        +---------+  +---------+  +---------+  +---------+
10327             !
10328             V
10329        +---------+  +---------+  +---------+
10330        ! Rule    !->! Target  !->! Target  !
10331        +---------+  +---------+  +---------+
10332             !
10333             V
10334             :
10335             :
10336             !
10337             V
10338        +---------+  +---------+  +---------+
10339        ! Rule    !->! Match   !->! Target  !
10340        +---------+  +---------+  +---------+
10341             !
10342             V
10343        +---------+
10344        ! Default !
10345        ! Target  !
10346        +---------+
10347
10348   Flow control
10349       There are four ways to control which way a value takes through the
10350       filter mechanism:
10351
10352       jump
10353           The built-in jump target can be used to "call" another chain, i. e.
10354           process the value with another chain. When the called chain
10355           finishes, usually the next target or rule after the jump is
10356           executed.
10357
10358       stop
10359           The stop condition, signaled for example by the built-in target
10360           stop, causes all processing of the value to be stopped immediately.
10361
10362       return
10363           Causes processing in the current chain to be aborted, but
10364           processing of the value generally will continue. This means that if
10365           the chain was called via Jump, the next target or rule after the
10366           jump will be executed. If the chain was not called by another
10367           chain, control will be returned to the daemon and it may pass the
10368           value to another chain.
10369
10370       continue
10371           Most targets will signal the continue condition, meaning that
10372           processing should continue normally. There is no special built-in
10373           target for this condition.
10374
10375   Synopsis
10376       The configuration reflects this structure directly:
10377
10378        PostCacheChain "PostCache"
10379        <Chain "PostCache">
10380          <Rule "ignore_mysql_show">
10381            <Match "regex">
10382              Plugin "^mysql$"
10383              Type "^mysql_command$"
10384              TypeInstance "^show_"
10385            </Match>
10386            <Target "stop">
10387            </Target>
10388          </Rule>
10389          <Target "write">
10390            Plugin "rrdtool"
10391          </Target>
10392        </Chain>
10393
10394       The above configuration example will ignore all values where the plugin
10395       field is "mysql", the type is "mysql_command" and the type instance
10396       begins with "show_". All other values will be sent to the "rrdtool"
10397       write plugin via the default target of the chain. Since this chain is
10398       run after the value has been added to the cache, the MySQL "show_*"
10399       command statistics will be available via the "unixsock" plugin.
10400
10401   List of configuration options
10402       PreCacheChain ChainName
10403       PostCacheChain ChainName
10404           Configure the name of the "pre-cache chain" and the "post-cache
10405           chain". The argument is the name of a chain that should be executed
10406           before and/or after the values have been added to the cache.
10407
10408           To understand the implications, it's important you know what is
10409           going on inside collectd. The following diagram shows how values
10410           are passed from the read-plugins to the write-plugins:
10411
10412              +---------------+
10413              !  Read-Plugin  !
10414              +-------+-------+
10415                      !
10416            + - - - - V - - - - +
10417            : +---------------+ :
10418            : !   Pre-Cache   ! :
10419            : !     Chain     ! :
10420            : +-------+-------+ :
10421            :         !         :
10422            :         V         :
10423            : +-------+-------+ :  +---------------+
10424            : !     Cache     !--->!  Value Cache  !
10425            : !     insert    ! :  +---+---+-------+
10426            : +-------+-------+ :      !   !
10427            :         !   ,------------'   !
10428            :         V   V     :          V
10429            : +-------+---+---+ :  +-------+-------+
10430            : !  Post-Cache   +--->! Write-Plugins !
10431            : !     Chain     ! :  +---------------+
10432            : +---------------+ :
10433            :                   :
10434            :  dispatch values  :
10435            + - - - - - - - - - +
10436
10437           After the values are passed from the "read" plugins to the dispatch
10438           functions, the pre-cache chain is run first. The values are added
10439           to the internal cache afterwards. The post-cache chain is run after
10440           the values have been added to the cache. So why is it such a huge
10441           deal if chains are run before or after the values have been added
10442           to this cache?
10443
10444           Targets that change the identifier of a value list should be
10445           executed before the values are added to the cache, so that the name
10446           in the cache matches the name that is used in the "write" plugins.
10447           The "unixsock" plugin, too, uses this cache to receive a list of
10448           all available values. If you change the identifier after the value
10449           list has been added to the cache, this may easily lead to
10450           confusion, but it's not forbidden of course.
10451
10452           The cache is also used to convert counter values to rates. These
10453           rates are, for example, used by the "value" match (see below). If
10454           you use the rate stored in the cache before the new value is added,
10455           you will use the old, previous rate. Write plugins may use this
10456           rate, too, see the "csv" plugin, for example.  The "unixsock"
10457           plugin uses these rates too, to implement the "GETVAL" command.
10458
10459           Last but not last, the stop target makes a difference: If the pre-
10460           cache chain returns the stop condition, the value will not be added
10461           to the cache and the post-cache chain will not be run.
10462
10463       Chain Name
10464           Adds a new chain with a certain name. This name can be used to
10465           refer to a specific chain, for example to jump to it.
10466
10467           Within the Chain block, there can be Rule blocks and Target blocks.
10468
10469       Rule [Name]
10470           Adds a new rule to the current chain. The name of the rule is
10471           optional and currently has no meaning for the daemon.
10472
10473           Within the Rule block, there may be any number of Match blocks and
10474           there must be at least one Target block.
10475
10476       Match Name
10477           Adds a match to a Rule block. The name specifies what kind of match
10478           should be performed. Available matches depend on the plugins that
10479           have been loaded.
10480
10481           The arguments inside the Match block are passed to the plugin
10482           implementing the match, so which arguments are valid here depends
10483           on the plugin being used.  If you do not need any to pass any
10484           arguments to a match, you can use the shorter syntax:
10485
10486            Match "foobar"
10487
10488           Which is equivalent to:
10489
10490            <Match "foobar">
10491            </Match>
10492
10493       Target Name
10494           Add a target to a rule or a default target to a chain. The name
10495           specifies what kind of target is to be added. Which targets are
10496           available depends on the plugins being loaded.
10497
10498           The arguments inside the Target block are passed to the plugin
10499           implementing the target, so which arguments are valid here depends
10500           on the plugin being used.  If you do not need any to pass any
10501           arguments to a target, you can use the shorter syntax:
10502
10503            Target "stop"
10504
10505           This is the same as writing:
10506
10507            <Target "stop">
10508            </Target>
10509
10510   Built-in targets
10511       The following targets are built into the core daemon and therefore need
10512       no plugins to be loaded:
10513
10514       return
10515           Signals the "return" condition, see the "Flow control" section
10516           above. This causes the current chain to stop processing the value
10517           and returns control to the calling chain. The calling chain will
10518           continue processing targets and rules just after the jump target
10519           (see below). This is very similar to the RETURN target of iptables,
10520           see iptables(8).
10521
10522           This target does not have any options.
10523
10524           Example:
10525
10526            Target "return"
10527
10528       stop
10529           Signals the "stop" condition, see the "Flow control" section above.
10530           This causes processing of the value to be aborted immediately. This
10531           is similar to the DROP target of iptables, see iptables(8).
10532
10533           This target does not have any options.
10534
10535           Example:
10536
10537            Target "stop"
10538
10539       write
10540           Sends the value to "write" plugins.
10541
10542           Available options:
10543
10544           Plugin Name
10545               Name of the write plugin to which the data should be sent. This
10546               option may be given multiple times to send the data to more
10547               than one write plugin. If the plugin supports multiple
10548               instances, the plugin's instance(s) must also be specified.
10549
10550           If no plugin is explicitly specified, the values will be sent to
10551           all available write plugins.
10552
10553           Single-instance plugin example:
10554
10555            <Target "write">
10556              Plugin "rrdtool"
10557            </Target>
10558
10559           Multi-instance plugin example:
10560
10561            <Plugin "write_graphite">
10562              <Node "foo">
10563              ...
10564              </Node>
10565              <Node "bar">
10566              ...
10567              </Node>
10568            </Plugin>
10569             ...
10570            <Target "write">
10571              Plugin "write_graphite/foo"
10572            </Target>
10573
10574       jump
10575           Starts processing the rules of another chain, see "Flow control"
10576           above. If the end of that chain is reached, or a stop condition is
10577           encountered, processing will continue right after the jump target,
10578           i. e. with the next target or the next rule. This is similar to the
10579           -j command line option of iptables, see iptables(8).
10580
10581           Available options:
10582
10583           Chain Name
10584               Jumps to the chain Name. This argument is required and may
10585               appear only once.
10586
10587           Example:
10588
10589            <Target "jump">
10590              Chain "foobar"
10591            </Target>
10592
10593   Available matches
10594       regex
10595           Matches a value using regular expressions.
10596
10597           Available options:
10598
10599           Host Regex
10600           Plugin Regex
10601           PluginInstance Regex
10602           Type Regex
10603           TypeInstance Regex
10604           MetaData String Regex
10605               Match values where the given regular expressions match the
10606               various fields of the identifier of a value. If multiple
10607               regular expressions are given, all regexen must match for a
10608               value to match.
10609
10610           Invert false|true
10611               When set to true, the result of the match is inverted, i.e. all
10612               value lists where all regular expressions apply are not
10613               matched, all other value lists are matched. Defaults to false.
10614
10615           Example:
10616
10617            <Match "regex">
10618              Host "customer[0-9]+"
10619              Plugin "^foobar$"
10620            </Match>
10621
10622       timediff
10623           Matches values that have a time which differs from the time on the
10624           server.
10625
10626           This match is mainly intended for servers that receive values over
10627           the "network" plugin and write them to disk using the "rrdtool"
10628           plugin. RRDtool is very sensitive to the timestamp used when
10629           updating the RRD files. In particular, the time must be ever
10630           increasing. If a misbehaving client sends one packet with a
10631           timestamp far in the future, all further packets with a correct
10632           time will be ignored because of that one packet. What's worse, such
10633           corrupted RRD files are hard to fix.
10634
10635           This match lets one match all values outside a specified time range
10636           (relative to the server's time), so you can use the stop target
10637           (see below) to ignore the value, for example.
10638
10639           Available options:
10640
10641           Future Seconds
10642               Matches all values that are ahead of the server's time by
10643               Seconds or more seconds. Set to zero for no limit. Either
10644               Future or Past must be non-zero.
10645
10646           Past Seconds
10647               Matches all values that are behind of the server's time by
10648               Seconds or more seconds. Set to zero for no limit. Either
10649               Future or Past must be non-zero.
10650
10651           Example:
10652
10653            <Match "timediff">
10654              Future  300
10655              Past   3600
10656            </Match>
10657
10658           This example matches all values that are five minutes or more ahead
10659           of the server or one hour (or more) lagging behind.
10660
10661       value
10662           Matches the actual value of data sources against given minimum /
10663           maximum values. If a data-set consists of more than one data-
10664           source, all data-sources must match the specified ranges for a
10665           positive match.
10666
10667           Available options:
10668
10669           Min Value
10670               Sets the smallest value which still results in a match. If
10671               unset, behaves like negative infinity.
10672
10673           Max Value
10674               Sets the largest value which still results in a match. If
10675               unset, behaves like positive infinity.
10676
10677           Invert true|false
10678               Inverts the selection. If the Min and Max settings result in a
10679               match, no-match is returned and vice versa. Please note that
10680               the Invert setting only effects how Min and Max are applied to
10681               a specific value. Especially the DataSource and Satisfy
10682               settings (see below) are not inverted.
10683
10684           DataSource DSName [DSName ...]
10685               Select one or more of the data sources. If no data source is
10686               configured, all data sources will be checked. If the type
10687               handled by the match does not have a data source of the
10688               specified name(s), this will always result in no match
10689               (independent of the Invert setting).
10690
10691           Satisfy Any|All
10692               Specifies how checking with several data sources is performed.
10693               If set to Any, the match succeeds if one of the data sources is
10694               in the configured range. If set to All the match only succeeds
10695               if all data sources are within the configured range. Default is
10696               All.
10697
10698               Usually All is used for positive matches, Any is used for
10699               negative matches. This means that with All you usually check
10700               that all values are in a "good" range, while with Any you check
10701               if any value is within a "bad" range (or outside the "good"
10702               range).
10703
10704           Either Min or Max, but not both, may be unset.
10705
10706           Example:
10707
10708            # Match all values smaller than or equal to 100. Matches only if all data
10709            # sources are below 100.
10710            <Match "value">
10711              Max 100
10712              Satisfy "All"
10713            </Match>
10714
10715            # Match if the value of any data source is outside the range of 0 - 100.
10716            <Match "value">
10717              Min   0
10718              Max 100
10719              Invert true
10720              Satisfy "Any"
10721            </Match>
10722
10723       empty_counter
10724           Matches all values with one or more data sources of type COUNTER
10725           and where all counter values are zero. These counters usually never
10726           increased since they started existing (and are therefore
10727           uninteresting), or got reset recently or overflowed and you had
10728           really, really bad luck.
10729
10730           Please keep in mind that ignoring such counters can result in
10731           confusing behavior: Counters which hardly ever increase will be
10732           zero for long periods of time. If the counter is reset for some
10733           reason (machine or service restarted, usually), the graph will be
10734           empty (NAN) for a long time. People may not understand why.
10735
10736       hashed
10737           Calculates a hash value of the host name and matches values
10738           according to that hash value. This makes it possible to divide all
10739           hosts into groups and match only values that are in a specific
10740           group. The intended use is in load balancing, where you want to
10741           handle only part of all data and leave the rest for other servers.
10742
10743           The hashing function used tries to distribute the hosts evenly.
10744           First, it calculates a 32 bit hash value using the characters of
10745           the hostname:
10746
10747             hash_value = 0;
10748             for (i = 0; host[i] != 0; i++)
10749               hash_value = (hash_value * 251) + host[i];
10750
10751           The constant 251 is a prime number which is supposed to make this
10752           hash value more random. The code then checks the group for this
10753           host according to the Total and Match arguments:
10754
10755             if ((hash_value % Total) == Match)
10756               matches;
10757             else
10758               does not match;
10759
10760           Please note that when you set Total to two (i. e. you have only two
10761           groups), then the least significant bit of the hash value will be
10762           the XOR of all least significant bits in the host name. One
10763           consequence is that when you have two hosts, "server0.example.com"
10764           and "server1.example.com", where the host name differs in one digit
10765           only and the digits differ by one, those hosts will never end up in
10766           the same group.
10767
10768           Available options:
10769
10770           Match Match Total
10771               Divide the data into Total groups and match all hosts in group
10772               Match as described above. The groups are numbered from zero,
10773               i. e. Match must be smaller than Total. Total must be at least
10774               one, although only values greater than one really do make any
10775               sense.
10776
10777               You can repeat this option to match multiple groups, for
10778               example:
10779
10780                 Match 3 7
10781                 Match 5 7
10782
10783               The above config will divide the data into seven groups and
10784               match groups three and five. One use would be to keep every
10785               value on two hosts so that if one fails the missing data can
10786               later be reconstructed from the second host.
10787
10788           Example:
10789
10790            # Operate on the pre-cache chain, so that ignored values are not even in the
10791            # global cache.
10792            <Chain "PreCache">
10793              <Rule>
10794                <Match "hashed">
10795                  # Divide all received hosts in seven groups and accept all hosts in
10796                  # group three.
10797                  Match 3 7
10798                </Match>
10799                # If matched: Return and continue.
10800                Target "return"
10801              </Rule>
10802              # If not matched: Return and stop.
10803              Target "stop"
10804            </Chain>
10805
10806   Available targets
10807       notification
10808           Creates and dispatches a notification.
10809
10810           Available options:
10811
10812           Message String
10813               This required option sets the message of the notification. The
10814               following placeholders will be replaced by an appropriate
10815               value:
10816
10817               %{host}
10818               %{plugin}
10819               %{plugin_instance}
10820               %{type}
10821               %{type_instance}
10822                   These placeholders are replaced by the identifier field of
10823                   the same name.
10824
10825               %{ds:name}
10826                   These placeholders are replaced by a (hopefully) human
10827                   readable representation of the current rate of this data
10828                   source. If you changed the instance name (using the set or
10829                   replace targets, see below), it may not be possible to
10830                   convert counter values to rates.
10831
10832               Please note that these placeholders are case sensitive!
10833
10834           Severity "FAILURE"|"WARNING"|"OKAY"
10835               Sets the severity of the message. If omitted, the severity
10836               "WARNING" is used.
10837
10838           Example:
10839
10840             <Target "notification">
10841               Message "Oops, the %{type_instance} temperature is currently %{ds:value}!"
10842               Severity "WARNING"
10843             </Target>
10844
10845       replace
10846           Replaces parts of the identifier using regular expressions.
10847
10848           Available options:
10849
10850           Host Regex Replacement
10851           Plugin Regex Replacement
10852           PluginInstance Regex Replacement
10853           TypeInstance Regex Replacement
10854           MetaData String Regex Replacement
10855           DeleteMetaData String Regex
10856               Match the appropriate field with the given regular expression
10857               Regex. If the regular expression matches, that part that
10858               matches is replaced with Replacement. If multiple places of the
10859               input buffer match a given regular expression, only the first
10860               occurrence will be replaced.
10861
10862               You can specify each option multiple times to use multiple
10863               regular expressions one after another.
10864
10865           Example:
10866
10867            <Target "replace">
10868              # Replace "example.net" with "example.com"
10869              Host "\\<example.net\\>" "example.com"
10870
10871              # Strip "www." from hostnames
10872              Host "\\<www\\." ""
10873            </Target>
10874
10875       set Sets part of the identifier of a value to a given string.
10876
10877           Available options:
10878
10879           Host String
10880           Plugin String
10881           PluginInstance String
10882           TypeInstance String
10883           MetaData String String
10884               Set the appropriate field to the given string. The strings for
10885               plugin instance, type instance, and meta data may be empty, the
10886               strings for host and plugin may not be empty. It's currently
10887               not possible to set the type of a value this way.
10888
10889               The following placeholders will be replaced by an appropriate
10890               value:
10891
10892               %{host}
10893               %{plugin}
10894               %{plugin_instance}
10895               %{type}
10896               %{type_instance}
10897                   These placeholders are replaced by the identifier field of
10898                   the same name.
10899
10900               %{meta:name}
10901                   These placeholders are replaced by the meta data value with
10902                   the given name.
10903
10904               Please note that these placeholders are case sensitive!
10905
10906           DeleteMetaData String
10907               Delete the named meta data field.
10908
10909           Example:
10910
10911            <Target "set">
10912              PluginInstance "coretemp"
10913              TypeInstance "core3"
10914            </Target>
10915
10916   Backwards compatibility
10917       If you use collectd with an old configuration, i. e. one without a
10918       Chain block, it will behave as it used to. This is equivalent to the
10919       following configuration:
10920
10921        <Chain "PostCache">
10922          Target "write"
10923        </Chain>
10924
10925       If you specify a PostCacheChain, the write target will not be added
10926       anywhere and you will have to make sure that it is called where
10927       appropriate. We suggest to add the above snippet as default target to
10928       your "PostCache" chain.
10929
10930   Examples
10931       Ignore all values, where the hostname does not contain a dot, i. e.
10932       can't be an FQDN.
10933
10934        <Chain "PreCache">
10935          <Rule "no_fqdn">
10936            <Match "regex">
10937              Host "^[^\.]*$"
10938            </Match>
10939            Target "stop"
10940          </Rule>
10941          Target "write"
10942        </Chain>
10943

IGNORELISTS

10945       Ignorelists are a generic framework to either ignore some metrics or
10946       report specific metrics only. Plugins usually provide one or more
10947       options to specify the items (mounts points, devices, ...) and the
10948       boolean option "IgnoreSelected".
10949
10950       Select String
10951           Selects the item String. This option often has a plugin specific
10952           name, e.g.  Sensor in the "sensors" plugin. It is also plugin
10953           specific what this string is compared to. For example, the "df"
10954           plugin's MountPoint compares it to a mount point and the "sensors"
10955           plugin's Sensor compares it to a sensor name.
10956
10957           By default, this option is doing a case-sensitive full-string
10958           match. The following config will match "foo", but not "Foo":
10959
10960             Select "foo"
10961
10962           If String starts and ends with "/" (a slash), the string is
10963           compiled as a regular expression. For example, so match all item
10964           starting with "foo", use could use the following syntax:
10965
10966             Select "/^foo/"
10967
10968           The regular expression is not anchored, i.e. the following config
10969           will match "foobar", "barfoo" and "AfooZ":
10970
10971             Select "/foo/"
10972
10973           The Select option may be repeated to select multiple items.
10974
10975       IgnoreSelected true|false
10976           If set to true, matching metrics are ignored and all other metrics
10977           are collected. If set to false, matching metrics are collected and
10978           all other metrics are ignored.
10979

SEE ALSO

10981       collectd(1), collectd-exec(5), collectd-perl(5), collectd-unixsock(5),
10982       types.db(5), hddtemp(8), iptables(8), kstat(3KSTAT), mbmon(1), psql(1),
10983       regex(7), rrdtool(1), sensors(1)
10984

AUTHOR

10986       Florian Forster <octo@collectd.org>
10987
10988
10989
109905.9.1.599.gbb5cfbc                2020-03-19                  COLLECTD.CONF(5)
Impressum