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