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