Monitoring-GLPlugin
view release on metacpan or search on metacpan
lib/Monitoring/GLPlugin.pm view on Meta::CPAN
=cut
use strict;
use IO::File;
use File::Basename;
use Digest::MD5 qw(md5_hex);
use Errno;
use Data::Dumper;
$Data::Dumper::Indent = 1;
eval {
# avoid "used only once" because older Data::Dumper don't have this
# use OMD please because OMD has everything!
no warnings 'all';
$Data::Dumper::Sparseseen = 1;
};
our $AUTOLOAD;
*VERSION = \'3.0.2.6';
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
{
our $mode = undef;
our $plugin = undef;
our $pluginname = basename($ENV{'NAGIOS_PLUGIN'} || $0);
our $blacklist = undef;
our $info = [];
our $extendedinfo = [];
our $summary = [];
our $variables = {};
our $survive_sudo_env = ["LD_LIBRARY_PATH", "SHLIB_PATH"];
}
sub new {
my ($class, %params) = @_;
my $self = {};
bless $self, $class;
require Monitoring::GLPlugin::Commandline
if ! grep /BEGIN/, keys %Monitoring::GLPlugin::Commandline::;
require Monitoring::GLPlugin::Item
if ! grep /BEGIN/, keys %Monitoring::GLPlugin::Item::;
require Monitoring::GLPlugin::TableItem
if ! grep /BEGIN/, keys %Monitoring::GLPlugin::TableItem::;
$Monitoring::GLPlugin::plugin = Monitoring::GLPlugin::Commandline->new(%params);
return $self;
}
sub rebless {
my ($self, $class) = @_;
bless $self, $class;
$self->debug('using '.$class);
# gilt nur fuer "echte" Fabrikate mit "Classes::" vorndran
$self->{classified_as} = ref($self) if $class !~ /^Monitoring::GLPlugin/;
}
sub init {
my ($self) = @_;
if ($self->opts->can("blacklist") && $self->opts->blacklist &&
-f $self->opts->blacklist) {
$self->opts->blacklist = do {
local (@ARGV, $/) = $self->opts->blacklist; <> };
}
}
sub dumper {
my ($self, $object) = @_;
my $run = $object->{runtime};
delete $object->{runtime};
printf STDERR "%s\n", Data::Dumper::Dumper($object);
$object->{runtime} = $run;
}
sub no_such_mode {
my ($self) = @_;
printf "Mode %s is not implemented for this type of device\n",
$self->opts->mode;
exit 3;
}
#########################################################
# framework-related. setup, options
#
sub add_default_args {
my ($self) = @_;
$self->add_arg(
spec => 'mode=s',
help => "--mode
A keyword which tells the plugin what to do",
required => 1,
);
$self->add_arg(
spec => 'regexp',
help => "--regexp
Parameter name/name2/name3 will be interpreted as (perl) regular expression",
required => 0,);
$self->add_arg(
spec => 'warning=s',
help => "--warning
The warning threshold",
required => 0,);
$self->add_arg(
spec => 'critical=s',
help => "--critical
The critical threshold",
required => 0,);
$self->add_arg(
spec => 'warningx=s%',
help => '--warningx
The extended warning thresholds
e.g. --warningx db_msdb_free_pct=6: to override the threshold for a
specific item ',
required => 0,
);
$self->add_arg(
spec => 'criticalx=s%',
help => '--criticalx
The extended critical thresholds',
required => 0,
);
$self->add_arg(
spec => 'units=s',
( run in 0.491 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )