WIP: new perfdata system

This commit is contained in:
garnier-quentin 2019-04-17 09:47:51 +02:00
parent 0a9c157e63
commit c9e1c991a3
21 changed files with 215 additions and 186 deletions

View File

@ -51,19 +51,21 @@ sub custom_usage_perfdata {
$label = 'free'; $label = 'free';
$value_perf = $self->{result_values}->{free}; $value_perf = $self->{result_values}->{free};
} }
my $extra_label = '';
$extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0);
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$total_options{total} = $self->{result_values}->{total}; $total_options{total} = $self->{result_values}->{total};
$total_options{cast_int} = 1; $total_options{cast_int} = 1;
} }
$self->{output}->perfdata_add(label => $label . $extra_label, unit => 'B', $self->{output}->perfdata_add(
value => $value_perf, label => $label, unit => 'B',
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options), instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options), value => $value_perf,
min => 0, max => $self->{result_values}->{total}); warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, %total_options),
min => 0, max => $self->{result_values}->{total}
);
} }
sub custom_usage_threshold { sub custom_usage_threshold {
@ -76,7 +78,7 @@ sub custom_usage_threshold {
$threshold_value = $self->{result_values}->{prct_used}; $threshold_value = $self->{result_values}->{prct_used};
$threshold_value = $self->{result_values}->{prct_free} if (defined($self->{instance_mode}->{option_results}->{free})); $threshold_value = $self->{result_values}->{prct_free} if (defined($self->{instance_mode}->{option_results}->{free}));
} }
$exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{thlabel}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{thlabel}, exit_litteral => 'warning' } ]);
return $exit; return $exit;
} }

View File

@ -51,19 +51,21 @@ sub custom_usage_perfdata {
$label = 'free'; $label = 'free';
$value_perf = $self->{result_values}->{free}; $value_perf = $self->{result_values}->{free};
} }
my $extra_label = '';
$extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0);
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$total_options{total} = $self->{result_values}->{total}; $total_options{total} = $self->{result_values}->{total};
$total_options{cast_int} = 1; $total_options{cast_int} = 1;
} }
$self->{output}->perfdata_add(label => $label . $extra_label, unit => 'B', $self->{output}->perfdata_add(
value => $value_perf, label => $label, unit => 'B',
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options), instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options), value => $value_perf,
min => 0, max => $self->{result_values}->{total}); warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, %total_options),
min => 0, max => $self->{result_values}->{total}
);
} }
sub custom_usage_threshold { sub custom_usage_threshold {
@ -76,7 +78,7 @@ sub custom_usage_threshold {
$threshold_value = $self->{result_values}->{prct_used}; $threshold_value = $self->{result_values}->{prct_used};
$threshold_value = $self->{result_values}->{prct_free} if (defined($self->{instance_mode}->{option_results}->{free})); $threshold_value = $self->{result_values}->{prct_free} if (defined($self->{instance_mode}->{option_results}->{free}));
} }
$exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{thlabel}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{thlabel}, exit_litteral => 'warning' } ]);
return $exit; return $exit;
} }

View File

