+ enhance vtom mode

This commit is contained in:
garnier-quentin 2016-10-14 12:12:17 +02:00
parent 5278699a43
commit 90afd86b6b
1 changed files with 24 additions and 5 deletions

View File

@ -55,6 +55,9 @@ sub custom_status_threshold {
sub custom_status_output { sub custom_status_output {
my ($self, %options) = @_; my ($self, %options) = @_;
my $msg = 'status : ' . $self->{result_values}->{status}; my $msg = 'status : ' . $self->{result_values}->{status};
if ($self->{result_values}->{information} ne '') {
$msg .= ' [information: ' . $self->{result_values}->{information} . ']';
}
return $msg; return $msg;
} }
@ -66,6 +69,7 @@ sub custom_status_calc {
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
$self->{result_values}->{exit_code} = $options{new_datas}->{$self->{instance} . '_exit_code'}; $self->{result_values}->{exit_code} = $options{new_datas}->{$self->{instance} . '_exit_code'};
$self->{result_values}->{family} = $options{new_datas}->{$self->{instance} . '_family'}; $self->{result_values}->{family} = $options{new_datas}->{$self->{instance} . '_family'};
$self->{result_values}->{information} = $options{new_datas}->{$self->{instance} . '_information'};
return 0; return 0;
} }
@ -124,7 +128,7 @@ sub set_counters {
$self->{maps_counters}->{job} = [ $self->{maps_counters}->{job} = [
{ label => 'status', threshold => 0, set => { { label => 'status', threshold => 0, set => {
key_values => [ { name => 'status' }, { name => 'display' }, { name => 'exit_code' }, { name => 'family' } ], key_values => [ { name => 'status' }, { name => 'display' }, { name => 'exit_code' }, { name => 'family' }, { name => 'information' } ],
closure_custom_calc => $self->can('custom_status_calc'), closure_custom_calc => $self->can('custom_status_calc'),
closure_custom_output => $self->can('custom_status_output'), closure_custom_output => $self->can('custom_status_output'),
closure_custom_perfdata => sub { return 0; }, closure_custom_perfdata => sub { return 0; },
@ -199,6 +203,7 @@ sub new {
$options{options}->add_options(arguments => $options{options}->add_options(arguments =>
{ {
"filter-name:s" => { name => 'filter_name' }, "filter-name:s" => { name => 'filter_name' },
"filter-family:s" => { name => 'filter_family' },
"warning-status:s" => { name => 'warning_status' }, "warning-status:s" => { name => 'warning_status' },
"critical-status:s" => { name => 'critical_status', default => '%{status} =~ /Error/i' }, "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /Error/i' },
"warning-long:s" => { name => 'warning_long' }, "warning-long:s" => { name => 'warning_long' },
@ -261,16 +266,24 @@ sub manage_selection {
$self->{output}->output_add(long_msg => "skipping '" . $entry->{name} . "': no matching filter.", debug => 1); $self->{output}->output_add(long_msg => "skipping '" . $entry->{name} . "': no matching filter.", debug => 1);
next; next;
} }
my $family = defined($entry->{family}) ? $entry->{family} : '-';
if (defined($self->{option_results}->{filter_family}) && $self->{option_results}->{filter_family} ne '' &&
$family !~ /$self->{option_results}->{filter_family}/) {
$self->{output}->output_add(long_msg => "skipping '" . $family . "': no matching filter.", debug => 1);
next;
}
my $information = defined($entry->{information}) ? $entry->{information} : '';
$information =~ s/\|/-/msg;
my $elapsed_time = $current_time - $entry->{timeBegin}; my $elapsed_time = $current_time - $entry->{timeBegin};
$self->{global}->{total} += 1; $self->{global}->{total} += 1;
$self->{global}->{lc($mapping_job_status{$entry->{status}})} += 1; $self->{global}->{lc($mapping_job_status{$entry->{status}})} += 1;
$self->{job}->{$entry->{id}} = { $self->{job}->{$entry->{id}} = {
display => $entry->{name}, display => $entry->{name},
status => $mapping_job_status{$entry->{status}}, status => $mapping_job_status{$entry->{status}}, information => $information,
exit_code => $entry->{retcode}, exit_code => $entry->{retcode},
family => defined($entry->{family}) ? $entry->{family} : '-', family => $family,
elapsed => $elapsed_time elapsed => $elapsed_time
}; };
} }
@ -296,6 +309,10 @@ Check job status.
Filter name (can be a regexp). Filter name (can be a regexp).
=item B<--filter-family>
Filter family (can be a regexp).
=item B<--filter-counters> =item B<--filter-counters>
Only display some counters (regexp can be used). Only display some counters (regexp can be used).
@ -316,12 +333,14 @@ Can be: 'total-error', 'total-running', 'total-unplanned',
=item B<--warning-status> =item B<--warning-status>
Set warning threshold for status (Default: -) Set warning threshold for status (Default: -)
Can used special variables like: %{display}, %{status}, %{exit_code}, %{family} Can used special variables like: %{display}, %{status},
%{exit_code}, %{family}, %{information}
=item B<--critical-status> =item B<--critical-status>
Set critical threshold for status (Default: '%{exit_code} =~ /Error/i'). Set critical threshold for status (Default: '%{exit_code} =~ /Error/i').
Can used special variables like: %{display}, %{status}, %{exit_code}, %{family} Can used special variables like: %{display}, %{status},
%{exit_code}, %{family}, %{information}
=item B<--warning-long> =item B<--warning-long>