From: Florian Forster Date: Tue, 10 Apr 2007 12:46:29 +0000 (+0200) Subject: collectd(1): Added documentation for the `perl' plugin. X-Git-Tag: collectd-4.0.0~90 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=b72fe13f4febe80e0ed25cbe46fd863eb6951e9b;p=collectd.git collectd(1): Added documentation for the `perl' plugin. --- diff --git a/src/collectd.pod b/src/collectd.pod index bc65f57d..08524901 100644 --- a/src/collectd.pod +++ b/src/collectd.pod @@ -266,6 +266,132 @@ C are put in F and values of C are put in F. Please refer to the B, I<5.2.4. Server Status Variables> for an explanation of these values. +=head2 perl + +The C includes a Perl-interpreter in collectd and provides +Perl-equvalents of the plugin-functions. This makes it possible to write +plugins in Perl. + +There are two more comlex types you need to know about: + +=over 4 + +=item Data-Set + +A data-set is a list of one or more data-sources. Each data-source defines a +name, type, min- and max-value and the data-set wraps them up into one +structure. The general layout looks like this: + + [{ + name => 'data_source_name', + type => DS_TYPE_COUNTER || DS_TYPE_GAUGE + min => value || undef, + max => value || undef + }, ...] + +=item Value-List + +A value-list is one structure which features an array of values and fields to +identify the values, i. e. time and host, plugin name and plugin-instance as +well as a type and type-instance. Since the "type" is not included in the +value-list but is passed as an extra argument, the general layout looks like +this: + + { + values => [123, 0.5], + time => time (), + host => 'localhost', + plugin => 'myplugin', + plugin_instance => '', + type_instance => '' + } + +=back + +The following functions provide the C-interface to Perl-modules: + +=over 4 + +=item B (I, I, I) + +Registers a callback-function or data-set. + +I can be one of: + +=over 4 + +=item TYPE_INIT + +=item TYPE_READ + +=item TYPE_WRITE + +=item TYPE_LOG + +=item TYPE_SHUTDOWN + +=item TYPE_DATASET + +=back + +I is the name of the callback-function or the type of the data-set, +depending on the value of I. (Please note that the type of the data-set +is the value passed as I here and has nothing to do with the I +argument which simply tells B what is being registered.) + +The last argument, I, is either a function- or an array-reference. If +I is B, then the I argument must be an +array-reference which points to an array of hashes. Each hash describes one +data-source. For the exact layout see B above. + +If the I argument is any of the other types (B, B, +...) when I is expected to be a funtion reference. These functions are +called in the various stages of the daemon and are passed the following +arguments: + +=over 4 + +=item TYPE_INIT + +=item TYPE_READ + +=item TYPE_SHUTDOWN + +No arguments are passed + +=item TYPE_WRITE + +The arguments passed are I, I, and I. I is a +string. For the layout of I and I see above. + +=item TYPE_LOG + +The arguments are I and I. The log level is small for +important messages and high for less important messages. The least important +level is B, the most important level is B. In between there +are (from least to most important): B, B, and +B. I is simply a string B a newline at the end. + +=back + +=item B (I, I) + +Removes a callback or data-set from collectd's internal list of +functionsE/ datasets. + +=item B (I, I) + +Submits a I of type I to the daemon. If the data-set I +is found (and the number of values matches the number of data-sources) then the +type, data-set and value-list is passed to all write-callbacks that are +registered with the daemon. + +=item B (I, I) + +TODO. + +=back + =head2 sensors The B module uses lm_sensors to retrieve sensor-values. This means