@ -32,17 +32,16 @@ sub new {
bless $self, $class; bless $self, $class;
$self->{version} = '1.0'; $self->{version} = '1.0';
$options{options}->add_options(arguments => $options{options}->add_options(arguments => {
{ "hostname:s" => { name => 'hostname' },
"hostname:s" => { name => 'hostname' }, "port:s" => { name => 'port', default => '7634' },
"port:s" => { name => 'port', default => '7634' }, "timeout:s" => { name => 'timeout', default => '10' },
"timeout:s" => { name => 'timeout', default => '10' }, "name:s" => { name => 'name' },
"name:s" => { name => 'name' }, "warning:s" => { name => 'warning' },
"warning:s" => { name => 'warning' }, "critical:s" => { name => 'critical' },
"critical:s" => { name => 'critical' }, "regexp" => { name => 'use_regexp' },
"regexp" => { name => 'use_regexp' }, "regexp-isensitive" => { name => 'use_regexpi' },
"regexp-isensitive" => { name => 'use_regexpi' }, });
});
$self->{result} = {}; $self->{result} = {};
$self->{hostname} = undef; $self->{hostname} = undef;
@ -71,11 +70,12 @@ sub check_options {
sub manage_selection { sub manage_selection {
my ($self, %options) = @_; my ($self, %options) = @_;
my $oSocketConn = new IO::Socket::INET ( Proto => 'tcp', my $oSocketConn = new IO::Socket::INET (
PeerAddr => $self->{option_results}->{hostname}, Proto => 'tcp',
PeerPort => $self->{option_results}->{port}, PeerAddr => $self->{option_results}->{hostname},
Timeout => $self->{option_results}->{timeout}, PeerPort => $self->{option_results}->{port},
); Timeout => $self->{option_results}->{timeout},
);
if (!defined($oSocketConn)) { if (!defined($oSocketConn)) {
$self->{output}->add_option_msg(short_msg => "Could not connect."); $self->{output}->add_option_msg(short_msg => "Could not connect.");
@ -147,14 +147,17 @@ sub run {
$self->{result}->{$name}->{unit})); $self->{result}->{$name}->{unit}));
} }
my $extra_label = ''; my $extra_label;
$extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp})); $extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp}));
$self->{output}->perfdata_add(label => 'temp' . $extra_label, $self->{output}->perfdata_add(
unit => $self->{result}->{$name}->{unit}, label => 'temp',
value => sprintf("%.2f", $self->{result}->{$name}->{temperature}), intances => $extra_label,
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), unit => $self->{result}->{$name}->{unit},
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), value => sprintf("%.2f", $self->{result}->{$name}->{temperature}),
min => 0); warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
min => 0
);
}; };
$self->{output}->display(); $self->{output}->display();

View File

@ -185,13 +185,16 @@ sub check {
$str_display .= $str_display_append . sprintf("%s %s /sec", $name, $value_display); $str_display .= $str_display_append . sprintf("%s %s /sec", $name, $value_display);
$str_display_append = ', '; $str_display_append = ', ';
my $extra_label = ''; my $extra_label;
$extra_label = '_' . $site_name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp})); $extra_label = '_' . $site_name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp}));
$self->{output}->perfdata_add(label => $name . $extra_label, unit => $counters->{$name}->{unit}, $self->{output}->perfdata_add(
value => sprintf("%.2f", $value_per_seconds), label => $name, unit => $counters->{$name}->{unit},
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning_' . $name), instances => $extra_label,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical_' . $name), value => sprintf("%.2f", $value_per_seconds),
min => 0); warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning_' . $name),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical_' . $name),
min => 0
);
} }
# No values computing. # No values computing.
@ -259,4 +262,4 @@ Counters are separated by comas.
=back =back
=cut =cut

View File

@ -51,19 +51,21 @@ sub custom_usage_perfdata {
$label = 'free'; $label = 'free';
$value_perf = $self->{result_values}->{free}; $value_perf = $self->{result_values}->{free};
} }
my $extra_label = '';
$extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0);
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$total_options{total} = $self->{result_values}->{total}; $total_options{total} = $self->{result_values}->{total};
$total_options{cast_int} = 1; $total_options{cast_int} = 1;
} }
$self->{output}->perfdata_add(label => $label . $extra_label, unit => 'B', $self->{output}->perfdata_add(
value => $value_perf, label => $label, unit => 'B',
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options), instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options), value => $value_perf,
min => 0, max => $self->{result_values}->{total}); warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, %total_options),
min => 0, max => $self->{result_values}->{total}
);
} }
sub custom_usage_threshold { sub custom_usage_threshold {
@ -76,7 +78,7 @@ sub custom_usage_threshold {
$threshold_value = $self->{result_values}->{prct_used}; $threshold_value = $self->{result_values}->{prct_used};
$threshold_value = $self->{result_values}->{prct_free} if (defined($self->{instance_mode}->{option_results}->{free})); $threshold_value = $self->{result_values}->{prct_free} if (defined($self->{instance_mode}->{option_results}->{free}));
} }
$exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{thlabel}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{thlabel}, exit_litteral => 'warning' } ]);
return $exit; return $exit;
} }

View File

