From 1e2387474a449452b78520b9ad96a8b4b5e99722 Mon Sep 17 00:00:00 2001 From: Harald Pfeiffer Date: Wed, 17 Apr 2019 19:07:19 +0200 Subject: initial commit of source fetch --- .../contrib/CheckMySQLHealthExt1.pm | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 nagios-plugins-contrib-24.20190301~bpo9+1/check_mysql_health/check_mysql_health-2.2.2/contrib/CheckMySQLHealthExt1.pm (limited to 'nagios-plugins-contrib-24.20190301~bpo9+1/check_mysql_health/check_mysql_health-2.2.2/contrib/CheckMySQLHealthExt1.pm') diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_mysql_health/check_mysql_health-2.2.2/contrib/CheckMySQLHealthExt1.pm b/nagios-plugins-contrib-24.20190301~bpo9+1/check_mysql_health/check_mysql_health-2.2.2/contrib/CheckMySQLHealthExt1.pm new file mode 100755 index 0000000..c5bb9d3 --- /dev/null +++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_mysql_health/check_mysql_health-2.2.2/contrib/CheckMySQLHealthExt1.pm @@ -0,0 +1,68 @@ +package MyQueue; + +our @ISA = qw(DBD::MySQL::Server); + +sub init { + my $self = shift; + my %params = @_; + $self->{running} = 0; + $self->{waiting} = 0; + $self->{held} = 20; + $self->{cancelled} = 0; + $self->{length} = 100; + if ($params{mode} =~ /my::queue::status/) { + ($self->{running}, $self->{waiting}, $self->{held}, $self->{cancelled}) = + $self->{handle}->fetchrow_array(q{ + SELECT COUNT(*) FROM queues WHERE + status IN ('running', 'waiting', 'held', 'cancelled') + GROUP BY status + }); + } elsif ($params{mode} =~ /my::queue::length/) { + $self->{length} = $self->{handle}->fetchrow_array(q{ + SELECT COUNT(*) FROM queues + }); + } elsif ($params{mode} =~ /my::queue::througput/) { + $self->{processed_items} = $self->{handle}->fetchrow_array(q{ + SELECT processed FROM queue_status + }); + $self->valdiff(\%params, qw(processed_items)); + # this automatically creates + # $self->{delta_timestamp} + # the time in seconds since the last run of check_mysql_health + # $self->{delta_processed_items} + # the difference between processed_items now and + # processed_items when check_mysql_health was run last time + $self->{throughput} = $self->{delta_processed_items} / $self->{delta_timestamp}; + } else { + } +} + +sub nagios { + my $self = shift; + my %params = @_; + if ($params{mode} =~ /my::queue::status/) { + if ($self->{held} > 10 || $self->{cancelled} > 10) { + $self->add_nagios_critical("more than 10 queues are held or cancelled"); + } elsif ($self->{waiting} > 20 && $self->{running} < 3) { + $self->add_nagios_warning("more than 20 queues are waiting and less than 3 queues are running"); + } else { + $self->add_nagios_ok("queues are running normal"); + } + $self->add_perfdata(sprintf "held=%d cancelled=%d waiting=%d running=%d", + $self->{running}, $self->{waiting}, $self->{held}, $self->{cancelled}); + } elsif ($params{mode} =~ /my::queue::length/) { + $self->add_nagios( + $self->check_thresholds($self->{length}, 100, 500), + sprintf "queue length is %d", $self->{length}); + $self->add_perfdata(sprintf "queuelen=%d;%d;%d", + $self->{length}, $self->{warningrange}, $self->{criticalrange}); + } elsif ($params{mode} =~ /my::queue::througput/) { + $self->add_nagios( + $self->check_thresholds($self->{throughput}, "50:", "10:"), + sprintf "queue throughput is %d", $self->{throughput}); + $self->add_perfdata(sprintf "throughput=%.2f;%d;%d", + $self->{throughput}, $self->{warningrange}, $self->{criticalrange}); + } else { + $self->add_nagios_unknown("unknown mode"); + } +} -- cgit v1.2.3