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

THRESHOLD CONFIGURATION

10382       Starting with version 4.3.0 collectd has support for monitoring. By
10383       that we mean that the values are not only stored or sent somewhere, but
10384       that they are judged and, if a problem is recognized, acted upon. The
10385       only action collectd takes itself is to generate and dispatch a
10386       "notification". Plugins can register to receive notifications and
10387       perform appropriate further actions.
10388
10389       Since systems and what you expect them to do differ a lot, you can
10390       configure thresholds for your values freely. This gives you a lot of
10391       flexibility but also a lot of responsibility.
10392
10393       Every time a value is out of range a notification is dispatched. This
10394       means that the idle percentage of your CPU needs to be less then the
10395       configured threshold only once for a notification to be generated.
10396       There's no such thing as a moving average or similar - at least not
10397       now.
10398
10399       Also, all values that match a threshold are considered to be relevant
10400       or "interesting". As a consequence collectd will issue a notification
10401       if they are not received for Timeout iterations. The Timeout
10402       configuration option is explained in section "GLOBAL OPTIONS". If, for
10403       example, Timeout is set to "2" (the default) and some hosts sends it's
10404       CPU statistics to the server every 60 seconds, a notification will be
10405       dispatched after about 120 seconds. It may take a little longer because
10406       the timeout is checked only once each Interval on the server.
10407
10408       When a value comes within range again or is received after it was
10409       missing, an "OKAY-notification" is dispatched.
10410
10411       Here is a configuration example to get you started. Read below for more
10412       information.
10413
10414        <Plugin threshold>
10415          <Type "foo">
10416            WarningMin    0.00
10417            WarningMax 1000.00
10418            FailureMin    0.00
10419            FailureMax 1200.00
10420            Invert false
10421            Instance "bar"
10422          </Type>
10423
10424          <Plugin "interface">
10425            Instance "eth0"
10426            <Type "if_octets">
10427              FailureMax 10000000
10428              DataSource "rx"
10429            </Type>
10430          </Plugin>
10431
10432          <Host "hostname">
10433            <Type "cpu">
10434              Instance "idle"
10435              FailureMin 10
10436            </Type>
10437
10438            <Plugin "memory">
10439              <Type "memory">
10440                Instance "cached"
10441                WarningMin 100000000
10442              </Type>
10443            </Plugin>
10444          </Host>
10445        </Plugin>
10446
10447       There are basically two types of configuration statements: The "Host",
10448       "Plugin", and "Type" blocks select the value for which a threshold
10449       should be configured. The "Plugin" and "Type" blocks may be specified
10450       further using the "Instance" option. You can combine the block by
10451       nesting the blocks, though they must be nested in the above order,
10452       i. e. "Host" may contain either "Plugin" and "Type" blocks, "Plugin"
10453       may only contain "Type" blocks and "Type" may not contain other blocks.
10454       If multiple blocks apply to the same value the most specific block is
10455       used.
10456
10457       The other statements specify the threshold to configure. They must be
10458       included in a "Type" block. Currently the following statements are
10459       recognized:
10460
10461       FailureMax Value
10462       WarningMax Value
10463           Sets the upper bound of acceptable values. If unset defaults to
10464           positive infinity. If a value is greater than FailureMax a FAILURE
10465           notification will be created. If the value is greater than
10466           WarningMax but less than (or equal to) FailureMax a WARNING
10467           notification will be created.
10468
10469       FailureMin Value
10470       WarningMin Value
10471           Sets the lower bound of acceptable values. If unset defaults to
10472           negative infinity. If a value is less than FailureMin a FAILURE
10473           notification will be created. If the value is less than WarningMin
10474           but greater than (or equal to) FailureMin a WARNING notification
10475           will be created.
10476
10477       DataSource DSName
10478           Some data sets have more than one "data source". Interesting
10479           examples are the "if_octets" data set, which has received ("rx")
10480           and sent ("tx") bytes and the "disk_ops" data set, which holds
10481           "read" and "write" operations. The system load data set, "load",
10482           even has three data sources: "shortterm", "midterm", and
10483           "longterm".
10484
10485           Normally, all data sources are checked against a configured
10486           threshold. If this is undesirable, or if you want to specify
10487           different limits for each data source, you can use the DataSource
10488           option to have a threshold apply only to one data source.
10489
10490       Invert true|false
10491           If set to true the range of acceptable values is inverted, i. e.
10492           values between FailureMin and FailureMax (WarningMin and
10493           WarningMax) are not okay. Defaults to false.
10494
10495       Persist true|false
10496           Sets how often notifications are generated. If set to true one
10497           notification will be generated for each value that is out of the
10498           acceptable range. If set to false (the default) then a notification
10499           is only generated if a value is out of range but the previous value
10500           was okay.
10501
10502           This applies to missing values, too: If set to true a notification
10503           about a missing value is generated once every Interval seconds. If
10504           set to false only one such notification is generated until the
10505           value appears again.
10506
10507       Percentage true|false
10508           If set to true, the minimum and maximum values given are
10509           interpreted as percentage value, relative to the other data
10510           sources. This is helpful for example for the "df" type, where you
10511           may want to issue a warning when less than 5 % of the total space
10512           is available. Defaults to false.
10513
10514       Hits Number
10515           Delay creating the notification until the threshold has been passed
10516           Number times. When a notification has been generated, or when a
10517           subsequent value is inside the threshold, the counter is reset. If,
10518           for example, a value is collected once every 10 seconds and Hits is
10519           set to 3, a notification will be dispatched at most once every
10520           30 seconds.
10521
10522           This is useful when short bursts are not a problem. If, for
10523           example, 100% CPU usage for up to a minute is normal (and data is
10524           collected every 10 seconds), you could set Hits to 6 to account for
10525           this.
10526
10527       Hysteresis Number
10528           When set to non-zero, a hysteresis value is applied when checking
10529           minimum and maximum bounds. This is useful for values that increase
10530           slowly and fluctuate a bit while doing so. When these values come
10531           close to the threshold, they may "flap", i.e. switch between
10532           failure / warning case and okay case repeatedly.
10533
10534           If, for example, the threshold is configures as
10535
10536             WarningMax 100.0
10537             Hysteresis 1.0
10538
10539           then a Warning notification is created when the value exceeds 101
10540           and the corresponding Okay notification is only created once the
10541           value falls below 99, thus avoiding the "flapping".
10542