@ -91,9 +91,6 @@ sub custom_usage_perfdata {
my $use_th = 1; my $use_th = 1;
$use_th = 0 if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} <= 0); $use_th = 0 if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} <= 0);
my $extra_label = '';
$extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0);
my $value_perf = $self->{result_values}->{used}; my $value_perf = $self->{result_values}->{used};
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} > 0) { if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} > 0) {
@ -103,11 +100,14 @@ sub custom_usage_perfdata {
my $label = $self->{label}; my $label = $self->{label};
$label =~ s/-/_/g; $label =~ s/-/_/g;
$self->{output}->perfdata_add(label => $label . $extra_label, $self->{output}->perfdata_add(
value => $value_perf, label => $label,
warning => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options) : undef, instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
critical => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options) : undef, value => $value_perf,
min => 0, max => $self->{result_values}->{max} > 0 ? $self->{result_values}->{max} : undef); warning => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options) : undef,
critical => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, %total_options) : undef,
min => 0, max => $self->{result_values}->{max} > 0 ? $self->{result_values}->{max} : undef
);
} }
sub custom_usage_threshold { sub custom_usage_threshold {
@ -120,7 +120,7 @@ sub custom_usage_threshold {
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$threshold_value = $self->{result_values}->{prct_used}; $threshold_value = $self->{result_values}->{prct_used};
} }
$exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{thlabel}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{thlabel}, exit_litteral => 'warning' } ]);
return $exit; return $exit;
} }

View File

@ -61,9 +61,6 @@ sub custom_usage_perfdata {
my $use_th = 1; my $use_th = 1;
$use_th = 0 if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} <= 0); $use_th = 0 if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} <= 0);
my $extra_label = '';
$extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0);
my $value_perf = $self->{result_values}->{used}; my $value_perf = $self->{result_values}->{used};
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} > 0) { if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} > 0) {
@ -73,11 +70,14 @@ sub custom_usage_perfdata {
my $label = $self->{label}; my $label = $self->{label};
$label =~ s/-/_/g; $label =~ s/-/_/g;
$self->{output}->perfdata_add(label => $label . $extra_label, $self->{output}->perfdata_add(
value => $value_perf, label => $label,
warning => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options) : undef, instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
critical => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options) : undef, value => $value_perf,
min => 0, max => $self->{result_values}->{max} > 0 ? $self->{result_values}->{max} : undef); warning => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options) : undef,
critical => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, %total_options) : undef,
min => 0, max => $self->{result_values}->{max} > 0 ? $self->{result_values}->{max} : undef
);
} }
sub custom_usage_threshold { sub custom_usage_threshold {
@ -90,7 +90,7 @@ sub custom_usage_threshold {
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$threshold_value = $self->{result_values}->{prct_used}; $threshold_value = $self->{result_values}->{prct_used};
} }
$exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{thlabel}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{thlabel}, exit_litteral => 'warning' } ]);
return $exit; return $exit;
} }

View File

@ -61,9 +61,6 @@ sub custom_usage_perfdata {
my $use_th = 1; my $use_th = 1;
$use_th = 0 if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} <= 0); $use_th = 0 if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} <= 0);
my $extra_label = '';
$extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0);
my $value_perf = $self->{result_values}->{used}; my $value_perf = $self->{result_values}->{used};
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} > 0) { if ($self->{instance_mode}->{option_results}->{units} eq '%' && $self->{result_values}->{max} > 0) {
@ -73,11 +70,14 @@ sub custom_usage_perfdata {
my $label = $self->{label}; my $label = $self->{label};
$label =~ s/-/_/g; $label =~ s/-/_/g;
$self->{output}->perfdata_add(label => $label . $extra_label, $self->{output}->perfdata_add(
value => $value_perf, label => $label,
warning => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options) : undef, instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
critical => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options) : undef, value => $value_perf,
min => 0, max => $self->{result_values}->{max} > 0 ? $self->{result_values}->{max} : undef); warning => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options) : undef,
critical => $use_th == 1 ? $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, %total_options) : undef,
min => 0, max => $self->{result_values}->{max} > 0 ? $self->{result_values}->{max} : undef
);
} }
sub custom_usage_threshold { sub custom_usage_threshold {
@ -90,7 +90,7 @@ sub custom_usage_threshold {
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$threshold_value = $self->{result_values}->{prct_used}; $threshold_value = $self->{result_values}->{prct_used};
} }
$exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{thlabel}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{thlabel}, exit_litteral => 'warning' } ]);
return $exit; return $exit;
} }

View File

