(plugin) apps::monitoring::netdata::restapi - mode load add option --average (#3647)

This commit is contained in:
qgarnier 2022-05-09 09:55:49 +02:00 committed by GitHub
parent 8297b298dd
commit 0791db43ec
1 changed files with 46 additions and 13 deletions

View File

@ -25,6 +25,23 @@ use base qw(centreon::plugins::templates::counter);
use strict; use strict;
use warnings; use warnings;
sub custom_load_output {
my ($self, %options) = @_;
my $msg = sprintf('%.2f', $self->{result_values}->{ $self->{key_values}->[0]->{name} });
if ($self->{result_values}->{cpu} > 0) {
$msg .= sprintf(
' [%.2f/%s CPUs]',
$self->{result_values}->{ $self->{key_values}->[1]->{name} },
$self->{result_values}->{cpu}
);
}
$self->{key_values}->[0]->{name} =~ /load(\d+)/;
$msg .= ' (' . $1 .'m)';
return $msg;
}
sub prefix_load_output { sub prefix_load_output {
my ($self, %options) = @_; my ($self, %options) = @_;
@ -39,24 +56,27 @@ sub set_counters {
]; ];
$self->{maps_counters}->{loadaverage} = [ $self->{maps_counters}->{loadaverage} = [
{ label => 'load1', nlabel => 'system.loadaverage.1m.value', set => { { label => 'load1', nlabel => 'system.loadaverage.1m.count', set => {
key_values => [ { name => 'load1' } ], key_values => [ { name => 'load1' }, { name => 'load1abs' }, { name => 'cpu' } ],
closure_custom_output => $self->can('custom_load_output'),
output_template => '%.2f (1m)', output_template => '%.2f (1m)',
perfdatas => [ perfdatas => [
{ template => '%.2f', min => 0 } { template => '%.2f', min => 0 }
] ]
} }
}, },
{ label => 'load5', nlabel => 'system.loadaverage.5m.value', set => { { label => 'load5', nlabel => 'system.loadaverage.5m.count', set => {
key_values => [ { name => 'load5' } ], key_values => [ { name => 'load5' }, { name => 'load5abs' }, { name => 'cpu' } ],
closure_custom_output => $self->can('custom_load_output'),
output_template => '%.2f (5m)', output_template => '%.2f (5m)',
perfdatas => [ perfdatas => [
{ template => '%.2f', min => 0 } { template => '%.2f', min => 0 }
] ]
} }
}, },
{ label => 'load15', nlabel => 'system.loadaverage.15m.value', set => { { label => 'load15', nlabel => 'system.loadaverage.15m.count', set => {
key_values => [ { name => 'load15' }, { name => 'load1' }, { name => 'load5' } ], key_values => [ { name => 'load15' }, { name => 'load15abs' }, { name => 'cpu' } ],
closure_custom_output => $self->can('custom_load_output'),
output_template => '%.2f (15m)', output_template => '%.2f (15m)',
perfdatas => [ perfdatas => [
{ template => '%.2f', min => 0 } { template => '%.2f', min => 0 }
@ -72,8 +92,9 @@ sub new {
bless $self, $class; bless $self, $class;
$options{options}->add_options(arguments => { $options{options}->add_options(arguments => {
'chart-period:s' => { name => 'chart_period', default => '300' }, 'chart-period:s' => { name => 'chart_period', default => '300' },
'chart-statistics:s' => { name => 'chart_statistics', default => 'average' }, 'chart-statistics:s' => { name => 'chart_statistics', default => 'average' },
'average' => { name => 'average' }
}); });
return $self; return $self;
@ -97,8 +118,20 @@ sub manage_selection {
$self->{loadaverage} = { $self->{loadaverage} = {
load1 => $self->{load_data}->{load1}, load1 => $self->{load_data}->{load1},
load5 => $self->{load_data}->{load5}, load5 => $self->{load_data}->{load5},
load15 => $self->{load_data}->{load15} load15 => $self->{load_data}->{load15},
load1abs => $self->{load_data}->{load1},
load5abs => $self->{load_data}->{load5},
load15abs => $self->{load_data}->{load15},
cpu => 0
}; };
if (defined($self->{option_results}->{average})) {
my $cpu_number = $options{custom}->get_info(filter_info => 'cores_total');
$self->{loadaverage}->{load1} = $self->{load_data}->{load1} / $cpu_number;
$self->{loadaverage}->{load5} = $self->{load_data}->{load5} / $cpu_number;
$self->{loadaverage}->{load15} = $self->{load_data}->{load15} / $cpu_number;
$self->{loadaverage}->{cpu} = $cpu_number;
}
}; };
1; 1;
@ -128,13 +161,13 @@ The statistic calculation method used to parse the collected data.
Can be : average, sum, min, max. Can be : average, sum, min, max.
Default: average Default: average
=item B<--warning-*> =item B<--average>
Warning threshold where '*' can be: load1, load5, load15 Load average for the number of CPUs.
=item B<--critical-*> =item B<--warning-*> B<--critical-*>
Critical threshold where '*' can be: load1, load5, load15 Threshold where '*' can be: load1, load5, load15
=back =back