Fix #1735
This commit is contained in:
parent
e2e33838c4
commit
207a2ab796
|
@ -1151,6 +1151,31 @@ sub apply_pfdata_average {
|
||||||
if ($num > 0);
|
if ($num > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub apply_perfdata_thresholds {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
foreach (('warning', 'critical')) {
|
||||||
|
next if (!defined($options{$_}));
|
||||||
|
|
||||||
|
my @thresholds = split(':', $options{$_}, -1);
|
||||||
|
for (my $i = 0; $i < scalar(@thresholds); $i++) {
|
||||||
|
if ($thresholds[$i] =~ /(\d+(?:\.\d+)?)\s*%/) {
|
||||||
|
if (!defined($options{max}) || $options{max} eq '') {
|
||||||
|
$thresholds[$i] = '';
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
$thresholds[$i] = $1 * $options{max} / 100;
|
||||||
|
} elsif ($thresholds[$i] =~ /(\d+(?:\.\d+)?)/) {
|
||||||
|
$thresholds[$i] = $1;
|
||||||
|
} else {
|
||||||
|
$thresholds[$i] = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
${$options{perf}}->{$_} = join(':', @thresholds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub load_perfdata_extend_args {
|
sub load_perfdata_extend_args {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
@ -1169,8 +1194,8 @@ sub load_perfdata_extend_args {
|
||||||
sub parse_perfdata_extend_args {
|
sub parse_perfdata_extend_args {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
# --extend-perfdata=searchlabel,newlabel,method[,[newuom],[min],[max]]
|
# --extend-perfdata=searchlabel,newlabel,method[,[newuom],[min],[max],[warning],[critical]]
|
||||||
my ($pfdata_match, $pfdata_substitute, $method, $uom_sub, $min_sub, $max_sub) =
|
my ($pfdata_match, $pfdata_substitute, $method, $uom_sub, $min_sub, $max_sub, $warn_sub, $crit_sub) =
|
||||||
split /,/, $options{arg};
|
split /,/, $options{arg};
|
||||||
return if ((!defined($pfdata_match) || $pfdata_match eq '') && $options{type} != 3);
|
return if ((!defined($pfdata_match) || $pfdata_match eq '') && $options{type} != 3);
|
||||||
|
|
||||||
|
@ -1181,6 +1206,8 @@ sub parse_perfdata_extend_args {
|
||||||
uom_sub => defined($uom_sub) && $uom_sub ne '' ? $uom_sub : undef,
|
uom_sub => defined($uom_sub) && $uom_sub ne '' ? $uom_sub : undef,
|
||||||
min_sub => defined($min_sub) && $min_sub ne '' ? $min_sub : undef,
|
min_sub => defined($min_sub) && $min_sub ne '' ? $min_sub : undef,
|
||||||
max_sub => defined($max_sub) && $max_sub ne '' ? $max_sub : undef,
|
max_sub => defined($max_sub) && $max_sub ne '' ? $max_sub : undef,
|
||||||
|
warn_sub => defined($warn_sub) && $warn_sub ne '' ? $warn_sub : undef,
|
||||||
|
crit_sub => defined($crit_sub) && $crit_sub ne '' ? $crit_sub : undef,
|
||||||
type => $options{type}
|
type => $options{type}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1245,6 +1272,12 @@ sub apply_perfdata_extend {
|
||||||
$func->($self, perf => \$new_perf, args => $extend->{method_args});
|
$func->($self, perf => \$new_perf, args => $extend->{method_args});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$self->apply_perfdata_thresholds(
|
||||||
|
perf => \$new_perf,
|
||||||
|
warning => $extend->{warn_sub},
|
||||||
|
critical => $extend->{crit_sub},
|
||||||
|
max => $new_perf->{max}
|
||||||
|
);
|
||||||
if (length($new_perf->{value})) {
|
if (length($new_perf->{value})) {
|
||||||
push @{$self->{perfdatas}}, $new_perf;
|
push @{$self->{perfdatas}}, $new_perf;
|
||||||
}
|
}
|
||||||
|
@ -1271,6 +1304,12 @@ sub apply_perfdata_extend {
|
||||||
$new_perf->{unit} = $extend->{uom_sub} if (defined($extend->{uom_sub}));
|
$new_perf->{unit} = $extend->{uom_sub} if (defined($extend->{uom_sub}));
|
||||||
$new_perf->{min} = $extend->{min_sub} if (defined($extend->{min_sub}));
|
$new_perf->{min} = $extend->{min_sub} if (defined($extend->{min_sub}));
|
||||||
$new_perf->{max} = $extend->{max_sub} if (defined($extend->{max_sub}));
|
$new_perf->{max} = $extend->{max_sub} if (defined($extend->{max_sub}));
|
||||||
|
$self->apply_perfdata_thresholds(
|
||||||
|
perf => \$new_perf,
|
||||||
|
warning => $extend->{warn_sub},
|
||||||
|
critical => $extend->{crit_sub},
|
||||||
|
max => $new_perf->{max}
|
||||||
|
);
|
||||||
|
|
||||||
if ($extend->{type} == 1) {
|
if ($extend->{type} == 1) {
|
||||||
$self->{perfdatas}->[$i] = $new_perf;
|
$self->{perfdatas}->[$i] = $new_perf;
|
||||||
|
|
Loading…
Reference in New Issue