@ -123,11 +123,14 @@ sub run {
$self->{result}->{$name}->{state})); $self->{result}->{$name}->{state}));
} }
my $extra_label = ''; my $extra_label;
$extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp})); $extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp}));
$self->{output}->perfdata_add(label => 'status' . $extra_label, $self->{output}->perfdata_add(
value => sprintf("%.1f", $staterc), label => 'status',
min => 0); instances => $extra_label,
value => sprintf("%.1f", $staterc),
min => 0
);
}; };
$self->{output}->display(); $self->{output}->display();

View File

@ -275,30 +275,41 @@ sub run {
$requestInfo_errorCount_absolute_per_sec)); $requestInfo_errorCount_absolute_per_sec));
} }
my $extra_label = ''; my $extra_label;
$extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp})); $extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp}));
$self->{output}->perfdata_add(label => 'maxTime' . $extra_label, $self->{output}->perfdata_add(
value => sprintf("%.2f", $self->{result}->{$name}->{requestInfo_maxTime}), label => 'maxTime',
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), instances => $extra_label,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), value => sprintf("%.2f", $self->{result}->{$name}->{requestInfo_maxTime}),
min => 0); warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
min => 0
);
$self->{output}->perfdata_add(label => 'processingTime' . $extra_label, $self->{output}->perfdata_add(
value => sprintf("%.3f", $requestInfo_processingTime_absolute_per_sec), label => 'processingTime',
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), instances => $extra_label,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), value => sprintf("%.3f", $requestInfo_processingTime_absolute_per_sec),
min => 0); warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
$self->{output}->perfdata_add(label => 'requestCount' . $extra_label, min => 0
value => sprintf("%.2f", $requestInfo_requestCount_absolute_per_sec), );
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), $self->{output}->perfdata_add(
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), label => 'requestCount',
min => 0); instances => $extra_label,
$self->{output}->perfdata_add(label => 'errorCount' . $extra_label, value => sprintf("%.2f", $requestInfo_requestCount_absolute_per_sec),
value => sprintf("%.2f", $requestInfo_errorCount_absolute_per_sec), warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), min => 0
min => 0); );
$self->{output}->perfdata_add(
label => 'errorCount',
instances => $extra_label,
value => sprintf("%.2f", $requestInfo_errorCount_absolute_per_sec),
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
min => 0
);
}; };
$self->{statefile_value}->write(data => $new_datas); $self->{statefile_value}->write(data => $new_datas);

View File

@ -124,13 +124,16 @@ sub run {
$self->{result}->{$name}->{sessions})); $self->{result}->{$name}->{sessions}));
} }
my $extra_label = ''; my $extra_label;
$extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp})); $extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp}));
$self->{output}->perfdata_add(label => 'sessions' . $extra_label, $self->{output}->perfdata_add(
value => sprintf("%.2f", $self->{result}->{$name}->{sessions}), label => 'sessions',
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), instances => $extra_label,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), value => sprintf("%.2f", $self->{result}->{$name}->{sessions}),
min => 0); warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
min => 0
);
}; };
$self->{output}->display(); $self->{output}->display();

View File

@ -184,21 +184,27 @@ sub run {
$self->{result}->{$name}->{currentThreadsBusy})); $self->{result}->{$name}->{currentThreadsBusy}));
} }
my $extra_label = ''; my $extra_label;
$extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp})); $extra_label = '_' . $name if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp}));
$self->{output}->perfdata_add(label => 'currentThreadsBusy' . $extra_label, $self->{output}->perfdata_add(
value => $self->{result}->{$name}->{currentThreadsBusy}, label => 'currentThreadsBusy',
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), instances => $extra_label,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), value => $self->{result}->{$name}->{currentThreadsBusy},
min => 0, warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
max => $self->{result}->{$name}->{maxThreads}); critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
min => 0,
max => $self->{result}->{$name}->{maxThreads}
);
$self->{output}->perfdata_add(label => 'currentThreadCount' . $extra_label, $self->{output}->perfdata_add(
value => $self->{result}->{$name}->{currentThreadCount}, label => 'currentThreadCount',
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), instances => $extra_label,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), value => $self->{result}->{$name}->{currentThreadCount},
min => 0, warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
max => $self->{result}->{$name}->{maxThreads}); critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
min => 0,
max => $self->{result}->{$name}->{maxThreads}
);
}; };
$self->{output}->display(); $self->{output}->display();

View File

