(plugin) network::brocade::snmp - use new perfdata (#3933)

This commit is contained in:
qgarnier 2022-09-28 13:20:42 +02:00 committed by GitHub
parent 45818b8a8f
commit f579955ca5
4 changed files with 65 additions and 53 deletions

View File

@ -27,14 +27,13 @@ use warnings;
sub new { sub new {
my ($class, %options) = @_; my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options); my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1);
bless $self, $class; bless $self, $class;
$options{options}->add_options(arguments => $options{options}->add_options(arguments => {
{ 'warning:s' => { name => 'warning', },
"warning:s" => { name => 'warning', }, 'critical:s' => { name => 'critical' }
"critical:s" => { name => 'critical', }, });
});
return $self; return $self;
} }
@ -42,14 +41,14 @@ sub new {
sub check_options { sub check_options {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->SUPER::init(%options); $self->SUPER::init(%options);
if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) { if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) {
$self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) { if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) {
$self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
} }
@ -60,7 +59,7 @@ sub run {
my $oid_swFwFabricWatchLicense = '.1.3.6.1.4.1.1588.2.1.1.1.10.1.0'; my $oid_swFwFabricWatchLicense = '.1.3.6.1.4.1.1588.2.1.1.1.10.1.0';
my $oid_swCpuUsage = '.1.3.6.1.4.1.1588.2.1.1.1.26.1.0'; my $oid_swCpuUsage = '.1.3.6.1.4.1.1588.2.1.1.1.26.1.0';
my $result = $self->{snmp}->get_leef(oids => [$oid_swFwFabricWatchLicense, $oid_swCpuUsage], nothing_quit => 1); my $result = $self->{snmp}->get_leef(oids => [$oid_swFwFabricWatchLicense, $oid_swCpuUsage], nothing_quit => 1);
if (!defined($result->{$oid_swCpuUsage})) { if (!defined($result->{$oid_swCpuUsage})) {
if ($result->{$oid_swFwFabricWatchLicense} == 2) { if ($result->{$oid_swFwFabricWatchLicense} == 2) {
$self->{output}->add_option_msg(short_msg => "Need Fabric Watch License to get information."); $self->{output}->add_option_msg(short_msg => "Need Fabric Watch License to get information.");
@ -69,17 +68,25 @@ sub run {
$self->{output}->add_option_msg(short_msg => "Cannot get information."); $self->{output}->add_option_msg(short_msg => "Cannot get information.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
my $exit = $self->{perfdata}->threshold_check(value => $result->{$oid_swCpuUsage}, my $exit = $self->{perfdata}->threshold_check(
threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); value => $result->{$oid_swCpuUsage},
$self->{output}->output_add(severity => $exit, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]
short_msg => sprintf("CPU Usage: %.2f%%", $result->{$oid_swCpuUsage})); );
$self->{output}->perfdata_add(label => "cpu", unit => '%', $self->{output}->output_add(
value => $result->{$oid_swCpuUsage}, severity => $exit,
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), short_msg => sprintf("CPU Usage: %.2f%%", $result->{$oid_swCpuUsage})
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), );
min => 0, max => 100); $self->{output}->perfdata_add(
nlabel => 'cpu.utilization.percentage',
unit => '%',
value => $result->{$oid_swCpuUsage},
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
min => 0,
max => 100
);
$self->{output}->display(); $self->{output}->display();
$self->{output}->exit(); $self->{output}->exit();
} }
@ -105,4 +112,3 @@ Threshold critical in percent.
=back =back
=cut =cut

View File

@ -56,7 +56,7 @@ sub set_system {
sub new { sub new {
my ($class, %options) = @_; my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options, no_load_components => 1); my $self = $class->SUPER::new(package => __PACKAGE__, %options, no_load_components => 1, force_new_perfdata => 1);
bless $self, $class; bless $self, $class;
$options{options}->add_options(arguments => {}); $options{options}->add_options(arguments => {});
@ -189,8 +189,8 @@ sub check {
} }
$self->{output}->perfdata_add( $self->{output}->perfdata_add(
label => 'sensor', unit => $map_unit{$result->{swSensorType}},
nlabel => 'hardware.sensor.' . $result->{swSensorType} . '.' . $map_unit{$result->{swSensorType}}, nlabel => 'hardware.sensor.' . $result->{swSensorType} . '.' . $map_unit{$result->{swSensorType}},
unit => $map_unit{$result->{swSensorType}},
instances => $result->{swSensorInfo}, instances => $result->{swSensorInfo},
value => $result->{swSensorValue}, value => $result->{swSensorValue},
warning => $warn, warning => $warn,

View File

@ -88,7 +88,7 @@ sub set_counters_errors {
sub new { sub new {
my ($class, %options) = @_; my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options); my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perdata => 1);
bless $self, $class; bless $self, $class;
$options{options}->add_options(arguments => { $options{options}->add_options(arguments => {

View File

@ -27,14 +27,13 @@ use warnings;
sub new { sub new {
my ($class, %options) = @_; my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options); my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1);
bless $self, $class; bless $self, $class;
$options{options}->add_options(arguments => $options{options}->add_options(arguments => {
{ 'warning:s' => { name => 'warning', },
"warning:s" => { name => 'warning', }, 'critical:s' => { name => 'critical' }
"critical:s" => { name => 'critical', }, });
});
return $self; return $self;
} }
@ -42,14 +41,14 @@ sub new {
sub check_options { sub check_options {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->SUPER::init(%options); $self->SUPER::init(%options);
if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) { if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) {
$self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) { if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) {
$self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
} }
@ -60,7 +59,7 @@ sub run {
my $oid_swFwFabricWatchLicense = '.1.3.6.1.4.1.1588.2.1.1.1.10.1.0'; my $oid_swFwFabricWatchLicense = '.1.3.6.1.4.1.1588.2.1.1.1.10.1.0';
my $oid_swMemUsage = '.1.3.6.1.4.1.1588.2.1.1.1.26.6.0'; my $oid_swMemUsage = '.1.3.6.1.4.1.1588.2.1.1.1.26.6.0';
my $result = $self->{snmp}->get_leef(oids => [$oid_swFwFabricWatchLicense, $oid_swMemUsage], nothing_quit => 1); my $result = $self->{snmp}->get_leef(oids => [$oid_swFwFabricWatchLicense, $oid_swMemUsage], nothing_quit => 1);
if (!defined($result->{$oid_swMemUsage})) { if (!defined($result->{$oid_swMemUsage})) {
if ($result->{$oid_swFwFabricWatchLicense} == 2) { if ($result->{$oid_swFwFabricWatchLicense} == 2) {
$self->{output}->add_option_msg(short_msg => "Need Fabric Watch License to get information."); $self->{output}->add_option_msg(short_msg => "Need Fabric Watch License to get information.");
@ -69,17 +68,25 @@ sub run {
$self->{output}->add_option_msg(short_msg => "Cannot get information."); $self->{output}->add_option_msg(short_msg => "Cannot get information.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
my $exit = $self->{perfdata}->threshold_check(value => $result->{$oid_swMemUsage}, my $exit = $self->{perfdata}->threshold_check(
threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); value => $result->{$oid_swMemUsage},
$self->{output}->output_add(severity => $exit, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]
short_msg => sprintf("Memory Usage: %.2f%% used", $result->{$oid_swMemUsage})); );
$self->{output}->perfdata_add(label => "used", unit => '%', $self->{output}->output_add(
value => $result->{$oid_swMemUsage}, severity => $exit,
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), short_msg => sprintf("Memory Usage: %.2f%% used", $result->{$oid_swMemUsage})
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), );
min => 0, max => 100); $self->{output}->perfdata_add(
nlabel => 'memory.usage.percentage',
unit => '%',
value => $result->{$oid_swMemUsage},
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
min => 0,
max => 100
);
$self->{output}->display(); $self->{output}->display();
$self->{output}->exit(); $self->{output}->exit();
} }
@ -105,4 +112,3 @@ Threshold critical in percent.
=back =back
=cut =cut