FILTER CONFIGURATION

10544       Starting with collectd 4.6 there is a powerful filtering infrastructure
10545       implemented in the daemon. The concept has mostly been copied from
10546       ip_tables, the packet filter infrastructure for Linux. We'll use a
10547       similar terminology, so that users that are familiar with iptables feel
10548       right at home.
10549
10550   Terminology
10551       The following are the terms used in the remainder of the filter
10552       configuration documentation. For an ASCII-art schema of the mechanism,
10553       see "General structure" below.
10554
10555       Match
10556           A match is a criteria to select specific values. Examples are, of
10557           course, the name of the value or it's current value.
10558
10559           Matches are implemented in plugins which you have to load prior to
10560           using the match. The name of such plugins starts with the "match_"
10561           prefix.
10562
10563       Target
10564           A target is some action that is to be performed with data. Such
10565           actions could, for example, be to change part of the value's
10566           identifier or to ignore the value completely.
10567
10568           Some of these targets are built into the daemon, see "Built-in
10569           targets" below. Other targets are implemented in plugins which you
10570           have to load prior to using the target. The name of such plugins
10571           starts with the "target_" prefix.
10572
10573       Rule
10574           The combination of any number of matches and at least one target is
10575           called a rule. The target actions will be performed for all values
10576           for which all matches apply. If the rule does not have any matches
10577           associated with it, the target action will be performed for all
10578           values.
10579
10580       Chain
10581           A chain is a list of rules and possibly default targets. The rules
10582           are tried in order and if one matches, the associated target will
10583           be called. If a value is handled by a rule, it depends on the
10584           target whether or not any subsequent rules are considered or if
10585           traversal of the chain is aborted, see "Flow control" below. After
10586           all rules have been checked, the default targets will be executed.
10587
10588   General structure
10589       The following shows the resulting structure:
10590
10591        +---------+
10592        ! Chain   !
10593        +---------+
10594             !
10595             V
10596        +---------+  +---------+  +---------+  +---------+
10597        ! Rule    !->! Match   !->! Match   !->! Target  !
10598        +---------+  +---------+  +---------+  +---------+
10599             !
10600             V
10601        +---------+  +---------+  +---------+
10602        ! Rule    !->! Target  !->! Target  !
10603        +---------+  +---------+  +---------+
10604             !
10605             V
10606             :
10607             :
10608             !
10609             V
10610        +---------+  +---------+  +---------+
10611        ! Rule    !->! Match   !->! Target  !
10612        +---------+  +---------+  +---------+
10613             !
10614             V
10615        +---------+
10616        ! Default !
10617        ! Target  !
10618        +---------+
10619
10620   Flow control
10621       There are four ways to control which way a value takes through the
10622       filter mechanism:
10623
10624       jump
10625           The built-in jump target can be used to "call" another chain, i. e.
10626           process the value with another chain. When the called chain
10627           finishes, usually the next target or rule after the jump is
10628           executed.
10629
10630       stop
10631           The stop condition, signaled for example by the built-in target
10632           stop, causes all processing of the value to be stopped immediately.
10633
10634       return
10635           Causes processing in the current chain to be aborted, but
10636           processing of the value generally will continue. This means that if
10637           the chain was called via Jump, the next target or rule after the
10638           jump will be executed. If the chain was not called by another
10639           chain, control will be returned to the daemon and it may pass the
10640           value to another chain.
10641
10642       continue
10643           Most targets will signal the continue condition, meaning that
10644           processing should continue normally. There is no special built-in
10645           target for this condition.
10646
10647   Synopsis
10648       The configuration reflects this structure directly:
10649
10650        PostCacheChain "PostCache"
10651        <Chain "PostCache">
10652          <Rule "ignore_mysql_show">
10653            <Match "regex">
10654              Plugin "^mysql$"
10655              Type "^mysql_command$"
10656              TypeInstance "^show_"
10657            </Match>
10658            <Target "stop">
10659            </Target>
10660          </Rule>
10661          <Target "write">
10662            Plugin "rrdtool"
10663          </Target>
10664        </Chain>
10665
10666       The above configuration example will ignore all values where the plugin
10667       field is "mysql", the type is "mysql_command" and the type instance
10668       begins with "show_". All other values will be sent to the "rrdtool"
10669       write plugin via the default target of the chain. Since this chain is
10670       run after the value has been added to the cache, the MySQL "show_*"
10671       command statistics will be available via the "unixsock" plugin.
10672
10673   List of configuration options
10674       PreCacheChain ChainName
10675       PostCacheChain ChainName
10676           Configure the name of the "pre-cache chain" and the "post-cache
10677           chain". The argument is the name of a chain that should be executed
10678           before and/or after the values have been added to the cache.
10679
10680           To understand the implications, it's important you know what is
10681           going on inside collectd. The following diagram shows how values
10682           are passed from the read-plugins to the write-plugins:
10683
10684              +---------------+
10685              !  Read-Plugin  !
10686              +-------+-------+
10687                      !
10688            + - - - - V - - - - +
10689            : +---------------+ :
10690            : !   Pre-Cache   ! :
10691            : !     Chain     ! :
10692            : +-------+-------+ :
10693            :         !         :
10694            :         V         :
10695            : +-------+-------+ :  +---------------+
10696            : !     Cache     !--->!  Value Cache  !
10697            : !     insert    ! :  +---+---+-------+
10698            : +-------+-------+ :      !   !
10699            :         !   ,------------'   !
10700            :         V   V     :          V
10701            : +-------+---+---+ :  +-------+-------+
10702            : !  Post-Cache   +--->! Write-Plugins !
10703            : !     Chain     ! :  +---------------+
10704            : +---------------+ :
10705            :                   :
10706            :  dispatch values  :
10707            + - - - - - - - - - +
10708
10709           After the values are passed from the "read" plugins to the dispatch
10710           functions, the pre-cache chain is run first. The values are added
10711           to the internal cache afterwards. The post-cache chain is run after
10712           the values have been added to the cache. So why is it such a huge
10713           deal if chains are run before or after the values have been added
10714           to this cache?
10715
10716           Targets that change the identifier of a value list should be
10717           executed before the values are added to the cache, so that the name
10718           in the cache matches the name that is used in the "write" plugins.
10719           The "unixsock" plugin, too, uses this cache to receive a list of
10720           all available values. If you change the identifier after the value
10721           list has been added to the cache, this may easily lead to
10722           confusion, but it's not forbidden of course.
10723
10724           The cache is also used to convert counter values to rates. These
10725           rates are, for example, used by the "value" match (see below). If
10726           you use the rate stored in the cache before the new value is added,
10727           you will use the old, previous rate. Write plugins may use this
10728           rate, too, see the "csv" plugin, for example.  The "unixsock"
10729           plugin uses these rates too, to implement the "GETVAL" command.
10730
10731           Last but not last, the stop target makes a difference: If the pre-
10732           cache chain returns the stop condition, the value will not be added
10733           to the cache and the post-cache chain will not be run.
10734
10735       Chain Name
10736           Adds a new chain with a certain name. This name can be used to
10737           refer to a specific chain, for example to jump to it.
10738
10739           Within the Chain block, there can be Rule blocks and Target blocks.
10740
10741       Rule [Name]
10742           Adds a new rule to the current chain. The name of the rule is
10743           optional and currently has no meaning for the daemon.
10744
10745           Within the Rule block, there may be any number of Match blocks and
10746           there must be at least one Target block.
10747
10748       Match Name
10749           Adds a match to a Rule block. The name specifies what kind of match
10750           should be performed. Available matches depend on the plugins that
10751           have been loaded.
10752
10753           The arguments inside the Match block are passed to the plugin
10754           implementing the match, so which arguments are valid here depends
10755           on the plugin being used.  If you do not need any to pass any
10756           arguments to a match, you can use the shorter syntax:
10757
10758            Match "foobar"
10759
10760           Which is equivalent to:
10761
10762            <Match "foobar">
10763            </Match>
10764
10765       Target Name
10766           Add a target to a rule or a default target to a chain. The name
10767           specifies what kind of target is to be added. Which targets are
10768           available depends on the plugins being loaded.
10769
10770           The arguments inside the Target block are passed to the plugin
10771           implementing the target, so which arguments are valid here depends
10772           on the plugin being used.  If you do not need any to pass any
10773           arguments to a target, you can use the shorter syntax:
10774
10775            Target "stop"
10776
10777           This is the same as writing:
10778
10779            <Target "stop">
10780            </Target>
10781
10782   Built-in targets
10783       The following targets are built into the core daemon and therefore need
10784       no plugins to be loaded:
10785
10786       return
10787           Signals the "return" condition, see the "Flow control" section
10788           above. This causes the current chain to stop processing the value
10789           and returns control to the calling chain. The calling chain will
10790           continue processing targets and rules just after the jump target
10791           (see below). This is very similar to the RETURN target of iptables,
10792           see iptables(8).
10793
10794           This target does not have any options.
10795
10796           Example:
10797
10798            Target "return"
10799
10800       stop
10801           Signals the "stop" condition, see the "Flow control" section above.
10802           This causes processing of the value to be aborted immediately. This
10803           is similar to the DROP target of iptables, see iptables(8).
10804
10805           This target does not have any options.
10806
10807           Example:
10808
10809            Target "stop"
10810
10811       write
10812           Sends the value to "write" plugins.
10813
10814           Available options:
10815
10816           Plugin Name
10817               Name of the write plugin to which the data should be sent. This
10818               option may be given multiple times to send the data to more
10819               than one write plugin. If the plugin supports multiple
10820               instances, the plugin's instance(s) must also be specified.
10821
10822           If no plugin is explicitly specified, the values will be sent to
10823           all available write plugins.
10824
10825           Single-instance plugin example:
10826
10827            <Target "write">
10828              Plugin "rrdtool"
10829            </Target>
10830
10831           Multi-instance plugin example:
10832
10833            <Plugin "write_graphite">
10834              <Node "foo">
10835              ...
10836              </Node>
10837              <Node "bar">
10838              ...
10839              </Node>
10840            </Plugin>
10841             ...
10842            <Target "write">
10843              Plugin "write_graphite/foo"
10844            </Target>
10845
10846       jump
10847           Starts processing the rules of another chain, see "Flow control"
10848           above. If the end of that chain is reached, or a stop condition is
10849           encountered, processing will continue right after the jump target,
10850           i. e. with the next target or the next rule. This is similar to the
10851           -j command line option of iptables, see iptables(8).
10852
10853           Available options:
10854
10855           Chain Name
10856               Jumps to the chain Name. This argument is required and may
10857               appear only once.
10858
10859           Example:
10860
10861            <Target "jump">
10862              Chain "foobar"
10863            </Target>
10864
10865   Available matches
10866       regex
10867           Matches a value using regular expressions.
10868
10869           Available options:
10870
10871           Host Regex
10872           Plugin Regex
10873           PluginInstance Regex
10874           Type Regex
10875           TypeInstance Regex
10876           MetaData String Regex
10877               Match values where the given regular expressions match the
10878               various fields of the identifier of a value. If multiple
10879               regular expressions are given, all regexen must match for a
10880               value to match.
10881
10882           Invert false|true
10883               When set to true, the result of the match is inverted, i.e. all
10884               value lists where all regular expressions apply are not
10885               matched, all other value lists are matched. Defaults to false.
10886
10887           Example:
10888
10889            <Match "regex">
10890              Host "customer[0-9]+"
10891              Plugin "^foobar$"
10892            </Match>
10893
10894       timediff
10895           Matches values that have a time which differs from the time on the
10896           server.
10897
10898           This match is mainly intended for servers that receive values over
10899           the "network" plugin and write them to disk using the "rrdtool"
10900           plugin. RRDtool is very sensitive to the timestamp used when
10901           updating the RRD files. In particular, the time must be ever
10902           increasing. If a misbehaving client sends one packet with a
10903           timestamp far in the future, all further packets with a correct
10904           time will be ignored because of that one packet. What's worse, such
10905           corrupted RRD files are hard to fix.
10906
10907           This match lets one match all values outside a specified time range
10908           (relative to the server's time), so you can use the stop target
10909           (see below) to ignore the value, for example.
10910
10911           Available options:
10912
10913           Future Seconds
10914               Matches all values that are ahead of the server's time by
10915               Seconds or more seconds. Set to zero for no limit. Either
10916               Future or Past must be non-zero.
10917
10918           Past Seconds
10919               Matches all values that are behind of the server's time by
10920               Seconds or more seconds. Set to zero for no limit. Either
10921               Future or Past must be non-zero.
10922
10923           Example:
10924
10925            <Match "timediff">
10926              Future  300
10927              Past   3600
10928            </Match>
10929
10930           This example matches all values that are five minutes or more ahead
10931           of the server or one hour (or more) lagging behind.
10932
10933       value
10934           Matches the actual value of data sources against given minimum /
10935           maximum values. If a data-set consists of more than one data-
10936           source, all data-sources must match the specified ranges for a
10937           positive match.
10938
10939           Available options:
10940
10941           Min Value
10942               Sets the smallest value which still results in a match. If
10943               unset, behaves like negative infinity.
10944
10945           Max Value
10946               Sets the largest value which still results in a match. If
10947               unset, behaves like positive infinity.
10948
10949           Invert true|false
10950               Inverts the selection. If the Min and Max settings result in a
10951               match, no-match is returned and vice versa. Please note that
10952               the Invert setting only effects how Min and Max are applied to
10953               a specific value. Especially the DataSource and Satisfy
10954               settings (see below) are not inverted.
10955
10956           DataSource DSName [DSName ...]
10957               Select one or more of the data sources. If no data source is
10958               configured, all data sources will be checked. If the type
10959               handled by the match does not have a data source of the
10960               specified name(s), this will always result in no match
10961               (independent of the Invert setting).
10962
10963           Satisfy Any|All
10964               Specifies how checking with several data sources is performed.
10965               If set to Any, the match succeeds if one of the data sources is
10966               in the configured range. If set to All the match only succeeds
10967               if all data sources are within the configured range. Default is
10968               All.
10969
10970               Usually All is used for positive matches, Any is used for
10971               negative matches. This means that with All you usually check
10972               that all values are in a "good" range, while with Any you check
10973               if any value is within a "bad" range (or outside the "good"
10974               range).
10975
10976           Either Min or Max, but not both, may be unset.
10977
10978           Example:
10979
10980            # Match all values smaller than or equal to 100. Matches only if all data
10981            # sources are below 100.
10982            <Match "value">
10983              Max 100
10984              Satisfy "All"
10985            </Match>
10986
10987            # Match if the value of any data source is outside the range of 0 - 100.
10988            <Match "value">
10989              Min   0
10990              Max 100
10991              Invert true
10992              Satisfy "Any"
10993            </Match>
10994
10995       empty_counter
10996           Matches all values with one or more data sources of type COUNTER
10997           and where all counter values are zero. These counters usually never
10998           increased since they started existing (and are therefore
10999           uninteresting), or got reset recently or overflowed and you had
11000           really, really bad luck.
11001
11002           Please keep in mind that ignoring such counters can result in
11003           confusing behavior: Counters which hardly ever increase will be
11004           zero for long periods of time. If the counter is reset for some
11005           reason (machine or service restarted, usually), the graph will be
11006           empty (NAN) for a long time. People may not understand why.
11007
11008       hashed
11009           Calculates a hash value of the host name and matches values
11010           according to that hash value. This makes it possible to divide all
11011           hosts into groups and match only values that are in a specific
11012           group. The intended use is in load balancing, where you want to
11013           handle only part of all data and leave the rest for other servers.
11014
11015           The hashing function used tries to distribute the hosts evenly.
11016           First, it calculates a 32 bit hash value using the characters of
11017           the hostname:
11018
11019             hash_value = 0;
11020             for (i = 0; host[i] != 0; i++)
11021               hash_value = (hash_value * 251) + host[i];
11022
11023           The constant 251 is a prime number which is supposed to make this
11024           hash value more random. The code then checks the group for this
11025           host according to the Total and Match arguments:
11026
11027             if ((hash_value % Total) == Match)
11028               matches;
11029             else
11030               does not match;
11031
11032           Please note that when you set Total to two (i. e. you have only two
11033           groups), then the least significant bit of the hash value will be
11034           the XOR of all least significant bits in the host name. One
11035           consequence is that when you have two hosts, "server0.example.com"
11036           and "server1.example.com", where the host name differs in one digit
11037           only and the digits differ by one, those hosts will never end up in
11038           the same group.
11039
11040           Available options:
11041
11042           Match Match Total
11043               Divide the data into Total groups and match all hosts in group
11044               Match as described above. The groups are numbered from zero,
11045               i. e. Match must be smaller than Total. Total must be at least
11046               one, although only values greater than one really do make any
11047               sense.
11048
11049               You can repeat this option to match multiple groups, for
11050               example:
11051
11052                 Match 3 7
11053                 Match 5 7
11054
11055               The above config will divide the data into seven groups and
11056               match groups three and five. One use would be to keep every
11057               value on two hosts so that if one fails the missing data can
11058               later be reconstructed from the second host.
11059
11060           Example:
11061
11062            # Operate on the pre-cache chain, so that ignored values are not even in the
11063            # global cache.
11064            <Chain "PreCache">
11065              <Rule>
11066                <Match "hashed">
11067                  # Divide all received hosts in seven groups and accept all hosts in
11068                  # group three.
11069                  Match 3 7
11070                </Match>
11071                # If matched: Return and continue.
11072                Target "return"
11073              </Rule>
11074              # If not matched: Return and stop.
11075              Target "stop"
11076            </Chain>
11077
11078   Available targets
11079       notification
11080           Creates and dispatches a notification.
11081
11082           Available options:
11083
11084           Message String
11085               This required option sets the message of the notification. The
11086               following placeholders will be replaced by an appropriate
11087               value:
11088
11089               %{host}
11090               %{plugin}
11091               %{plugin_instance}
11092               %{type}
11093               %{type_instance}
11094                   These placeholders are replaced by the identifier field of
11095                   the same name.
11096
11097               %{ds:name}
11098                   These placeholders are replaced by a (hopefully) human
11099                   readable representation of the current rate of this data
11100                   source. If you changed the instance name (using the set or
11101                   replace targets, see below), it may not be possible to
11102                   convert counter values to rates.
11103
11104               Please note that these placeholders are case sensitive!
11105
11106           Severity "FAILURE"|"WARNING"|"OKAY"
11107               Sets the severity of the message. If omitted, the severity
11108               "WARNING" is used.
11109
11110           Example:
11111
11112             <Target "notification">
11113               Message "Oops, the %{type_instance} temperature is currently %{ds:value}!"
11114               Severity "WARNING"
11115             </Target>
11116
11117       replace
11118           Replaces parts of the identifier using regular expressions.
11119
11120           Available options:
11121
11122           Host Regex Replacement
11123           Plugin Regex Replacement
11124           PluginInstance Regex Replacement
11125           TypeInstance Regex Replacement
11126           MetaData String Regex Replacement
11127           DeleteMetaData String Regex
11128               Match the appropriate field with the given regular expression
11129               Regex. If the regular expression matches, that part that
11130               matches is replaced with Replacement. If multiple places of the
11131               input buffer match a given regular expression, only the first
11132               occurrence will be replaced.
11133
11134               You can specify each option multiple times to use multiple
11135               regular expressions one after another.
11136
11137           Example:
11138
11139            <Target "replace">
11140              # Replace "example.net" with "example.com"
11141              Host "\\<example.net\\>" "example.com"
11142
11143              # Strip "www." from hostnames
11144              Host "\\<www\\." ""
11145            </Target>
11146
11147       set Sets part of the identifier of a value to a given string.
11148
11149           Available options:
11150
11151           Host String
11152           Plugin String
11153           PluginInstance String
11154           TypeInstance String
11155           MetaData String String
11156               Set the appropriate field to the given string. The strings for
11157               plugin instance, type instance, and meta data may be empty, the
11158               strings for host and plugin may not be empty. It's currently
11159               not possible to set the type of a value this way.
11160
11161               The following placeholders will be replaced by an appropriate
11162               value:
11163
11164               %{host}
11165               %{plugin}
11166               %{plugin_instance}
11167               %{type}
11168               %{type_instance}
11169                   These placeholders are replaced by the identifier field of
11170                   the same name.
11171
11172               %{meta:name}
11173                   These placeholders are replaced by the meta data value with
11174                   the given name.
11175
11176               Please note that these placeholders are case sensitive!
11177
11178           DeleteMetaData String
11179               Delete the named meta data field.
11180
11181           Example:
11182
11183            <Target "set">
11184              PluginInstance "coretemp"
11185              TypeInstance "core3"
11186            </Target>
11187
11188   Backwards compatibility
11189       If you use collectd with an old configuration, i. e. one without a
11190       Chain block, it will behave as it used to. This is equivalent to the
11191       following configuration:
11192
11193        <Chain "PostCache">
11194          Target "write"
11195        </Chain>
11196
11197       If you specify a PostCacheChain, the write target will not be added
11198       anywhere and you will have to make sure that it is called where
11199       appropriate. We suggest to add the above snippet as default target to
11200       your "PostCache" chain.
11201
11202   Examples
11203       Ignore all values, where the hostname does not contain a dot, i. e.
11204       can't be an FQDN.
11205
11206        <Chain "PreCache">
11207          <Rule "no_fqdn">
11208            <Match "regex">
11209              Host "^[^\.]*$"
11210            </Match>
11211            Target "stop"
11212          </Rule>
11213          Target "write"
11214        </Chain>
11215

IGNORELISTS

11217       Ignorelists are a generic framework to either ignore some metrics or
11218       report specific metrics only. Plugins usually provide one or more
11219       options to specify the items (mounts points, devices, ...) and the
11220       boolean option "IgnoreSelected".
11221
11222       Select String
11223           Selects the item String. This option often has a plugin specific
11224           name, e.g.  Sensor in the "sensors" plugin. It is also plugin
11225           specific what this string is compared to. For example, the "df"
11226           plugin's MountPoint compares it to a mount point and the "sensors"
11227           plugin's Sensor compares it to a sensor name.
11228
11229           By default, this option is doing a case-sensitive full-string
11230           match. The following config will match "foo", but not "Foo":
11231
11232             Select "foo"
11233
11234           If String starts and ends with "/" (a slash), the string is
11235           compiled as a regular expression. For example, so match all item
11236           starting with "foo", use could use the following syntax:
11237
11238             Select "/^foo/"
11239
11240           The regular expression is not anchored, i.e. the following config
11241           will match "foobar", "barfoo" and "AfooZ":
11242
11243             Select "/foo/"
11244
11245           The Select option may be repeated to select multiple items.
11246
11247       IgnoreSelected true|false
11248           If set to true, matching metrics are ignored and all other metrics
11249           are collected. If set to false, matching metrics are collected and
11250           all other metrics are ignored.
11251

SEE ALSO

11253       collectd(1), collectd-exec(5), collectd-perl(5), collectd-unixsock(5),
11254       types.db(5), hddtemp(8), iptables(8), kstat(3KSTAT), mbmon(1), psql(1),
11255       regex(7), rrdtool(1), sensors(1)
11256

AUTHOR

11258       Florian Forster <octo@collectd.org>
11259
11260
11261
112625.12.0                            2020-09-03                  COLLECTD.CONF(5)
Impressum