@ -61,25 +61,23 @@ sub set_counters {
sub custom_traffic_perfdata { sub custom_traffic_perfdata {
my ($self, %options) = @_; my ($self, %options) = @_;
my $extra_label = '';
if (!defined($options{extra_instance}) || $options{extra_instance} != 0) {
$extra_label .= '_' . $self->{result_values}->{display};
}
my ($warning, $critical); my ($warning, $critical);
if ($self->{instance_mode}->{option_results}->{units_traffic} eq '%' && defined($self->{result_values}->{speed})) { if ($self->{instance_mode}->{option_results}->{units_traffic} eq '%' && defined($self->{result_values}->{speed})) {
$warning = $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, total => $self->{result_values}->{speed}, cast_int => 1); $warning = $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, total => $self->{result_values}->{speed}, cast_int => 1);
$critical = $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, total => $self->{result_values}->{speed}, cast_int => 1); $critical = $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, total => $self->{result_values}->{speed}, cast_int => 1);
} elsif ($self->{instance_mode}->{option_results}->{units_traffic} eq 'b/s') { } elsif ($self->{instance_mode}->{option_results}->{units_traffic} eq 'b/s') {
$warning = $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}); $warning = $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel});
$critical = $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}); $critical = $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel});
} }
$self->{output}->perfdata_add(label => 'traffic_' . $self->{result_values}->{label} . $extra_label, unit => 'b/s', $self->{output}->perfdata_add(
value => sprintf("%.2f", $self->{result_values}->{traffic}), label => 'traffic_' . $self->{result_values}->{label}, unit => 'b/s',
warning => $warning, instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
critical => $critical, value => sprintf("%.2f", $self->{result_values}->{traffic}),
min => 0, max => $self->{result_values}->{speed}); warning => $warning,
critical => $critical,
min => 0, max => $self->{result_values}->{speed}
);
} }
sub custom_traffic_threshold { sub custom_traffic_threshold {
@ -87,9 +85,9 @@ sub custom_traffic_threshold {
my $exit = 'ok'; my $exit = 'ok';
if ($self->{instance_mode}->{option_results}->{units_traffic} eq '%' && defined($self->{result_values}->{speed})) { if ($self->{instance_mode}->{option_results}->{units_traffic} eq '%' && defined($self->{result_values}->{speed})) {
$exit = $self->{perfdata}->threshold_check(value => $self->{result_values}->{traffic_prct}, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{label}, exit_litteral => 'warning' } ]); $exit = $self->{perfdata}->threshold_check(value => $self->{result_values}->{traffic_prct}, threshold => [ { label => 'critical-' . $self->{thlabel}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{thlabel}, exit_litteral => 'warning' } ]);
} elsif ($self->{instance_mode}->{option_results}->{units_traffic} eq 'b/s') { } elsif ($self->{instance_mode}->{option_results}->{units_traffic} eq 'b/s') {
$exit = $self->{perfdata}->threshold_check(value => $self->{result_values}->{traffic}, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{label}, exit_litteral => 'warning' } ]); $exit = $self->{perfdata}->threshold_check(value => $self->{result_values}->{traffic}, threshold => [ { label => 'critical-' . $self->{thlabel}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{thlabel}, exit_litteral => 'warning' } ]);
} }
return $exit; return $exit;
} }

View File

@ -54,19 +54,21 @@ sub custom_usage_perfdata {
$label = 'free'; $label = 'free';
$value_perf = $self->{result_values}->{free}; $value_perf = $self->{result_values}->{free};
} }
my $extra_label = '';
$extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0);
my %total_options = (); my %total_options = ();
if ($self->{result_values}->{total} =~ /[0-9]/ && $self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{result_values}->{total} =~ /[0-9]/ && $self->{instance_mode}->{option_results}->{units} eq '%') {
$total_options{total} = $self->{result_values}->{total}; $total_options{total} = $self->{result_values}->{total};
$total_options{cast_int} = 1; $total_options{cast_int} = 1;
} }
$self->{output}->perfdata_add(label => $label . $extra_label, $self->{output}->perfdata_add(
value => $value_perf, label => $label,
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options), instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options), value => $value_perf,
min => 0, max => $self->{result_values}->{total} =~ /[0-9]/ ? $self->{result_values}->{total} : undef); warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, %total_options),
min => 0, max => $self->{result_values}->{total} =~ /[0-9]/ ? $self->{result_values}->{total} : undef
);
} }
sub custom_usage_threshold { sub custom_usage_threshold {
@ -79,7 +81,7 @@ sub custom_usage_threshold {
$threshold_value = $self->{result_values}->{prct_used}; $threshold_value = $self->{result_values}->{prct_used};
$threshold_value = $self->{result_values}->{prct_free} if (defined($self->{instance_mode}->{option_results}->{free})); $threshold_value = $self->{result_values}->{prct_free} if (defined($self->{instance_mode}->{option_results}->{free}));
} }
$exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{thlabel}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{thlabel}, exit_litteral => 'warning' } ]);
return $exit; return $exit;
} }

