enh(commvault/commserve): media-agents mode - add online/offline thresholds (#3152)

This commit is contained in:
qgarnier 2021-09-28 15:07:23 +02:00 committed by GitHub
parent e02119ce32
commit 7c1f084ede
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 29 additions and 6 deletions

View File

@ -43,6 +43,12 @@ sub prefix_media_output {
return "Media agent '" . $options{instance_value}->{name} . "' ";
}
sub prefix_global_output {
my ($self, %options) = @_;
return 'Media agents ';
}
sub set_counters {
my ($self, %options) = @_;
@ -53,12 +59,28 @@ sub set_counters {
$self->{maps_counters}->{global} = [
{ label => 'media-agents-total', nlabel => 'media.agents.total.count', display_ok => 0, set => {
key_values => [ { name => 'agents_total' } ],
output_template => 'media agents total: %s',
key_values => [ { name => 'total' } ],
output_template => 'total: %s',
perfdatas => [
{ template => '%s', min => 0 }
]
}
},
{ label => 'media-agents-online', nlabel => 'media.agents.online.count', display_ok => 0, set => {
key_values => [ { name => 'online' }, { name => 'total' } ],
output_template => 'online: %s',
perfdatas => [
{ template => '%s', min => 0, max => 'total' }
]
}
},
{ label => 'media-agents-offline', nlabel => 'media.agents.offline.count', display_ok => 0, set => {
key_values => [ { name => 'offline' }, { name => 'total' } ],
output_template => 'offline: %s',
perfdatas => [
{ template => '%s', min => 0, max => 'total' }
]
}
}
];
@ -93,7 +115,7 @@ sub new {
return $self;
}
my $map_status = { 1 => 'online', 0 => 'offline' };
my $map_status = { 0 => 'offline', 1 => 'online' };
my $map_offline_reason = {
0 => 'default', 1 => 'connectFail', 2 => 'versionMismatch', 3 => 'markedDisabled',
4 => 'olderVersionAndPastGraceperiod', 5 => 'initializing', 6 => 'migrated',
@ -109,7 +131,7 @@ sub manage_selection {
endpoint => '/v2/MediaAgents'
);
$self->{global} = { agents_total => 0 };
$self->{global} = { total => 0, online => 0, offline => 0 };
$self->{medias} = {};
foreach (@{$results->{mediaAgentList}}) {
if (defined($self->{option_results}->{filter_media_agent_id}) && $self->{option_results}->{filter_media_agent_id} ne '' &&
@ -130,7 +152,8 @@ sub manage_selection {
offline_reason => $map_offline_reason->{ $_->{offlineReason} }
};
$self->{global}->{agents_total}++;
$self->{global}->{ $map_status->{ $_->{status} } }++;
$self->{global}->{total}++;
}
}
@ -170,7 +193,7 @@ Can used special variables like: %{status}, %{is_maintenance}, %{offline_reason}
=item B<--warning-*> B<--critical-*>
Thresholds.
Can be: 'media-agents-total'.
Can be: 'media-agents-total', 'media-agents-online', 'media-agents-offline'.
=back