X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcollectd-exec.pod;h=10f9f618a2ef976f07222cf69e8edfc8d55727a6;hb=5b1d67d04e490d48dd72dbb9f84d1a74bfb9dcc1;hp=7ef5428fbaf60f31965a187d02ab76271d5da30a;hpb=d65dbf9b6ed81d3310c3dfd6c4e38557d1cd61ab;p=collectd.git diff --git a/src/collectd-exec.pod b/src/collectd-exec.pod index 7ef5428f..10f9f618 100644 --- a/src/collectd-exec.pod +++ b/src/collectd-exec.pod @@ -1,3 +1,5 @@ +=encoding UTF-8 + =head1 NAME collectd-exec - Documentation of collectd's C @@ -9,35 +11,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 @@ -49,12 +85,13 @@ plugin within collectd. I identifies the type and number of values 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). @@ -81,28 +118,181 @@ 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 + PUTVAL leeloo/cpu-0/cpu-idle N:2299366 + PUTVAL alice/interface/if_octets-eth0 interval=10 1180647081:421465:479194 + +=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