View File

@ -49,9 +49,7 @@ sub custom_usage_perfdata {
($label, $nlabel) = ('free', 'datastore.space.free.bytes'); ($label, $nlabel) = ('free', 'datastore.space.free.bytes');
$value_perf = $self->{result_values}->{free}; $value_perf = $self->{result_values}->{free};
} }
my $extra_label = '';
$extra_label = $self->{result_values}->{display}
if (!defined($options{extra_instance}) || $options{extra_instance} != 0 || $self->{output}->use_new_perfdata());
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$total_options{total} = $self->{result_values}->{total}; $total_options{total} = $self->{result_values}->{total};
@ -60,7 +58,7 @@ sub custom_usage_perfdata {
$self->{output}->perfdata_add( $self->{output}->perfdata_add(
label => $label, unit => 'B', label => $label, unit => 'B',
instances => $extra_label, instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
nlabel => $nlabel, nlabel => $nlabel,
value => $value_perf, value => $value_perf,
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options), warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options),

View File

@ -49,9 +49,7 @@ sub custom_usage_perfdata {
($label, $nlabel) = ('free', 'host.memory.free.bytes'); ($label, $nlabel) = ('free', 'host.memory.free.bytes');
$value_perf = $self->{result_values}->{free}; $value_perf = $self->{result_values}->{free};
} }
my $extra_label = '';
$extra_label = $self->{result_values}->{display}
if (!defined($options{extra_instance}) || $options{extra_instance} != 0 || $self->{output}->use_new_perfdata());
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$total_options{total} = $self->{result_values}->{total}; $total_options{total} = $self->{result_values}->{total};
@ -60,7 +58,7 @@ sub custom_usage_perfdata {
$self->{output}->perfdata_add( $self->{output}->perfdata_add(
label => $label, unit => 'B', label => $label, unit => 'B',
instances => $extra_label, instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
nlabel => $nlabel, nlabel => $nlabel,
value => $value_perf, value => $value_perf,
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options), warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options),

View File

@ -50,9 +50,7 @@ sub custom_usage_perfdata {
($label, $nlabel) = ('free', 'vm.memory.free.bytes'); ($label, $nlabel) = ('free', 'vm.memory.free.bytes');
$value_perf = $self->{result_values}->{free}; $value_perf = $self->{result_values}->{free};
} }
my $extra_label = '';
$extra_label = $self->{result_values}->{display}
if (!defined($options{extra_instance}) || $options{extra_instance} != 0 || $self->{output}->use_new_perfdata());
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$total_options{total} = $self->{result_values}->{total}; $total_options{total} = $self->{result_values}->{total};
@ -61,7 +59,7 @@ sub custom_usage_perfdata {
$self->{output}->perfdata_add( $self->{output}->perfdata_add(
label => $label, unit => 'B', label => $label, unit => 'B',
instances => $extra_label, instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
nlabel => $nlabel, nlabel => $nlabel,
value => $value_perf, value => $value_perf,
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options), warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options),

View File

@ -39,14 +39,10 @@ sub custom_usage_perfdata {
$total_options{cast_int} = 1; $total_options{cast_int} = 1;
$value_perf = $self->{result_values}->{used}; $value_perf = $self->{result_values}->{used};
} }
my $extra_label;
$extra_label = $self->{result_values}->{display}
if (!defined($options{extra_instance}) || $options{extra_instance} != 0 || $self->{output}->use_new_perfdata());
$self->{output}->perfdata_add( $self->{output}->perfdata_add(
label => $label, unit => $unit, label => $label, unit => $unit,
instances => $extra_label, instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
nlabel => $nlabel, nlabel => $nlabel,
value => $value_perf, value => $value_perf,
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options), warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options),

View File

