X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcollectd-exec.pod;h=81b3a2ecc07ecb11302b7ede4d2e26f87e72f0d8;hb=be99a844a40d7037a910d37a894988b807631a6e;hp=4102136b16922a90be628f6e4d4e0df07847433a;hpb=abf236a5ede80324ef7dc609d033ff919a0afdcc;p=collectd.git diff --git a/src/collectd-exec.pod b/src/collectd-exec.pod index 4102136b..81b3a2ec 100644 --- a/src/collectd-exec.pod +++ b/src/collectd-exec.pod @@ -9,35 +9,69 @@ collectd-exec - Documentation of collectd's C # ... Exec "myuser:mygroup" "myprog" - Exec "otheruser" "/path/to/another/binary" + Exec "otheruser" "/path/to/another/binary" "arg0" "arg1" + NotificationExec "user" "/usr/lib/collectd/exec/handle_notification" =head1 DESCRIPTION -The C forks of an executable and reads back values that it writes -to C. 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. +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 DATA FORMAT +=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. + +=back + +=head1 EXEC DATA FORMAT The forked executable is expected to print values to C. The expected format is as follows: =over 4 -=item +=item Comments Each line beginning with a C<#> (hash mark) is ignored. -=item +=item B I [I] I -Other lines must consist of an I, an optional I and a -I, separated by a spaces. A description of these two parts follows: +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 @@ -46,14 +80,16 @@ 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. +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 +The I is an optional list of I, where each option is a key-value-pair. A list of currently understood options can be found below, all -other options will be ignored. +other options will be ignored. Values that contain spaces must be quoted with +double quotes. 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 +an integer if the data-source is a counter, or a double if the data-source is 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). @@ -83,25 +119,159 @@ 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