diff options
author | Ton Voon <tonvoon@macbook.local> | 2009-01-05 22:24:44 +0000 |
---|---|---|
committer | Ton Voon <tonvoon@macbook.local> | 2009-01-05 22:24:44 +0000 |
commit | 67a45638154221708da7f92451143475bdc229ac (patch) | |
tree | 65917e7a12893ca1df3ea446864169d6c6076747 /lib/Nagios/Plugin/Performance.pm | |
parent | 91047f17af0454e94fbd30615f4a6959a593f48e (diff) | |
download | monitoring-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.pm | 12 |
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; |