@ -161,6 +161,16 @@ sub output {
return sprintf($self->{output_template}, $value, $unit); return sprintf($self->{output_template}, $value, $unit);
} }
sub use_instances {
my ($self, %options) = @_;
if (!defined($options{extra_instance}) || $options{extra_instance} != 0 || $self->{output}->use_new_perfdata()) {
return 1;
}
return 0;
}
sub perfdata { sub perfdata {
my ($self, %options) = @_; my ($self, %options) = @_;

View File

@ -742,20 +742,16 @@ sub new {
$options{options}->add_options(arguments => { "add-volume" => { name => 'add_volume' }, }); $options{options}->add_options(arguments => { "add-volume" => { name => 'add_volume' }, });
} }
if ($self->{no_oid_options} == 0) { if ($self->{no_oid_options} == 0) {
$options{options}->add_options(arguments => $options{options}->add_options(arguments => {
{ "oid-filter:s" => { name => 'oid_filter', default => $self->default_oid_filter_name() },
"oid-filter:s" => { name => 'oid_filter', default => $self->default_oid_filter_name() }, "oid-display:s" => { name => 'oid_display', default => $self->default_oid_display_name() },
"oid-display:s" => { name => 'oid_display', default => $self->default_oid_display_name() }, "oid-extra-display:s" => { name => 'oid_extra_display' },
"oid-extra-display:s" => { name => 'oid_extra_display' }, });
}
);
} }
if ($self->{no_interfaceid_options} == 0) { if ($self->{no_interfaceid_options} == 0) {
$options{options}->add_options(arguments => $options{options}->add_options(arguments => {
{ "name" => { name => 'use_name' },
"name" => { name => 'use_name' }, });
}
);
} }
$self->{statefile_value} = centreon::plugins::statefile->new(%options); $self->{statefile_value} = centreon::plugins::statefile->new(%options);
@ -767,9 +763,9 @@ sub new {
my ($id, $name) = split /_/; my ($id, $name) = split /_/;
if (!defined($self->{maps_counters}->{$key}->{$_}->{threshold}) || $self->{maps_counters}->{$key}->{$_}->{threshold} != 0) { if (!defined($self->{maps_counters}->{$key}->{$_}->{threshold}) || $self->{maps_counters}->{$key}->{$_}->{threshold} != 0) {
$options{options}->add_options(arguments => { $options{options}->add_options(arguments => {
'warning-' . $name . ':s' => { name => 'warning-' . $name }, 'warning-' . $name . ':s' => { name => 'warning-' . $name },
'critical-' . $name . ':s' => { name => 'critical-' . $name }, 'critical-' . $name . ':s' => { name => 'critical-' . $name },
}); });
} }
$self->{maps_counters}->{$key}->{$_}->{obj} = centreon::plugins::values->new(statefile => $self->{statefile_value}, $self->{maps_counters}->{$key}->{$_}->{obj} = centreon::plugins::values->new(statefile => $self->{statefile_value},
output => $self->{output}, perfdata => $self->{perfdata}, output => $self->{output}, perfdata => $self->{perfdata},

View File

@ -34,9 +34,7 @@ sub custom_usage_perfdata {
($label, $nlabel) = ('free', 'memory.free.bytes'); ($label, $nlabel) = ('free', 'memory.free.bytes');
$value_perf = $self->{result_values}->{free}; $value_perf = $self->{result_values}->{free};
} }
my $extra_label;
$extra_label = $self->{result_values}->{display}
if (!defined($options{extra_instance}) || $options{extra_instance} != 0 || $self->{output}->use_new_perfdata());
my %total_options = (); my %total_options = ();
if ($self->{instance_mode}->{option_results}->{units} eq '%') { if ($self->{instance_mode}->{option_results}->{units} eq '%') {
$total_options{total} = $self->{result_values}->{total}; $total_options{total} = $self->{result_values}->{total};
@ -45,7 +43,7 @@ sub custom_usage_perfdata {
$self->{output}->perfdata_add( $self->{output}->perfdata_add(
label => $label, unit => 'B', label => $label, unit => 'B',
instances => $extra_label, instances => $self->use_instances(extra_instance => $options{extra_instance}) ? $self->{result_values}->{display} : undef,
nlabel => $nlabel, nlabel => $nlabel,
value => $value_perf, value => $value_perf,
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options), warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, %total_options),