Python-script every time you want to read a value with the C<exec plugin> (see
L<collectd-exec(5)>) and provides a lot more functionality, too.
+Currently only python2 is supported and at least version 2.3 is required.
+
=head1 CONFIGURATION
=over 4
interpreter will start anywa but you won't be able to load certain python
modules, e.g. "time".
-=item B<MudulePath> I<Name>
+=item B<Encoding> I<Name>
+
+The default encoding for unicode objects you pass to collectd. If you obmit
+this option it will default to B<ascii> on python2 and B<utf-8> on python3.
+This is hardcoded in python and will ignore everything else, including your
+locale.
+
+=item B<ModulePath> I<Name>
Appends I<Name> to B<sys.path>. You won't be able to import any scripts you
wrote unless they are located in one of the directuries in this list. Please
B<register_config> method - see below.
Python thread support has not been initialized at this point so do not use any
-threading functions at this point!
+threading functions here!
=item init functions
There are eight different register functions to get callback for eight
different events. With one exception all of them are called as shown above.
+=over 4
+
+=item
+
I<callback> is a callable object that will be called every time the event is
- triggered.
+triggered.
+
+=item
+
I<data> is an optional object that will be passed back to the callback function
- every time it is called. If you obmit this parameter no object is
- passed back to your callback, not even None.
+every time it is called. If you obmit this parameter no object is passed back
+to your callback, not even None.
+
+=item
+
I<name> is an optional identifier for this callback. The default name is
- B<python>.I<module>.I<name>'. I<module> and I<name> are taken from the
- B<__module__> and B<__name__> attributes of your callback function. If
- the parameter I<name> contains a B<.>' it replaces both I<module> and
- I<name>, otherwise it replaces only I<name>.
- Every callback needs a unique identifier, so if you want to register
- one function multiple time you need to specify a name here. Otherwise
- it's save to ignore this parameter
-I<identifier> is the full identifier assigned to this callback.
-
-These functions are called in the various stages of the daemon (see the
-section "WRITING YOUR OWN PLUGINS" above) and are passed the following
-arguments:
+B<python>.I<module>. I<module> is taken from the B<__module__> attribute of
+your callback function. Every callback needs a unique identifier, so if you
+want to register the same callback multiple time in the same module you need to
+specify a name here. Otherwise it's save to ignore this parameter I<identifier>
+is the full identifier assigned to this callback.
+
+=back
+
+These functions are called in the various stages of the daemon (see the section
+L<"WRITING YOUR OWN PLUGINS"> above) and are passed the following arguments:
=over 4
data type.
Note that you can not receive the whole config files this way, only B<Module>
blocks inside the Python configuration block. Additionally you will only
-receive blocks where your callback identifier matches B<python.>I<blockname>. In
-order for this to work the way the identifier is constructed is shortened to
-not have a I<name> part.
+receive blocks where your callback identifier matches B<python.>I<blockname>.
=item register_init
=item register_flush
-Like B<register_config> the identifier is shortened because it determines what
-flush requests the plugin will receive.
+Like B<register_config> is important for this callbavk because it determines
+what flush requests the plugin will receive.
The arguments passed are I<timeout> and I<identifier>. I<timeout> indicates
that only data older than I<timeout> seconds is to be flushed. I<identifier>
collectd.register_read(read);
collectd.register_write(write);
-See the section "CLASSES" above for a complete documentation of the data
+See the section L<"CLASSES"> above for a complete documentation of the data
types used by the read, write and match functions.
=head1 NOTES