summaryrefslogtreecommitdiffstats
path: root/web/attachments/421612-check_mysql_performance.patch
diff options
context:
space:
mode:
Diffstat (limited to 'web/attachments/421612-check_mysql_performance.patch')
-rw-r--r--web/attachments/421612-check_mysql_performance.patch111
1 files changed, 111 insertions, 0 deletions
diff --git a/web/attachments/421612-check_mysql_performance.patch b/web/attachments/421612-check_mysql_performance.patch
new file mode 100644
index 0000000..79945e5
--- /dev/null
+++ b/web/attachments/421612-check_mysql_performance.patch
@@ -0,0 +1,111 @@
1diff --git a/libexec/check_mysql_performance b/libexec/check_mysql_performance
2index 9a7e0a5..0e59d35 100755
3--- a/libexec/check_mysql_performance
4+++ b/libexec/check_mysql_performance
5@@ -11,9 +11,9 @@ use Nagios::Plugin;
6
7 my $np = Nagios::Plugin->new(
8 'usage' => <<EOH,
9-Usage: %s [-H host] [-d DSN] -u -p --group
10+Usage: %s [-H host] [-d DSN] [--perfdata ] [[-u] [-p]|--extra-opts=[section][\@file]] --group
11 EOH
12- 'version' => '1.00',
13+ 'version' => '1.10',
14 'url' => 'http://www.capside.com',
15 'extra' => <<EOH,
16
17@@ -21,16 +21,15 @@ Threshold formats are specified at:
18 http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT
19
20 'blurb' => qq{Copyright (c) CAPSiDE.
21-
22-This plugin montitors the % use of CPU usage on Linux systems for various types of CPU usage.
23 EOH
24 );
25
26 $np->add_arg(
27 spec => 'perfdata=s',
28 help => <<EOH,
29---perfdata performance data to output
30- Host to query
31+--perfdata performance data to check and output
32+ e.g. metric[=warn_range;][critcal_range],metric,...
33+ note semicolons will need escaping when entered in the UI
34 EOH
35 required => 0,
36 );
37@@ -108,7 +107,8 @@ $SIG{'ALRM'} = sub {
38 $np->nagios_exit( CRITICAL, 'ERROR: Timed out.' );
39 };
40
41-my ( $code, $message ) = ( OK, 'All parameters OK' );
42+my ( $code, $message ) = ( undef, undef );
43+$np->add_message( OK, "All parameters OK" );
44
45 my @fields;
46 if ( not $np->opts->perfdata ) {
47@@ -116,30 +116,50 @@ if ( not $np->opts->perfdata ) {
48 }
49 else {
50 @fields = split( /,/, $np->opts->perfdata );
51-
52- # @fields = split /,/, join ',', @{$np->opts->perfdata};
53 }
54
55 # Add all performance data
56+my $thresholds;
57+my $value;
58+my $warning;
59+my $critical;
60+my $minimum;
61+my $maximum;
62 foreach my $key (@fields) {
63+ if ( $key =~ /=/ ) {
64+ ($key, $thresholds) = split( /=/, $key );
65+ ($warning, $critical) = split ( /;/, $thresholds );
66+ } else {
67+ $thresholds = undef;
68+ $warning = undef;
69+ $critical = undef;
70+ }
71 if ( $mysql->{'stats'}->{$key}->{'type'} eq 'ABS' ) {
72 next if ( not defined $read_data->{$key} );
73- $np->add_perfdata(
74- 'label' => $key,
75- 'value' => $read_data->{$key},
76- 'uom' => '',
77- );
78- }
79- elsif ( $mysql->{'stats'}->{$key}->{'type'} eq 'DERIVE' ) {
80+ $value = $read_data->{$key};
81+ } elsif ( $mysql->{'stats'}->{$key}->{'type'} eq 'DERIVE' ) {
82 next if ( not defined $stat->{$key} );
83- $np->add_perfdata(
84- 'label' => $key,
85- 'value' => $stat->{$key},
86- 'uom' => '',
87+ $value = $stat->{$key};
88+ }
89+ $np->add_perfdata(
90+ 'label' => $key,
91+ 'value' => $value,
92+ 'uom' => '',
93+ 'warning' => $warning,
94+ 'critical' => $critical,
95+ );
96+ if ( $thresholds ) {
97+ $code = $np->check_threshold(
98+ 'check' => $value,
99+ 'warning' => $warning,
100+ 'critical' => $critical,
101 );
102+ if ( $code ) {
103+ $np->add_message($code, "$key beyond thresholds,");
104+ }
105 }
106 }
107-
108+($code, $message) = $np->check_messages();
109 $np->nagios_exit( $code, $message );
110
111 package MySQL::Stats;