=head1 NAME collectd-exec - Documentation of collectd's C =head1 SYNOPSIS # See collectd.conf(5) LoadPlugin exec # ... Exec "myuser:mygroup" "myprog" Exec "otheruser" "/path/to/another/binary" "arg0" "arg1" NotificationExec "user" "/usr/lib/collectd/exec/handle_notification" =head1 DESCRIPTION The C forks of an executable either to receive values or to dispatch notifications to the outside world. The syntax of the configuration is explained in L but summarized in the above synopsis. If you want/need better performance or more functionality you should take a long look at the C, L. =head1 EXECUTABLE TYPES There are currently two types of executables that can be executed by the C: =over 4 =item C These programs are forked and values that it writes to C are read back. The executable is forked in a fashion similar to L: It is forked once and not again until it exits. If it exited, it will be forked again after at most I seconds. It is perfectly legal for the executable to run for a long time and continuously write values to C. See L below for a description of the output format expected from these programs. B If the executable only writes one value and then exits I will be executed every I seconds. If I is short (the default is 10 seconds) this may result in serious system load. =item C The program is forked once for each notification that is handled by the daemon. The notification is passed to the program on C in a fashion similar to HTTP-headers. In contrast to programs specified with C the execution of this program is not serialized, so that several instances of this program may run at once if multiple notifications are received. See L below for a description of the data passed to these programs. =begin comment =item C The executable is treated as a Nagios plugin. That means that the first line printed to C by this program is used as the text of a notification and the severity of the notification depends on the exit status of the executable only. For information on how to write Nagios plugins please refer to the Nagios documentation. If a plugin works with Nagios but not with collectd please complain on the collectd mailing list instead. =end comment =back =head1 EXEC DATA FORMAT The forked executable is expected to print values to C. The expected format is as follows: =over 4 =item Comments Each line beginning with a C<#> (hash mark) is ignored. =item B I [I] I Submits one or more values (identified by I, see below) to the daemon which will dispatch it to all it's write-plugins. An I is of the form CBIB<->IBIB<->I> with both I-parts being optional. If they're omitted the hyphen must be omitted, too. I and each I-part may be chosen freely as long as the tuple (plugin, plugin instance, type instance) uniquely identifies the plugin within collectd. I identifies the type and number of values (i.Ee. data-set) passed to collectd. A large list of predefined data-sets is available in the B file. See L for a description of the format of this file. The I is an optional list of I, where each option if a key-value-pair. A list of currently understood options can be found below, all other options will be ignored. I is a colon-separated list of the time and the values, each either an integer if the data-source is a counter, of a double if the data-source if of type "gauge". You can submit an undefined gauge-value by using B. When submitting B to a counter the behavior is undefined. The time is given as epoch (i.Ee. standard UNIX time). You can mix options and values, but the order is important: Options only effect following values, so specifying an option as last field is allowed, but useless. Also, an option applies to B following values, so you don't need to re-set an option over and over again. The currently defined B are: =over 4 =item BI Gives the interval in which the data identified by I is being collected. =back Please note that this is the same format as used in the B, see L. There's also a bit more information on identifiers in case you're confused. Since examples usually let one understand a lot better, here are some: leeloo/cpu-0/cpu-idle N:2299366 alice/interface/if_octets-eth0 interval=10 1180647081:421465:479194 Since this action was the only one supported with older versions of the C all lines were treated as if they were prefixed with B. This is still the case to maintain backwards compatibility but deprecated. =item B [I] BI Submits a notification to the daemon which will then dispatch it to all plugins which have registered for receiving notifications. The B if followed by a list of options which further describe the notification. The B option is special in that it will consume the rest of the line as its value. The B, B, and B