summaryrefslogtreecommitdiffstats
path: root/lib/Nagios/Plugin/Performance.pm
diff options
context:
space:
mode:
authorTon Voon <tonvoon@macbook.local>2009-01-05 22:24:44 +0000
committerTon Voon <tonvoon@macbook.local>2009-01-05 22:24:44 +0000
commit67a45638154221708da7f92451143475bdc229ac (patch)
tree65917e7a12893ca1df3ea446864169d6c6076747 /lib/Nagios/Plugin/Performance.pm
parent91047f17af0454e94fbd30615f4a6959a593f48e (diff)
downloadmonitoring-plugin-perl-67a45638154221708da7f92451143475bdc229ac.tar.gz
Check for valid numerical value before returning perfdata object
Diffstat (limited to 'lib/Nagios/Plugin/Performance.pm')
-rw-r--r--lib/Nagios/Plugin/Performance.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/Nagios/Plugin/Performance.pm b/lib/Nagios/Plugin/Performance.pm
index df591fb..c35653e 100644
--- a/lib/Nagios/Plugin/Performance.pm
+++ b/lib/Nagios/Plugin/Performance.pm
@@ -35,8 +35,18 @@ sub _parse {
35 my @info = ($1, $2, $3, $4, $5, $6, $7); 35 my @info = ($1, $2, $3, $4, $5, $6, $7);
36 # We convert any commas to periods, in the value fields 36 # We convert any commas to periods, in the value fields
37 map { defined $info[$_] && $info[$_] =~ s/,/./go } (1, 3, 4, 5, 6); 37 map { defined $info[$_] && $info[$_] =~ s/,/./go } (1, 3, 4, 5, 6);
38
39 # Check that $info[1] is an actual value
40 # We do this by returning undef if a warning appears
41 my $performance_value;
42 {
43 my $not_value;
44 local $SIG{__WARN__} = sub { $not_value++ };
45 $performance_value = $info[1]+0;
46 return undef if $not_value;
47 }
38 my $p = $class->new( 48 my $p = $class->new(
39 label => $info[0], value => $info[1]+0, uom => $info[2], warning => $info[3], critical => $info[4], 49 label => $info[0], value => $performance_value, uom => $info[2], warning => $info[3], critical => $info[4],
40 min => $info[5], max => $info[6] 50 min => $info[5], max => $info[6]
41 ); 51 );
42 return $p; 52 return $p;