X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcollectd-exec.pod;h=2c5963025a4269687307cf9e5c1f3d43cae70e47;hb=259470e31a45e46b8cfcd65b9088d45598aaea7f;hp=cb6069ccfe6c7919cd0b2abe94c52ac69b4043a5;hpb=5afa2f82d43e2a7952d8f347f6f40b5778c59db8;p=collectd.git diff --git a/src/collectd-exec.pod b/src/collectd-exec.pod index cb6069cc..2c596302 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 @@ -8,62 +10,274 @@ collectd-exec - Documentation of collectd's C LoadPlugin exec # ... - Exec myuser myprog - Exec otheruser /path/to/another/binary + 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 and reads back values that it writes -to C. The executable is forked in a fassion 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 + +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 is a +key-value-pair. A list of currently understood options can be found below, all +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, 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). + +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: -Any other line must be of the form C,I,I>, where -I is either B or B, I may not contain -C<,> (comma), C (slash) and C<\0> (null byte) and I is either an -integer (if I is B) or a floating-point number (if I is -B). +=over 4 + +=item BI + +Gives the interval in which the data identified by I is being +collected. =back -The values are always considered to be "fresh", i.Ee. the time is set to -"now". +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: + + 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