X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=contrib%2Fexamples%2FMyPlugin.pm;h=1a0247ff8e068cb7c1fd0d5b30169413f9977635;hb=9ebb82bf36ac779a8af81f2e9a513226387a5679;hp=1b98d5b84143f64820d9132663874a87672bbe57;hpb=09c6d16ffba1b1b15e50579bbcf663f05f630932;p=collectd.git diff --git a/contrib/examples/MyPlugin.pm b/contrib/examples/MyPlugin.pm index 1b98d5b8..1a0247ff 100644 --- a/contrib/examples/MyPlugin.pm +++ b/contrib/examples/MyPlugin.pm @@ -17,25 +17,29 @@ package Collectd::Plugin::MyPlugin; use strict; use warnings; +use Collectd qw( :all ); + # data set definition: # see section "DATA TYPES" in collectd-perl(5) for details +# (take a look at the types.db file for a large list of predefined data-sets) my $dataset = [ { name => 'my_ds', - type => Collectd::DS_TYPE_GAUGE, + type => DS_TYPE_GAUGE, min => 0, max => 65535, }, ]; # This code is executed after loading the plugin to register it with collectd. -Collectd::plugin_register (Collectd::TYPE_LOG, 'myplugin', \&my_log); -Collectd::plugin_register (Collectd::TYPE_DATASET, 'myplugin', $dataset); -Collectd::plugin_register (Collectd::TYPE_INIT, 'myplugin', \&my_init); -Collectd::plugin_register (Collectd::TYPE_READ, 'myplugin', \&my_read); -Collectd::plugin_register (Collectd::TYPE_WRITE, 'myplugin', \&my_write); -Collectd::plugin_register (Collectd::TYPE_SHUTDOWN, 'myplugin', \&my_shutdown); +plugin_register (TYPE_LOG, 'myplugin', 'my_log'); +plugin_register (TYPE_NOTIF, 'myplugin', 'my_notify'); +plugin_register (TYPE_DATASET, 'myplugin', $dataset); +plugin_register (TYPE_INIT, 'myplugin', 'my_init'); +plugin_register (TYPE_READ, 'myplugin', 'my_read'); +plugin_register (TYPE_WRITE, 'myplugin', 'my_write'); +plugin_register (TYPE_SHUTDOWN, 'myplugin', 'my_shutdown'); # For each of the functions below see collectd-perl(5) for details about # arguments and the like. @@ -67,7 +71,7 @@ sub my_read # dispatch the values to collectd which passes them on to all registered # write functions - the first argument is used to lookup the data set # definition - Collectd::plugin_dispatch_values ('myplugin', $vl); + plugin_dispatch_values ('myplugin', $vl); # A false return value indicates an error and the plugin will be skipped # for an increasing amount of time. @@ -82,8 +86,7 @@ sub my_write my $vl = shift; if (scalar (@$ds) != scalar (@{$vl->{'values'}})) { - Collectd::plugin_log (Collectd::LOG_WARNING, - "DS number does not match values length"); + plugin_log (LOG_WARNING, "DS number does not match values length"); return; } @@ -123,3 +126,38 @@ sub my_log return 1; } # my_log () +# This function is called when plugin_dispatch_notification () has been used +sub my_notify +{ + my $notif = shift; + + my ($sec, $min, $hour, $mday, $mon, $year) = localtime ($notif->{'time'}); + + printf "NOTIF (%04d-%02d-%02d %02d:%02d:%02d): %d - ", + $year + 1900, $mon + 1, $mday, $hour, $min, $sec, + $notif->{'severity'}; + + if (defined $notif->{'host'}) { + print "$notif->{'host'}: "; + } + + if (defined $notif->{'plugin'}) { + print "$notif->{'plugin'}: "; + } + + if (defined $notif->{'plugin_instance'}) { + print "$notif->{'plugin_instance'}: "; + } + + if (defined $notif->{'type'}) { + print "$notif->{'type'}: "; + } + + if (defined $notif->{'type_instance'}) { + print "$notif->{'type_instance'}: "; + } + + print "$notif->{'message'}\n"; + return 1; +} # my_notify () +