mirror of
https://github.com/centreon/centreon-plugins.git
synced 2025-07-29 16:45:04 +02:00
enh(vmware8-esx): add swap, diskio and network + tests (#5510)
This commit is contained in:
parent
4e0df4ca4a
commit
4a50605c36
@ -103,7 +103,7 @@ sub set_counters {
|
||||
|
||||
$self->{maps_counters}->{cpu_usage} = [
|
||||
{
|
||||
label => 'usage-percentage',
|
||||
label => 'usage-prct',
|
||||
type => 1,
|
||||
nlabel => 'cpu.capacity.usage.percentage',
|
||||
set => {
|
||||
@ -135,6 +135,7 @@ sub set_counters {
|
||||
{
|
||||
value => 'cpu_usage_hertz',
|
||||
template => '%s',
|
||||
min => 0,
|
||||
max => 'cpu_provisioned_hertz',
|
||||
unit => 'Hz'
|
||||
}
|
||||
@ -145,7 +146,7 @@ sub set_counters {
|
||||
|
||||
$self->{maps_counters}->{cpu_contention} = [
|
||||
{
|
||||
label => 'contention-percentage',
|
||||
label => 'contention-prct',
|
||||
type => 1,
|
||||
nlabel => 'cpu.capacity.contention.percentage',
|
||||
set => {
|
||||
@ -167,7 +168,7 @@ sub set_counters {
|
||||
];
|
||||
$self->{maps_counters}->{cpu_demand} = [
|
||||
{
|
||||
label => 'demand-percentage',
|
||||
label => 'demand-prct',
|
||||
type => 1,
|
||||
nlabel => 'cpu.capacity.demand.percentage',
|
||||
set => {
|
||||
@ -175,7 +176,7 @@ sub set_counters {
|
||||
key_values => [ { name => 'prct_demand' } ],
|
||||
output_use => 'prct_demand',
|
||||
threshold_use => 'prct_demand',
|
||||
perfdatas => [ { value => 'prct_demand', template => '%s' } ]
|
||||
perfdatas => [ { value => 'prct_demand', template => '%s', unit => '%', min => 0, max => 100 } ]
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -195,6 +196,7 @@ sub set_counters {
|
||||
{
|
||||
value => 'cpu_demand_hertz',
|
||||
template => '%s',
|
||||
min => 0,
|
||||
max => 'cpu_provisioned_hertz',
|
||||
unit => 'Hz'
|
||||
}
|
||||
@ -205,7 +207,7 @@ sub set_counters {
|
||||
|
||||
$self->{maps_counters}->{cpu_corecount} = [
|
||||
{
|
||||
label => 'corecount-usage',
|
||||
label => 'corecount-usage-count',
|
||||
type => 1,
|
||||
nlabel => 'cpu.corecount.usage.count',
|
||||
set => {
|
||||
@ -302,7 +304,7 @@ __END__
|
||||
|
||||
=head1 MODE
|
||||
|
||||
Monitor the status of VMware ESX hosts through vSphere 8 REST API.
|
||||
Monitor the CPU stats of VMware ESX hosts through vSphere 8 REST API.
|
||||
|
||||
Meaning of the available counters in the VMware API:
|
||||
- cpu.capacity.provisioned.HOST Capacity in kHz of the physical CPU cores.
|
||||
@ -337,61 +339,53 @@ Add counter related to CPU core count:
|
||||
|
||||
C<cpu.corecount.usage.HOST>: The number of virtual processors running on the host.
|
||||
|
||||
=item B<--warning-usage-percentage>
|
||||
=item B<--warning-contention-prct>
|
||||
|
||||
Threshold in %.
|
||||
Threshold in percentage.
|
||||
|
||||
=item B<--critical-usage-percentage>
|
||||
=item B<--critical-contention-prct>
|
||||
|
||||
Threshold in %.
|
||||
Threshold in percentage.
|
||||
|
||||
=item B<--warning-usage-frequency>
|
||||
=item B<--warning-corecount-usage-count>
|
||||
|
||||
Threshold in Hz.
|
||||
Threshold.
|
||||
|
||||
=item B<--critical-usage-frequency>
|
||||
=item B<--critical-corecount-usage-count>
|
||||
|
||||
Threshold in Hz.
|
||||
|
||||
=item B<--warning-contention-percentage>
|
||||
|
||||
Threshold in %.
|
||||
|
||||
=item B<--critical-contention-percentage>
|
||||
|
||||
Threshold in %.
|
||||
|
||||
=item B<--warning-contention-frequency>
|
||||
|
||||
Threshold in Hz.
|
||||
|
||||
=item B<--critical-contention-frequency>
|
||||
|
||||
Threshold in Hz.
|
||||
|
||||
=item B<--warning-demand-percentage>
|
||||
|
||||
Threshold in %.
|
||||
|
||||
=item B<--critical-demand-percentage>
|
||||
|
||||
Threshold in %.
|
||||
Threshold.
|
||||
|
||||
=item B<--warning-demand-frequency>
|
||||
|
||||
Threshold in Hz.
|
||||
Threshold in Hertz.
|
||||
|
||||
=item B<--critical-demand-frequency>
|
||||
|
||||
Threshold in Hz.
|
||||
Threshold in Hertz.
|
||||
|
||||
=item B<--warning-corecount-usage>
|
||||
=item B<--warning-demand-prct>
|
||||
|
||||
Threshold in number of cores.
|
||||
Threshold in percentage.
|
||||
|
||||
=item B<--critical-corecount-usage>
|
||||
=item B<--critical-demand-prct>
|
||||
|
||||
Threshold in number of cores.
|
||||
Threshold in percentage.
|
||||
|
||||
=item B<--warning-usage-frequency>
|
||||
|
||||
Threshold in Hertz.
|
||||
|
||||
=item B<--critical-usage-frequency>
|
||||
|
||||
Threshold in Hertz.
|
||||
|
||||
=item B<--warning-usage-prct>
|
||||
|
||||
Threshold in percentage.
|
||||
|
||||
=item B<--critical-usage-prct>
|
||||
|
||||
Threshold in percentage.
|
||||
|
||||
=back
|
||||
|
||||
|
117
src/apps/vmware/vsphere8/esx/mode/diskio.pm
Normal file
117
src/apps/vmware/vsphere8/esx/mode/diskio.pm
Normal file
@ -0,0 +1,117 @@
|
||||
#
|
||||
# Copyright 2025 Centreon (http://www.centreon.com/)
|
||||
#
|
||||
# Centreon is a full-fledged industry-strength solution that meets
|
||||
# the needs in IT infrastructure and application monitoring for
|
||||
# service performance.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
package apps::vmware::vsphere8::esx::mode::diskio;
|
||||
use strict;
|
||||
use warnings;
|
||||
use base qw(apps::vmware::vsphere8::esx::mode);
|
||||
|
||||
my @counters = (
|
||||
"disk.throughput.usage.HOST",
|
||||
"disk.throughput.contention.HOST"
|
||||
);
|
||||
|
||||
sub custom_diskio_output {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
my $msg = sprintf("Disk throughput usage: %s %s/s",
|
||||
$self->{perfdata}->change_bytes(value => $self->{result_values}->{throughput_bps})
|
||||
);
|
||||
return $msg;
|
||||
}
|
||||
|
||||
sub set_counters {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
$self->{maps_counters_type} = [
|
||||
{ name => 'diskio', type => 0 }
|
||||
];
|
||||
|
||||
$self->{maps_counters}->{diskio} = [
|
||||
{
|
||||
label => 'usage-bps',
|
||||
type => 1,
|
||||
nlabel => 'disk.throughput.usage.bytespersecond',
|
||||
set => {
|
||||
key_values => [ { name => 'disk.throughput.usage.HOST' }, { name => 'throughput_bps' } ],
|
||||
closure_custom_output => $self->can('custom_diskio_output'),
|
||||
perfdatas => [ { value => 'throughput_bps', template => '%s', unit => 'Bps' } ]
|
||||
}
|
||||
},
|
||||
{
|
||||
label => 'contention-ms',
|
||||
type => 1,
|
||||
nlabel => 'disk.throughput.contention.milliseconds',
|
||||
set => {
|
||||
key_values => [ { name => 'disk.throughput.contention.HOST' }],
|
||||
output_template => 'Disk throughput contention is %s ms',
|
||||
output_use => 'disk.throughput.contention.HOST',
|
||||
threshold_use => 'disk.throughput.contention.HOST',
|
||||
perfdatas => [ { value => 'disk.throughput.contention.HOST', template => '%s', unit => 'ms' } ]
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
sub manage_selection {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
my %structure = map {
|
||||
$_ => $self->get_esx_stats(%options, cid => $_, esx_id => $self->{esx_id}, esx_name => $self->{esx_name} )
|
||||
} @counters;
|
||||
$self->{diskio} = \%structure;
|
||||
|
||||
if ( defined($structure{'disk.throughput.usage.HOST'}) ) {
|
||||
$self->{diskio}->{throughput_bps} = $structure{'disk.throughput.usage.HOST'} * 1024;
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 MODE
|
||||
|
||||
Monitor the disk throughput and contention of VMware ESX hosts through vSphere 8 REST API.
|
||||
|
||||
Meaning of the available counters in the VMware API:
|
||||
- disk.throughput.usage.HOST Aggregated disk I/O rate (in kB/s), including the rates for all virtual machines running on the host during the collection interval
|
||||
- disk.throughput.contention.HOST Average amount of time (in milliseconds) for an I/O operation to complete successfully
|
||||
|
||||
=over 8
|
||||
|
||||
=item B<--warning-contention-ms>
|
||||
|
||||
Threshold in milliseconds.
|
||||
|
||||
=item B<--critical-contention-ms>
|
||||
|
||||
Threshold in milliseconds.
|
||||
|
||||
=item B<--warning-usage-bps>
|
||||
|
||||
Threshold in bytes per second.
|
||||
|
||||
=item B<--critical-usage-bps>
|
||||
|
||||
Threshold in bytes per second.
|
||||
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
@ -52,7 +52,7 @@ sub set_counters {
|
||||
|
||||
$self->{maps_counters}->{memory} = [
|
||||
{
|
||||
label => 'vms-usage-percentage',
|
||||
label => 'usage-prct',
|
||||
type => 1,
|
||||
nlabel => 'vms.memory.usage.percentage',
|
||||
set => {
|
||||
@ -72,7 +72,7 @@ sub set_counters {
|
||||
}
|
||||
},
|
||||
{
|
||||
label => 'vms-usage-bytes',
|
||||
label => 'usage-bytes',
|
||||
type => 1,
|
||||
nlabel => 'vms.memory.usage.bytes',
|
||||
set => {
|
||||
@ -119,29 +119,32 @@ sub manage_selection {
|
||||
Monitor the memory of VMware ESX hosts consumed by the virtual machines through vSphere 8 REST API.
|
||||
|
||||
Meaning of the available counters in the VMware API:
|
||||
mem.reservedCapacityPct.HOST Percent of memory that has been reserved either through VMkernel use, by userworlds or due to virtual machine memory reservations.
|
||||
mem.capacity.provisioned.HOST Total amount of memory available to the host.
|
||||
mem.capacity.usable.HOST Amount of physical memory available for use by virtual machines on this host
|
||||
mem.capacity.usage.HOST Amount of physical memory actively used
|
||||
mem.capacity.contention.HOST Percentage of time VMs are waiting to access swapped, compressed or ballooned memory.
|
||||
mem.consumed.vms.HOST Amount of physical memory consumed by VMs on this host.
|
||||
mem.consumed.userworlds.HOST Amount of physical memory consumed by userworlds on this host
|
||||
|
||||
- mem.reservedCapacityPct.HOST Percent of memory that has been reserved either through VMkernel use, by userworlds or due to virtual machine memory reservations.
|
||||
- mem.capacity.provisioned.HOST Total amount of memory available to the host.
|
||||
- mem.capacity.usable.HOST Amount of physical memory available for use by virtual machines on this host
|
||||
- mem.capacity.usage.HOST Amount of physical memory actively used
|
||||
- mem.capacity.contention.HOST Percentage of time VMs are waiting to access swapped, compressed or ballooned memory.
|
||||
- mem.consumed.vms.HOST Amount of physical memory consumed by VMs on this host.
|
||||
- mem.consumed.userworlds.HOST Amount of physical memory consumed by userworlds on this host
|
||||
|
||||
=over 8
|
||||
|
||||
=item B<--warning-vms-usage-percentage>
|
||||
=item B<--warning-usage-bytes>
|
||||
|
||||
Thresholds in percentage.
|
||||
Threshold in bytes.
|
||||
|
||||
=item B<--critical-vms-usage-percentage>
|
||||
=item B<--critical-usage-bytes>
|
||||
|
||||
Thresholds in percentage.
|
||||
Threshold in bytes.
|
||||
|
||||
=item B<--warning-vms-usage-bytes>
|
||||
=item B<--warning-usage-prct>
|
||||
|
||||
Thresholds in bytes.
|
||||
Threshold in percentage.
|
||||
|
||||
=item B<--critical-vms-usage-bytes>
|
||||
=item B<--critical-usage-prct>
|
||||
|
||||
Thresholds in bytes.
|
||||
Threshold in percentage.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
197
src/apps/vmware/vsphere8/esx/mode/network.pm
Normal file
197
src/apps/vmware/vsphere8/esx/mode/network.pm
Normal file
@ -0,0 +1,197 @@
|
||||
#
|
||||
# Copyright 2025 Centreon (http://www.centreon.com/)
|
||||
#
|
||||
# Centreon is a full-fledged industry-strength solution that meets
|
||||
# the needs in IT infrastructure and application monitoring for
|
||||
# service performance.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
package apps::vmware::vsphere8::esx::mode::network;
|
||||
use strict;
|
||||
use warnings;
|
||||
use base qw(apps::vmware::vsphere8::esx::mode);
|
||||
|
||||
my @counters = (
|
||||
#'net.throughput.provisioned.HOST', # not used atm
|
||||
'net.throughput.usable.HOST',
|
||||
'net.throughput.usage.HOST',
|
||||
#'net.throughput.contention.HOST' # pushed in manage_selection if necessary
|
||||
);
|
||||
|
||||
sub custom_network_output {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
my $msg = sprintf("Network throughput usage: %s %s/s of %s %s/s usable",
|
||||
$self->{perfdata}->change_bytes(value => $self->{result_values}->{usage_bps}),
|
||||
$self->{perfdata}->change_bytes(value => $self->{result_values}->{max_bps})
|
||||
);
|
||||
return $msg;
|
||||
}
|
||||
|
||||
# Skip contention processing if there is no available data
|
||||
sub skip_contention {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
return 0 if (defined($self->{contention})
|
||||
&& ref($self->{contention}) eq 'HASH'
|
||||
&& scalar(keys %{$self->{contention}}) > 0);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub set_counters {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
$self->{maps_counters_type} = [
|
||||
{ name => 'network', type => 0 },
|
||||
{ name => 'contention', type => 0, cb_init => 'skip_contention' }
|
||||
|
||||
];
|
||||
|
||||
$self->{maps_counters}->{network} = [
|
||||
{
|
||||
label => 'usage-bps',
|
||||
type => 1,
|
||||
nlabel => 'network.throughput.usage.bytespersecond',
|
||||
set => {
|
||||
key_values => [ { name => 'usage_bps' }, { name => 'max_bps' }, { name => 'usage_prct' } ],
|
||||
closure_custom_output => $self->can('custom_network_output'),
|
||||
perfdatas => [ { value => 'usage_bps', template => '%s', unit => 'Bps', min => 0, max => 'max_bps' } ]
|
||||
}
|
||||
},
|
||||
{
|
||||
label => 'usage-prct',
|
||||
type => 1,
|
||||
nlabel => 'network.throughput.usage.percent',
|
||||
set => {
|
||||
key_values => [ { name => 'usage_prct' } ],
|
||||
output_template => "%.2f%% of usable network throughput used",
|
||||
output_use => "usage_prct",
|
||||
perfdatas => [ { value => 'usage_prct', template => '%s', unit => '%', min => 0, max => '100' } ]
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
$self->{maps_counters}->{contention} = [
|
||||
{
|
||||
label => 'contention-count',
|
||||
type => 1,
|
||||
nlabel => 'network.throughput.contention.count',
|
||||
set => {
|
||||
key_values => [ { name => 'net.throughput.contention.HOST' } ],
|
||||
output_template => "%d packet(s) dropped",
|
||||
output_use => "net.throughput.contention.HOST",
|
||||
perfdatas => [ { value => 'net.throughput.contention.HOST', template => '%s', unit => '' } ]
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
sub new {
|
||||
my ($class, %options) = @_;
|
||||
|
||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
||||
|
||||
$options{options}->add_options(
|
||||
arguments => {
|
||||
'add-contention' => { name => 'add_contention' }
|
||||
}
|
||||
);
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub check_options {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
$self->SUPER::check_options(%options);
|
||||
|
||||
# If a threshold is given on rates, we enable the corresponding data collection
|
||||
if (grep {$_ =~ /contention/ && defined($self->{option_results}->{$_}) && $self->{option_results}->{$_} ne ''} keys %{$self->{option_results}}) {
|
||||
$self->{option_results}->{add_contention} = 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub manage_selection {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
push @counters, 'net.throughput.contention.HOST' if ($self->{option_results}->{add_contention});
|
||||
|
||||
my %structure = map {
|
||||
$_ => $self->get_esx_stats(%options, cid => $_, esx_id => $self->{esx_id}, esx_name => $self->{esx_name} )
|
||||
} @counters;
|
||||
$self->{network} = {};
|
||||
$self->{contention} = {};
|
||||
|
||||
if ( defined($structure{'net.throughput.usage.HOST'}) && defined($structure{'net.throughput.usable.HOST'})) {
|
||||
$self->{network}->{usage_bps} = $structure{'net.throughput.usage.HOST'} * 1024;
|
||||
$self->{network}->{max_bps} = $structure{'net.throughput.usable.HOST'} * 1024;
|
||||
|
||||
if ($structure{'net.throughput.usable.HOST'} != 0) {
|
||||
$self->{network}->{usage_prct} = 100 * $structure{'net.throughput.usage.HOST'} / $structure{'net.throughput.usable.HOST'};
|
||||
} else {
|
||||
$self->{network}->{usage_prct} = 0;
|
||||
}
|
||||
}
|
||||
if ( defined($structure{'net.throughput.contention.HOST'}) ) {
|
||||
$self->{contention}->{'net.throughput.contention.HOST'} = $structure{'net.throughput.contention.HOST'};
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 MODE
|
||||
|
||||
Monitor the swap usage of VMware ESX hosts through vSphere 8 REST API.
|
||||
|
||||
- net.throughput.provisioned.HOST The maximum network bandwidth (in kB/s) for the host.
|
||||
- net.throughput.usable.HOST The currently available network bandwidth (in kB/s) for the host.
|
||||
- net.throughput.usage.HOST The current network bandwidth usage (in kB/s) for the host.
|
||||
- net.throughput.contention.HOST The aggregate network droppped packets for the host.
|
||||
|
||||
=over 8
|
||||
|
||||
=item B<--add-contention>
|
||||
|
||||
Add counters related to network throughput contention.
|
||||
This option is implicitly enabled if thresholds related to contention are set.
|
||||
|
||||
=item B<--warning-contention-count>
|
||||
|
||||
Threshold.
|
||||
|
||||
=item B<--critical-contention-count>
|
||||
|
||||
Threshold.
|
||||
|
||||
=item B<--warning-usage-bps>
|
||||
|
||||
Threshold in bytes per second.
|
||||
|
||||
=item B<--critical-usage-bps>
|
||||
|
||||
Threshold in bytes per second.
|
||||
|
||||
=item B<--warning-usage-prct>
|
||||
|
||||
Threshold in percentage.
|
||||
|
||||
=item B<--critical-usage-prct>
|
||||
|
||||
Threshold in percentage.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
@ -37,7 +37,7 @@ sub set_counters {
|
||||
|
||||
$self->{maps_counters}->{power} = [
|
||||
{
|
||||
label => 'power-usage-watts',
|
||||
label => 'usage-watts',
|
||||
type => 1,
|
||||
nlabel => 'power.capacity.usage.watts',
|
||||
output_template => 'Power usage is %d Watts',
|
||||
@ -46,7 +46,7 @@ sub set_counters {
|
||||
key_values => [ { name => 'power.capacity.usage.HOST' } ],
|
||||
output_use => 'power.capacity.usage.HOST',
|
||||
threshold_use => 'power.capacity.usage.HOST',
|
||||
perfdatas => [ { value => 'power.capacity.usage.HOST', template => '%sW' } ]
|
||||
perfdatas => [ { value => 'power.capacity.usage.HOST', template => '%s', unit => 'W', min => 0 } ]
|
||||
}
|
||||
}
|
||||
];
|
||||
@ -79,11 +79,11 @@ Since our tests showed that only C<power.capacity.usage.HOST> was different from
|
||||
|
||||
=over 8
|
||||
|
||||
=item B<--warning-power-usage-watts>
|
||||
=item B<--warning-usage-watts>
|
||||
|
||||
Threshold in Watts.
|
||||
|
||||
=item B<--critical-power-usage-watts>
|
||||
=item B<--critical-usage-watts>
|
||||
|
||||
Threshold in Watts.
|
||||
|
||||
|
236
src/apps/vmware/vsphere8/esx/mode/swap.pm
Normal file
236
src/apps/vmware/vsphere8/esx/mode/swap.pm
Normal file
@ -0,0 +1,236 @@
|
||||
#
|
||||
# Copyright 2025 Centreon (http://www.centreon.com/)
|
||||
#
|
||||
# Centreon is a full-fledged industry-strength solution that meets
|
||||
# the needs in IT infrastructure and application monitoring for
|
||||
# service performance.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the 'License');
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an 'AS IS' BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
package apps::vmware::vsphere8::esx::mode::swap;
|
||||
use strict;
|
||||
use warnings;
|
||||
use base qw(apps::vmware::vsphere8::esx::mode);
|
||||
|
||||
my @counters = (
|
||||
'mem.swap.current.HOST',
|
||||
'mem.swap.target.HOST',
|
||||
#'mem.swap.readrate.HOST', # pushed in manage_selection if necessary
|
||||
#'mem.swap.writerate.HOST' # pushed in manage_selection if necessary
|
||||
);
|
||||
|
||||
sub custom_swap_output {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
my $msg = sprintf("Swap usage: %s %s (max available is %s %s)",
|
||||
$self->{perfdata}->change_bytes(value => $self->{result_values}->{used_bytes}),
|
||||
$self->{perfdata}->change_bytes(value => $self->{result_values}->{max_bytes})
|
||||
);
|
||||
return $msg;
|
||||
}
|
||||
|
||||
sub custom_swap_read_rate_output {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
my $msg = sprintf("Swap read rate is: %s %s/s",
|
||||
$self->{perfdata}->change_bytes(value => $self->{result_values}->{read_rate_bps})
|
||||
);
|
||||
return $msg;
|
||||
}
|
||||
sub custom_swap_write_rate_output {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
my $msg = sprintf("Swap write rate is: %s %s/s",
|
||||
$self->{perfdata}->change_bytes(value => $self->{result_values}->{write_rate_bps})
|
||||
);
|
||||
return $msg;
|
||||
}
|
||||
|
||||
sub new {
|
||||
my ($class, %options) = @_;
|
||||
|
||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
||||
|
||||
$options{options}->add_options(
|
||||
arguments => {
|
||||
'add-rates' => { name => 'add_rates' }
|
||||
}
|
||||
);
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub check_options {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
$self->SUPER::check_options(%options);
|
||||
|
||||
# If a threshold is given on rates, we enable the corresponding data collection
|
||||
if (grep {$_ =~ /rate/ && defined($self->{option_results}->{$_}) && $self->{option_results}->{$_} ne ''} keys %{$self->{option_results}}) {
|
||||
$self->{option_results}->{add_rates} = 1;
|
||||
}
|
||||
}
|
||||
|
||||
# Skip rates processing if there is no available data
|
||||
sub skip_rates {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
return 0 if (defined($self->{swap_rates})
|
||||
&& ref($self->{swap_rates}) eq 'HASH'
|
||||
&& scalar(keys %{$self->{swap_rates}}) > 0);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub set_counters {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
$self->{maps_counters_type} = [
|
||||
{ name => 'swap_usage', type => 0 },
|
||||
{ name => 'swap_rates', type => 0, cb_init => 'skip_rates' }
|
||||
];
|
||||
|
||||
$self->{maps_counters}->{swap_usage} = [
|
||||
{
|
||||
label => 'usage-bytes',
|
||||
type => 1,
|
||||
nlabel => 'swap.usage.bytes',
|
||||
set => {
|
||||
key_values => [ { name => 'used_bytes' }, { name => 'max_bytes' }, { name => 'used_prct' } ],
|
||||
closure_custom_output => $self->can('custom_swap_output'),
|
||||
perfdatas => [ { value => 'used_bytes', template => '%s', unit => 'B', max => 'max_bytes' } ]
|
||||
},
|
||||
},
|
||||
{
|
||||
label => 'usage-prct',
|
||||
type => 1,
|
||||
nlabel => 'swap.usage.percent',
|
||||
set => {
|
||||
key_values => [ { name => 'used_prct' } ],
|
||||
output_template => "Percent used: %.2f%%",
|
||||
output_use => 'used_prct',
|
||||
perfdatas => [ { value => 'used_prct', template => '%s', unit => '%', min => 0, max => 100 } ]
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
$self->{maps_counters}->{swap_rates} = [
|
||||
{
|
||||
label => 'read-rate-bps',
|
||||
type => 1,
|
||||
nlabel => 'swap.read-rate.bytespersecond',
|
||||
set => {
|
||||
closure_custom_output => $self->can('custom_swap_read_rate_output'),
|
||||
key_values => [ { name => 'read_rate_bps' } ],
|
||||
perfdatas => [ { value => 'read_rate_bps', template => '%s', unit => 'Bps' } ]
|
||||
}
|
||||
},
|
||||
{
|
||||
label => 'write-rate-bps',
|
||||
type => 1,
|
||||
nlabel => 'swap.write-rate.bytespersecond',
|
||||
set => {
|
||||
closure_custom_output => $self->can('custom_swap_write_rate_output'),
|
||||
key_values => [ { name => 'write_rate_bps' } ],
|
||||
perfdatas => [ { value => 'write_rate_bps', template => '%s', unit => 'Bps' } ]
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
sub manage_selection {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
push @counters, 'mem.swap.readrate.HOST', 'mem.swap.writerate.HOST' if ($self->{option_results}->{add_rates});
|
||||
|
||||
my %structure = map {
|
||||
$_ => $self->get_esx_stats(%options, cid => $_, esx_id => $self->{esx_id}, esx_name => $self->{esx_name})
|
||||
} @counters;
|
||||
|
||||
$self->{swap_usage} = {};
|
||||
|
||||
if (defined($structure{'mem.swap.current.HOST'}) && defined($structure{'mem.swap.target.HOST'})) {
|
||||
$self->{swap_usage}->{used_bytes} = $structure{'mem.swap.current.HOST'} * 1024;
|
||||
$self->{swap_usage}->{max_bytes} = $structure{'mem.swap.target.HOST'} * 1024;
|
||||
if ($structure{'mem.swap.target.HOST'} != 0) {
|
||||
$self->{swap_usage}->{used_prct} = 100 * $structure{'mem.swap.current.HOST'} / $structure{'mem.swap.target.HOST'};
|
||||
}
|
||||
else {
|
||||
$self->{swap_usage}->{used_prct} = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (defined($structure{'mem.swap.readrate.HOST'})) {
|
||||
$self->{swap_rates}->{read_rate_bps} = $structure{'mem.swap.readrate.HOST'} * 1024;
|
||||
}
|
||||
|
||||
if (defined($structure{'mem.swap.writerate.HOST'})) {
|
||||
$self->{swap_rates}->{write_rate_bps} = $structure{'mem.swap.writerate.HOST'} * 1024;
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 MODE
|
||||
|
||||
Monitor the swap usage of VMware ESX hosts through vSphere 8 REST API.
|
||||
|
||||
Meaning of the available counters in the VMware API:
|
||||
- mem.swap.current.HOST Amount (in kB) of memory that is used by swap. Sum of memory swapped of all powered on VMs and vSphere services on the host.
|
||||
- mem.swap.target.HOST Target size (in kB) for the virtual machine swap file. The VMkernel manages swapping by comparing swaptarget against swapped.
|
||||
- mem.swap.readrate.HOST Rate (in kB/s) at which memory is swapped from disk into active memory during the interval. This counter applies to virtual machines and is generally more useful than the swapin counter to determine if the virtual machine is running slow due to swapping, especially when looking at real-time statistics.
|
||||
- mem.swap.writerate.HOST Rate (in kB/s) at which memory is being swapped from active memory to disk during the current interval. This counter applies to virtual machines and is generally more useful than the swapout counter to determine if the virtual machine is running slow due to swapping, especially when looking at real-time statistics.
|
||||
|
||||
=over 8
|
||||
|
||||
=item B<--add-rates>
|
||||
|
||||
Add counters related to swap read and write rates.
|
||||
This option is implicitly enabled if thresholds related to rates are set.
|
||||
|
||||
=item B<--warning-read-rate-bps>
|
||||
|
||||
Threshold in bytes per second.
|
||||
|
||||
=item B<--critical-read-rate-bps>
|
||||
|
||||
Threshold in bytes per second.
|
||||
|
||||
=item B<--warning-usage-bytes>
|
||||
|
||||
Threshold in B.
|
||||
|
||||
=item B<--critical-usage-bytes>
|
||||
|
||||
Threshold in B.
|
||||
|
||||
=item B<--warning-usage-prct>
|
||||
|
||||
Threshold in percentage.
|
||||
|
||||
=item B<--critical-usage-prct>
|
||||
|
||||
Threshold in percentage.
|
||||
|
||||
=item B<--warning-write-rate-bps>
|
||||
|
||||
Threshold in bytes per second.
|
||||
|
||||
=item B<--critical-write-rate-bps>
|
||||
|
||||
Threshold in bytes per second.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
@ -33,9 +33,12 @@ sub new {
|
||||
$self->{modes} = {
|
||||
'cpu' => 'apps::vmware::vsphere8::esx::mode::cpu',
|
||||
'discovery' => 'apps::vmware::vsphere8::esx::mode::discovery',
|
||||
'disk-io' => 'apps::vmware::vsphere8::esx::mode::diskio',
|
||||
'host-status' => 'apps::vmware::vsphere8::esx::mode::hoststatus',
|
||||
'memory' => 'apps::vmware::vsphere8::esx::mode::memory',
|
||||
'network' => 'apps::vmware::vsphere8::esx::mode::network',
|
||||
'power' => 'apps::vmware::vsphere8::esx::mode::power',
|
||||
'swap' => 'apps::vmware::vsphere8::esx::mode::swap',
|
||||
};
|
||||
|
||||
$self->{custom_modes}->{api} = 'apps::vmware::vsphere8::custom::api';
|
||||
|
@ -28,19 +28,19 @@ Cpu with curl ${tc}
|
||||
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||
|
||||
Examples: tc extraoptions expected_result --
|
||||
... 1 ${EMPTY} OK: usage-percentage : skipped (no value(s)), usage-frequency : skipped (no value(s)) - no data for host host-22 counter cpu.capacity.provisioned.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||
... 3 --add-contention OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100
|
||||
... 4 --add-demand OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average demand is 8.36 %, demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||
... 5 --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||
... 6 --add-contention --add-demand --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % - CPU average demand is 8.36 %, demand frequency is 4201 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||
... 7 --warning-usage-percentage=5 WARNING: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;0:5;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||
... 8 --critical-usage-percentage=5 CRITICAL: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;;0:5;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||
... 9 --warning-usage-frequency=5 WARNING: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;0:5;;;50280000
|
||||
... 10 --critical-usage-frequency=5 CRITICAL: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;0:5;;50280000
|
||||
... 11 --warning-demand-percentage=5 WARNING: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;0:5;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||
... 12 --critical-demand-percentage=5 CRITICAL: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;0:5;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||
... 13 --warning-demand-frequency=5 WARNING: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;0:5;;;50280000
|
||||
... 14 --critical-demand-frequency=5 CRITICAL: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;0:5;;50280000
|
||||
... 15 --warning-contention-percentage=5: WARNING: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;5:;;0;100
|
||||
... 16 --critical-contention-percentage=5: CRITICAL: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;5:;0;100
|
||||
... 1 ${EMPTY} OK: usage-prct : skipped (no value(s)), usage-frequency : skipped (no value(s)) - no data for host host-22 counter cpu.capacity.provisioned.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000
|
||||
... 3 --add-contention OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100
|
||||
... 4 --add-demand OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average demand is 8.36 %, demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;;0;50280000
|
||||
... 5 --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||
... 6 --add-contention --add-demand --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % - CPU average demand is 8.36 %, demand frequency is 4201 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100 'cpu.capacity.demand.percentage'=8.3552108194113%;;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;;0;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||
... 7 --warning-usage-prct=5 WARNING: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;0:5;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000
|
||||
... 8 --critical-usage-prct=5 CRITICAL: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;;0:5;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000
|
||||
... 9 --warning-usage-frequency=5 WARNING: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;0:5;;0;50280000
|
||||
... 10 --critical-usage-frequency=5 CRITICAL: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;0:5;0;50280000
|
||||
... 11 --warning-demand-prct=5 WARNING: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;0:5;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;;0;50280000
|
||||
... 12 --critical-demand-prct=5 CRITICAL: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;;0:5;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;;0;50280000
|
||||
... 13 --warning-demand-frequency=5 WARNING: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;0:5;;0;50280000
|
||||
... 14 --critical-demand-frequency=5 CRITICAL: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;0:5;0;50280000
|
||||
... 15 --warning-contention-prct=5: WARNING: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.contention.percentage'=0.55%;5:;;0;100
|
||||
... 16 --critical-contention-prct=5: CRITICAL: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.contention.percentage'=0.55%;;5:;0;100
|
||||
|
@ -28,19 +28,19 @@ Cpu with lwp ${tc}
|
||||
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||
|
||||
Examples: tc extraoptions expected_result --
|
||||
... 1 ${EMPTY} OK: usage-percentage : skipped (no value(s)), usage-frequency : skipped (no value(s)) - no data for host host-22 counter cpu.capacity.provisioned.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||
... 3 --add-contention OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100
|
||||
... 4 --add-demand OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average demand is 8.36 %, demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||
... 5 --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||
... 6 --add-contention --add-demand --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % - CPU average demand is 8.36 %, demand frequency is 4201 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||
... 7 --warning-usage-percentage=5 WARNING: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;0:5;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||
... 8 --critical-usage-percentage=5 CRITICAL: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;;0:5;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000
|
||||
... 9 --warning-usage-frequency=5 WARNING: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;0:5;;;50280000
|
||||
... 10 --critical-usage-frequency=5 CRITICAL: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;0:5;;50280000
|
||||
... 11 --warning-demand-percentage=5 WARNING: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;0:5;;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||
... 12 --critical-demand-percentage=5 CRITICAL: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;0:5;; 'cpu.capacity.demand.hertz'=4201000Hz;;;;50280000
|
||||
... 13 --warning-demand-frequency=5 WARNING: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;0:5;;;50280000
|
||||
... 14 --critical-demand-frequency=5 CRITICAL: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.demand.percentage'=8.3552108194113;;;; 'cpu.capacity.demand.hertz'=4201000Hz;;0:5;;50280000
|
||||
... 15 --warning-contention-percentage=5: WARNING: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;5:;;0;100
|
||||
... 16 --critical-contention-percentage=5: CRITICAL: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;;50280000 'cpu.capacity.contention.percentage'=0.55%;;5:;0;100
|
||||
... 1 ${EMPTY} OK: usage-prct : skipped (no value(s)), usage-frequency : skipped (no value(s)) - no data for host host-22 counter cpu.capacity.provisioned.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000
|
||||
... 3 --add-contention OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100
|
||||
... 4 --add-demand OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average demand is 8.36 %, demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;;0;50280000
|
||||
... 5 --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||
... 6 --add-contention --add-demand --add-corecount OK: CPU average usage is 9.16 %, used frequency is 4603.44 kHz - CPU average contention is 0.55 % - CPU average demand is 8.36 %, demand frequency is 4201 kHz - CPU cores used: 83 | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.contention.percentage'=0.55%;;;0;100 'cpu.capacity.demand.percentage'=8.3552108194113%;;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;;0;50280000 'cpu.corecount.usage.count'=83;;;;
|
||||
... 7 --warning-usage-prct=5 WARNING: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;0:5;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000
|
||||
... 8 --critical-usage-prct=5 CRITICAL: CPU average usage is 9.16 % | 'cpu.capacity.usage.percentage'=9.16%;;0:5;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000
|
||||
... 9 --warning-usage-frequency=5 WARNING: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;0:5;;0;50280000
|
||||
... 10 --critical-usage-frequency=5 CRITICAL: used frequency is 4603.44 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;0:5;0;50280000
|
||||
... 11 --warning-demand-prct=5 WARNING: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;0:5;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;;0;50280000
|
||||
... 12 --critical-demand-prct=5 CRITICAL: CPU average demand is 8.36 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;;0:5;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;;0;50280000
|
||||
... 13 --warning-demand-frequency=5 WARNING: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;0:5;;0;50280000
|
||||
... 14 --critical-demand-frequency=5 CRITICAL: demand frequency is 4201 kHz | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.demand.percentage'=8.3552108194113%;;;0;100 'cpu.capacity.demand.hertz'=4201000Hz;;0:5;0;50280000
|
||||
... 15 --warning-contention-prct=5: WARNING: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.contention.percentage'=0.55%;5:;;0;100
|
||||
... 16 --critical-contention-prct=5: CRITICAL: CPU average contention is 0.55 % | 'cpu.capacity.usage.percentage'=9.16%;;;0;100 'cpu.capacity.usage.hertz'=4603440Hz;;;0;50280000 'cpu.capacity.contention.percentage'=0.55%;;5:;0;100
|
||||
|
36
tests/apps/vmware/vsphere8/esx/diskio.robot
Normal file
36
tests/apps/vmware/vsphere8/esx/diskio.robot
Normal file
@ -0,0 +1,36 @@
|
||||
*** Settings ***
|
||||
|
||||
|
||||
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||
|
||||
Suite Setup Start Mockoon ${MOCKOON_JSON}
|
||||
Suite Teardown Stop Mockoon
|
||||
Test Timeout 120s
|
||||
Test Setup Ctn Cleanup Cache
|
||||
|
||||
*** Variables ***
|
||||
${MOCKOON_JSON} ${CURDIR}${/}vmware8-restapi.mockoon.json
|
||||
|
||||
${CMD} ${CENTREON_PLUGINS} --plugin=apps::vmware::vsphere8::esx::plugin
|
||||
... --mode=disk-io
|
||||
... --password=C3POR2P2
|
||||
... --username=obi-wan
|
||||
... --hostname=127.0.0.1
|
||||
... --proto=http
|
||||
... --port=3000
|
||||
... --esx-id=host-22
|
||||
|
||||
*** Test Cases ***
|
||||
Disk-Io ${tc}
|
||||
[Tags] apps api vmware vsphere8 esx
|
||||
${command} Catenate ${CMD} ${extraoptions}
|
||||
|
||||
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||
|
||||
Examples: tc extraoptions expected_result --
|
||||
... 1 ${EMPTY} OK: usage-bps : skipped (no value(s)), contention-ms : skipped (no value(s)) - no data for host host-22 counter disk.throughput.usage.HOST at the moment. - no data for host host-22 counter disk.throughput.contention.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: Disk throughput usage: 125.88 MB/s, Disk throughput contention is 0.19 ms | 'disk.throughput.usage.bytespersecond'=131992094.72Bps;;;; 'disk.throughput.contention.milliseconds'=0.19ms;;;;
|
||||
... 3 --warning-contention-ms=0:0 WARNING: Disk throughput contention is 0.19 ms | 'disk.throughput.usage.bytespersecond'=131992094.72Bps;;;; 'disk.throughput.contention.milliseconds'=0.19ms;0:0;;;
|
||||
... 4 --critical-contention-ms=0:0 CRITICAL: Disk throughput contention is 0.19 ms | 'disk.throughput.usage.bytespersecond'=131992094.72Bps;;;; 'disk.throughput.contention.milliseconds'=0.19ms;;0:0;;
|
||||
... 5 --warning-usage-bps=0:0 WARNING: Disk throughput usage: 125.88 MB/s | 'disk.throughput.usage.bytespersecond'=131992094.72Bps;0:0;;; 'disk.throughput.contention.milliseconds'=0.19ms;;;;
|
||||
... 6 --critical-usage-bps=0:0 CRITICAL: Disk throughput usage: 125.88 MB/s | 'disk.throughput.usage.bytespersecond'=131992094.72Bps;;0:0;; 'disk.throughput.contention.milliseconds'=0.19ms;;;;
|
@ -28,9 +28,9 @@ Memory ${tc}
|
||||
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||
|
||||
Examples: tc extraoptions expected_result --
|
||||
... 1 ${EMPTY} OK: vms-usage-percentage : skipped (no value(s)) - vms-usage-bytes : skipped (no value(s)) - no data for host host-22 counter mem.capacity.usable.HOST at the moment.
|
||||
... 1 ${EMPTY} OK: usage-prct : skipped (no value(s)) - usage-bytes : skipped (no value(s)) - no data for host host-22 counter mem.capacity.usable.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: 39% of usable memory is used by VMs - Memory used: 100.02 GB used - Usable: 253.97 GB | 'vms.memory.usage.percentage'=39.38%;;;0;100 'vms.memory.usage.bytes'=107400208056B;;;;272694090137
|
||||
... 3 --warning-vms-usage-percentage=0:0 WARNING: 39% of usable memory is used by VMs | 'vms.memory.usage.percentage'=39.38%;0:0;;0;100 'vms.memory.usage.bytes'=107400208056B;;;;272694090137
|
||||
... 4 --critical-vms-usage-percentage=0:0 CRITICAL: 39% of usable memory is used by VMs | 'vms.memory.usage.percentage'=39.38%;;0:0;0;100 'vms.memory.usage.bytes'=107400208056B;;;;272694090137
|
||||
... 5 --warning-vms-usage-bytes=0:0 WARNING: Memory used: 100.02 GB used - Usable: 253.97 GB | 'vms.memory.usage.percentage'=39.38%;;;0;100 'vms.memory.usage.bytes'=107400208056B;0:0;;;272694090137
|
||||
... 6 --critical-vms-usage-bytes=0:0 CRITICAL: Memory used: 100.02 GB used - Usable: 253.97 GB | 'vms.memory.usage.percentage'=39.38%;;;0;100 'vms.memory.usage.bytes'=107400208056B;;0:0;;272694090137
|
||||
... 3 --warning-usage-prct=0:0 WARNING: 39% of usable memory is used by VMs | 'vms.memory.usage.percentage'=39.38%;0:0;;0;100 'vms.memory.usage.bytes'=107400208056B;;;;272694090137
|
||||
... 4 --critical-usage-prct=0:0 CRITICAL: 39% of usable memory is used by VMs | 'vms.memory.usage.percentage'=39.38%;;0:0;0;100 'vms.memory.usage.bytes'=107400208056B;;;;272694090137
|
||||
... 5 --warning-usage-bytes=0:0 WARNING: Memory used: 100.02 GB used - Usable: 253.97 GB | 'vms.memory.usage.percentage'=39.38%;;;0;100 'vms.memory.usage.bytes'=107400208056B;0:0;;;272694090137
|
||||
... 6 --critical-usage-bytes=0:0 CRITICAL: Memory used: 100.02 GB used - Usable: 253.97 GB | 'vms.memory.usage.percentage'=39.38%;;;0;100 'vms.memory.usage.bytes'=107400208056B;;0:0;;272694090137
|
||||
|
39
tests/apps/vmware/vsphere8/esx/network.robot
Normal file
39
tests/apps/vmware/vsphere8/esx/network.robot
Normal file
@ -0,0 +1,39 @@
|
||||
*** Settings ***
|
||||
|
||||
|
||||
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||
|
||||
Suite Setup Start Mockoon ${MOCKOON_JSON}
|
||||
Suite Teardown Stop Mockoon
|
||||
Test Timeout 120s
|
||||
Test Setup Ctn Cleanup Cache
|
||||
|
||||
*** Variables ***
|
||||
${MOCKOON_JSON} ${CURDIR}${/}vmware8-restapi.mockoon.json
|
||||
|
||||
${CMD} ${CENTREON_PLUGINS} --plugin=apps::vmware::vsphere8::esx::plugin
|
||||
... --mode=network
|
||||
... --password=C3POR2P2
|
||||
... --username=obi-wan
|
||||
... --hostname=127.0.0.1
|
||||
... --proto=http
|
||||
... --port=3000
|
||||
... --esx-id=host-22
|
||||
|
||||
*** Test Cases ***
|
||||
Network ${tc}
|
||||
[Tags] apps api vmware vsphere8 esx
|
||||
${command} Catenate ${CMD} ${extraoptions}
|
||||
|
||||
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||
|
||||
Examples: tc extraoptions expected_result --
|
||||
... 1 ${EMPTY} OK: usage-bps : skipped (no value(s)), usage-prct : skipped (no value(s)) - no data for host host-22 counter net.throughput.usable.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: Network throughput usage: 184.96 KB/s of 953.67 MB/s usable, 0.02% of usable network throughput used | 'network.throughput.usage.bytespersecond'=189399.04Bps;;;0;1000000000 'network.throughput.usage.percent'=0.018939904%;;;0;100
|
||||
... 3 --warning-contention-count=1:1 WARNING: 0 packet(s) dropped | 'network.throughput.usage.bytespersecond'=189399.04Bps;;;0;1000000000 'network.throughput.usage.percent'=0.018939904%;;;0;100 'network.throughput.contention.count'=0;1:1;;;
|
||||
... 4 --critical-contention-count=1:1 CRITICAL: 0 packet(s) dropped | 'network.throughput.usage.bytespersecond'=189399.04Bps;;;0;1000000000 'network.throughput.usage.percent'=0.018939904%;;;0;100 'network.throughput.contention.count'=0;;1:1;;
|
||||
... 5 --warning-usage-bps=1:1 WARNING: Network throughput usage: 184.96 KB/s of 953.67 MB/s usable | 'network.throughput.usage.bytespersecond'=189399.04Bps;1:1;;0;1000000000 'network.throughput.usage.percent'=0.018939904%;;;0;100
|
||||
... 6 --critical-usage-bps=1:1 CRITICAL: Network throughput usage: 184.96 KB/s of 953.67 MB/s usable | 'network.throughput.usage.bytespersecond'=189399.04Bps;;1:1;0;1000000000 'network.throughput.usage.percent'=0.018939904%;;;0;100
|
||||
... 7 --warning-usage-prct=1:1 WARNING: 0.02% of usable network throughput used | 'network.throughput.usage.bytespersecond'=189399.04Bps;;;0;1000000000 'network.throughput.usage.percent'=0.018939904%;1:1;;0;100
|
||||
... 8 --critical-usage-prct=1:1 CRITICAL: 0.02% of usable network throughput used | 'network.throughput.usage.bytespersecond'=189399.04Bps;;;0;1000000000 'network.throughput.usage.percent'=0.018939904%;;1:1;0;100
|
||||
|
@ -27,8 +27,8 @@ Power ${tc}
|
||||
|
||||
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||
|
||||
Examples: tc extraoptions expected_result --
|
||||
... 1 ${EMPTY} OK: power-usage-watts : skipped (no value(s)) - no data for host host-22 counter power.capacity.usage.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: Power usage is 200 Watts | 'power.capacity.usage.watts'=200W;;;;
|
||||
... 3 --warning-power-usage-watts=0:0 WARNING: Power usage is 200 Watts | 'power.capacity.usage.watts'=200W;0:0;;;
|
||||
... 4 --critical-power-usage-watts=0:0 CRITICAL: Power usage is 200 Watts | 'power.capacity.usage.watts'=200W;;0:0;;
|
||||
Examples: tc extraoptions expected_result --
|
||||
... 1 ${EMPTY} OK: usage-watts : skipped (no value(s)) - no data for host host-22 counter power.capacity.usage.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: Power usage is 200 Watts | 'power.capacity.usage.watts'=200W;;;0;
|
||||
... 3 --warning-usage-watts=0:0 WARNING: Power usage is 200 Watts | 'power.capacity.usage.watts'=200W;0:0;;0;
|
||||
... 4 --critical-usage-watts=0:0 CRITICAL: Power usage is 200 Watts | 'power.capacity.usage.watts'=200W;;0:0;0;
|
||||
|
41
tests/apps/vmware/vsphere8/esx/swap.robot
Normal file
41
tests/apps/vmware/vsphere8/esx/swap.robot
Normal file
@ -0,0 +1,41 @@
|
||||
*** Settings ***
|
||||
|
||||
|
||||
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource
|
||||
|
||||
Suite Setup Start Mockoon ${MOCKOON_JSON}
|
||||
Suite Teardown Stop Mockoon
|
||||
Test Timeout 120s
|
||||
Test Setup Ctn Cleanup Cache
|
||||
|
||||
*** Variables ***
|
||||
${MOCKOON_JSON} ${CURDIR}${/}vmware8-restapi.mockoon.json
|
||||
|
||||
${CMD} ${CENTREON_PLUGINS} --plugin=apps::vmware::vsphere8::esx::plugin
|
||||
... --mode=swap
|
||||
... --password=C3POR2P2
|
||||
... --username=obi-wan
|
||||
... --hostname=127.0.0.1
|
||||
... --proto=http
|
||||
... --port=3000
|
||||
... --esx-id=host-22
|
||||
|
||||
*** Test Cases ***
|
||||
Swap ${tc}
|
||||
[Tags] apps api vmware vsphere8 esx
|
||||
${command} Catenate ${CMD} --http-backend=curl ${extraoptions}
|
||||
|
||||
Ctn Run Command And Check Result As Strings ${command} ${expected_result}
|
||||
|
||||
Examples: tc extraoptions expected_result --
|
||||
... 1 ${EMPTY} OK: usage-bytes : skipped (no value(s)), usage-prct : skipped (no value(s)) - no data for host host-22 counter mem.swap.current.HOST at the moment.
|
||||
... 2 ${EMPTY} OK: Swap usage: 120.56 MB (max available is 1.00 TB), Percent used: 0.01% | 'swap.usage.bytes'=126419660.8B;;;;1099511627776 'swap.usage.percent'=0.0114978011697531%;;;0;100
|
||||
... 3 --add-rates OK: Swap usage: 120.56 MB (max available is 1.00 TB), Percent used: 0.01% - Swap read rate is: 6.39 MB/s, Swap write rate is: 1.21 MB/s | 'swap.usage.bytes'=126419660.8B;;;;1099511627776 'swap.usage.percent'=0.0114978011697531%;;;0;100 'swap.read-rate.bytespersecond'=6700236.8Bps;;;; 'swap.write-rate.bytespersecond'=1264128Bps;;;;
|
||||
... 4 --warning-read-rate-bps=1 WARNING: Swap read rate is: 6.39 MB/s | 'swap.usage.bytes'=126419660.8B;;;;1099511627776 'swap.usage.percent'=0.0114978011697531%;;;0;100 'swap.read-rate.bytespersecond'=6700236.8Bps;0:1;;; 'swap.write-rate.bytespersecond'=1264128Bps;;;;
|
||||
... 5 --critical-read-rate-bps=1 CRITICAL: Swap read rate is: 6.39 MB/s | 'swap.usage.bytes'=126419660.8B;;;;1099511627776 'swap.usage.percent'=0.0114978011697531%;;;0;100 'swap.read-rate.bytespersecond'=6700236.8Bps;;0:1;; 'swap.write-rate.bytespersecond'=1264128Bps;;;;
|
||||
... 6 --warning-write-rate-bps=1 WARNING: Swap write rate is: 1.21 MB/s | 'swap.usage.bytes'=126419660.8B;;;;1099511627776 'swap.usage.percent'=0.0114978011697531%;;;0;100 'swap.read-rate.bytespersecond'=6700236.8Bps;;;; 'swap.write-rate.bytespersecond'=1264128Bps;0:1;;;
|
||||
... 7 --critical-write-rate-bps=1 CRITICAL: Swap write rate is: 1.21 MB/s | 'swap.usage.bytes'=126419660.8B;;;;1099511627776 'swap.usage.percent'=0.0114978011697531%;;;0;100 'swap.read-rate.bytespersecond'=6700236.8Bps;;;; 'swap.write-rate.bytespersecond'=1264128Bps;;0:1;;
|
||||
... 8 --warning-usage-bytes=1 WARNING: Swap usage: 120.56 MB (max available is 1.00 TB) | 'swap.usage.bytes'=126419660.8B;0:1;;;1099511627776 'swap.usage.percent'=0.0114978011697531%;;;0;100
|
||||
... 9 --critical-usage-bytes=1 CRITICAL: Swap usage: 120.56 MB (max available is 1.00 TB) | 'swap.usage.bytes'=126419660.8B;;0:1;;1099511627776 'swap.usage.percent'=0.0114978011697531%;;;0;100
|
||||
... 10 --warning-usage-prct=1: WARNING: Percent used: 0.01% | 'swap.usage.bytes'=126419660.8B;;;;1099511627776 'swap.usage.percent'=0.0114978011697531%;1:;;0;100
|
||||
... 11 --critical-usage-prct=1: CRITICAL: Percent used: 0.01% | 'swap.usage.bytes'=126419660.8B;;;;1099511627776 'swap.usage.percent'=0.0114978011697531%;;1:;0;100
|
@ -287,7 +287,7 @@
|
||||
"body": "{\n \"data_points\": []\n}\n",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "no data",
|
||||
"headers": [
|
||||
{
|
||||
"key": "access-control-allow-headers",
|
||||
@ -339,7 +339,7 @@
|
||||
"body": "{\"data_points\":[{\"val\":50280.0,\"mid\":\"-4283477827978228727\",\"rid\":\"102\",\"cid\":\"cpu.capacity.provisioned.HOST\",\"ts\":1739271090},{\"val\":50280.0,\"mid\":\"-4283477827978228727\",\"rid\":\"102\",\"cid\":\"cpu.capacity.provisioned.HOST\",\"ts\":1739271150},{\"val\":50280.0,\"mid\":\"-4283477827978228727\",\"rid\":\"102\",\"cid\":\"cpu.capacity.provisioned.HOST\",\"ts\":1739271210}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "cpu.capacity.provisioned.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -373,7 +373,7 @@
|
||||
"body": " {\"data_points\":[{\"val\":3572.68,\"mid\":\"-5138147526746009769\",\"rid\":\"102\",\"cid\":\"cpu.capacity.usage.HOST\",\"ts\":1739271090},{\"val\":3732.93,\"mid\":\"-5138147526746009769\",\"rid\":\"102\",\"cid\":\"cpu.capacity.usage.HOST\",\"ts\":1739271150},{\"val\":4603.44,\"mid\":\"-5138147526746009769\",\"rid\":\"102\",\"cid\":\"cpu.capacity.usage.HOST\",\"ts\":1739271210}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "cpu.capacity.usage.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -407,7 +407,7 @@
|
||||
"body": "{\"data_points\":[{\"val\":3494.0,\"mid\":\"-9094858043316143888\",\"rid\":\"102\",\"cid\":\"cpu.capacity.demand.HOST\",\"ts\":1739271090},{\"val\":3258.0,\"mid\":\"-9094858043316143888\",\"rid\":\"102\",\"cid\":\"cpu.capacity.demand.HOST\",\"ts\":1739271150},{\"val\":4201.0,\"mid\":\"-9094858043316143888\",\"rid\":\"102\",\"cid\":\"cpu.capacity.demand.HOST\",\"ts\":1739271210}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "cpu.capacity.demand.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -434,7 +434,7 @@
|
||||
"body": "{\"data_points\":[{\"val\":0.57,\"mid\":\"-1713180257827098203\",\"rid\":\"102\",\"cid\":\"cpu.capacity.contention.HOST\",\"ts\":1739271090},{\"val\":0.59,\"mid\":\"-1713180257827098203\",\"rid\":\"102\",\"cid\":\"cpu.capacity.contention.HOST\",\"ts\":1739271150},{\"val\":0.55,\"mid\":\"-1713180257827098203\",\"rid\":\"102\",\"cid\":\"cpu.capacity.contention.HOST\",\"ts\":1739271210}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "cpu.capacity.contention.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -461,7 +461,7 @@
|
||||
"body": "{\"data_points\":[{\"val\":24.0,\"mid\":\"7871225830587267191\",\"rid\":\"102\",\"cid\":\"cpu.corecount.provisioned.HOST\",\"ts\":1739271090},{\"val\":24.0,\"mid\":\"7871225830587267191\",\"rid\":\"102\",\"cid\":\"cpu.corecount.provisioned.HOST\",\"ts\":1739271150},{\"val\":24.0,\"mid\":\"7871225830587267191\",\"rid\":\"102\",\"cid\":\"cpu.corecount.provisioned.HOST\",\"ts\":1739271210}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "cpu.corecount.provisioned.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -488,7 +488,7 @@
|
||||
"body": "{\"data_points\":[{\"val\":83.0,\"mid\":\"-8703878081681686712\",\"rid\":\"102\",\"cid\":\"cpu.corecount.usage.HOST\",\"ts\":1739271090},{\"val\":83.0,\"mid\":\"-8703878081681686712\",\"rid\":\"102\",\"cid\":\"cpu.corecount.usage.HOST\",\"ts\":1739271150},{\"val\":83.0,\"mid\":\"-8703878081681686712\",\"rid\":\"102\",\"cid\":\"cpu.corecount.usage.HOST\",\"ts\":1739271210}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "cpu.corecount.usage.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -515,7 +515,7 @@
|
||||
"body": "{\"data_points\":[{\"val\":0.0,\"mid\":\"3949316748863634779\",\"rid\":\"102\",\"cid\":\"cpu.corecount.contention.HOST\",\"ts\":1739271090},{\"val\":0.0,\"mid\":\"3949316748863634779\",\"rid\":\"102\",\"cid\":\"cpu.corecount.contention.HOST\",\"ts\":1739271150},{\"val\":0.0,\"mid\":\"3949316748863634779\",\"rid\":\"102\",\"cid\":\"cpu.corecount.contention.HOST\",\"ts\":1739271210}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "cpu.corecount.contention.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -542,7 +542,7 @@
|
||||
"body": "{\"data_points\":[{\"val\":260061.38,\"mid\":\"7912217246818631397\",\"rid\":\"102\",\"cid\":\"mem.capacity.usable.HOST\",\"ts\":1740039750},{\"val\":260061.35,\"mid\":\"7912217246818631397\",\"rid\":\"102\",\"cid\":\"mem.capacity.usable.HOST\",\"ts\":1740039810}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "mem.capacity.usable.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -569,7 +569,7 @@
|
||||
"body": "{\"data_points\":[{\"val\":102424.82,\"mid\":\"-6907936868309351765\",\"rid\":\"102\",\"cid\":\"mem.consumed.vms.HOST\",\"ts\":1740039750},{\"val\":102424.82,\"mid\":\"-6907936868309351765\",\"rid\":\"102\",\"cid\":\"mem.consumed.vms.HOST\",\"ts\":1740039810}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "mem.consumed.vms.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -596,7 +596,7 @@
|
||||
"body": "{\"data_points\":[{\"val\":206.0,\"mid\":\"8446910325652763598\",\"rid\":\"102\",\"cid\":\"power.capacity.usage.HOST\",\"ts\":1740152385},{\"val\":200.0,\"mid\":\"8446910325652763598\",\"rid\":\"102\",\"cid\":\"power.capacity.usage.HOST\",\"ts\":1740152445},{\"val\":200.0,\"mid\":\"8446910325652763598\",\"rid\":\"102\",\"cid\":\"power.capacity.usage.HOST\",\"ts\":1740152505}]}\n",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "",
|
||||
"label": "power.capacity.usage.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
@ -617,6 +617,263 @@
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
},
|
||||
{
|
||||
"uuid": "4e2245ea-f82b-45d5-8061-6871a48ba52e",
|
||||
"body": "{\"data_points\":[{\"val\":6543.2,\"mid\":\"-589925797652405914\",\"rid\":\"102\",\"cid\":\"mem.swap.writerate.HOST\",\"ts\":1741942492},{\"val\":4567.8,\"mid\":\"-589925797652405914\",\"rid\":\"102\",\"cid\":\"mem.swap.writerate.HOST\",\"ts\":1741942552},{\"val\":1234.5,\"mid\":\"-589925797652405914\",\"rid\":\"102\",\"cid\":\"mem.swap.writerate.HOST\",\"ts\":1741942612}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "mem.swap.writerate.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
"databucketID": "",
|
||||
"sendFileAsBody": false,
|
||||
"rules": [
|
||||
{
|
||||
"target": "query",
|
||||
"modifier": "cid",
|
||||
"value": "mem.swap.writerate.HOST",
|
||||
"invert": false,
|
||||
"operator": "equals"
|
||||
}
|
||||
],
|
||||
"rulesOperator": "OR",
|
||||
"disableTemplating": false,
|
||||
"fallbackTo404": false,
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
},
|
||||
{
|
||||
"uuid": "5c337e11-a16a-4448-bd57-a60ac2065c7a",
|
||||
"body": "{\"data_points\":[{\"val\":123,\"mid\":\"-8403556557442245906\",\"rid\":\"102\",\"cid\":\"mem.swap.readrate.HOST\",\"ts\":1741942492},{\"val\":234,\"mid\":\"-8403556557442245906\",\"rid\":\"102\",\"cid\":\"mem.swap.readrate.HOST\",\"ts\":1741942552},{\"val\":6543.2,\"mid\":\"-8403556557442245906\",\"rid\":\"102\",\"cid\":\"mem.swap.readrate.HOST\",\"ts\":1741942612}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "mem.swap.readrate.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
"databucketID": "",
|
||||
"sendFileAsBody": false,
|
||||
"rules": [
|
||||
{
|
||||
"target": "query",
|
||||
"modifier": "cid",
|
||||
"value": "mem.swap.readrate.HOST",
|
||||
"invert": false,
|
||||
"operator": "equals"
|
||||
}
|
||||
],
|
||||
"rulesOperator": "OR",
|
||||
"disableTemplating": false,
|
||||
"fallbackTo404": false,
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
},
|
||||
{
|
||||
"uuid": "78891a5e-0a0e-445e-971a-4115156f9934",
|
||||
"body": "{\"data_points\":[{\"val\":0.0,\"mid\":\"3029207848778654425\",\"rid\":\"102\",\"cid\":\"mem.swap.target.HOST\",\"ts\":1741942492},{\"val\":0.0,\"mid\":\"3029207848778654425\",\"rid\":\"102\",\"cid\":\"mem.swap.target.HOST\",\"ts\":1741942552},{\"val\":1073741824,\"mid\":\"3029207848778654425\",\"rid\":\"102\",\"cid\":\"mem.swap.target.HOST\",\"ts\":1741942612}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "mem.swap.target.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
"databucketID": "",
|
||||
"sendFileAsBody": false,
|
||||
"rules": [
|
||||
{
|
||||
"target": "query",
|
||||
"modifier": "cid",
|
||||
"value": "mem.swap.target.HOST",
|
||||
"invert": false,
|
||||
"operator": "equals"
|
||||
}
|
||||
],
|
||||
"rulesOperator": "OR",
|
||||
"disableTemplating": false,
|
||||
"fallbackTo404": false,
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
},
|
||||
{
|
||||
"uuid": "0fce549f-c109-48d4-87ca-2d04f771a314",
|
||||
"body": "{\"data_points\":[{\"val\":0.0,\"mid\":\"6998864802324600231\",\"rid\":\"102\",\"cid\":\"mem.swap.current.HOST\",\"ts\":1741942492},{\"val\":0.0,\"mid\":\"6998864802324600231\",\"rid\":\"102\",\"cid\":\"mem.swap.current.HOST\",\"ts\":1741942552},{\"val\":123456.7,\"mid\":\"6998864802324600231\",\"rid\":\"102\",\"cid\":\"mem.swap.current.HOST\",\"ts\":1741942612}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "mem.swap.current.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
"databucketID": "",
|
||||
"sendFileAsBody": false,
|
||||
"rules": [
|
||||
{
|
||||
"target": "query",
|
||||
"modifier": "cid",
|
||||
"value": "mem.swap.current.HOST",
|
||||
"invert": false,
|
||||
"operator": "equals"
|
||||
}
|
||||
],
|
||||
"rulesOperator": "OR",
|
||||
"disableTemplating": false,
|
||||
"fallbackTo404": false,
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
},
|
||||
{
|
||||
"uuid": "512cd1e2-dfa8-492e-bdd3-9f44251fbd8b",
|
||||
"body": "{\"data_points\":[{\"val\":0.0,\"mid\":\"8755718609385549431\",\"rid\":\"102\",\"cid\":\"net.throughput.contention.HOST\",\"ts\":1742203312},{\"val\":0.0,\"mid\":\"8755718609385549431\",\"rid\":\"102\",\"cid\":\"net.throughput.contention.HOST\",\"ts\":1742203372},{\"val\":0.0,\"mid\":\"8755718609385549431\",\"rid\":\"102\",\"cid\":\"net.throughput.contention.HOST\",\"ts\":1742203432}]}\n",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "net.throughput.contention.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
"databucketID": "",
|
||||
"sendFileAsBody": false,
|
||||
"rules": [
|
||||
{
|
||||
"target": "query",
|
||||
"modifier": "cid",
|
||||
"value": "net.throughput.contention.HOST",
|
||||
"invert": false,
|
||||
"operator": "equals"
|
||||
}
|
||||
],
|
||||
"rulesOperator": "OR",
|
||||
"disableTemplating": false,
|
||||
"fallbackTo404": false,
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
},
|
||||
{
|
||||
"uuid": "7ebc4844-5c76-4dfb-927b-357474424de3",
|
||||
"body": "{\"data_points\":[{\"val\":0.19,\"mid\":\"-1677800232533818921\",\"rid\":\"102\",\"cid\":\"disk.throughput.contention.HOST\",\"ts\":1742207632},{\"val\":0.18,\"mid\":\"-1677800232533818921\",\"rid\":\"102\",\"cid\":\"disk.throughput.contention.HOST\",\"ts\":1742207692},{\"val\":0.19,\"mid\":\"-1677800232533818921\",\"rid\":\"102\",\"cid\":\"disk.throughput.contention.HOST\",\"ts\":1742207752}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "disk.throughput.contention.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
"databucketID": "",
|
||||
"sendFileAsBody": false,
|
||||
"rules": [
|
||||
{
|
||||
"target": "query",
|
||||
"modifier": "cid",
|
||||
"value": "disk.throughput.contention.HOST",
|
||||
"invert": false,
|
||||
"operator": "equals"
|
||||
},
|
||||
{
|
||||
"target": "request_number",
|
||||
"modifier": "",
|
||||
"value": "1",
|
||||
"invert": true,
|
||||
"operator": "equals"
|
||||
},
|
||||
{
|
||||
"target": "request_number",
|
||||
"modifier": "",
|
||||
"value": "2",
|
||||
"invert": true,
|
||||
"operator": "equals"
|
||||
}
|
||||
],
|
||||
"rulesOperator": "AND",
|
||||
"disableTemplating": false,
|
||||
"fallbackTo404": false,
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
},
|
||||
{
|
||||
"uuid": "22c4ca77-fd52-4fd5-9f3e-a4c8645a21a9",
|
||||
"body": "{\"data_points\":[{\"val\":134510.7,\"mid\":\"8548718581371976960\",\"rid\":\"102\",\"cid\":\"disk.throughput.usage.HOST\",\"ts\":1742207632},{\"val\":131375.23,\"mid\":\"8548718581371976960\",\"rid\":\"102\",\"cid\":\"disk.throughput.usage.HOST\",\"ts\":1742207692},{\"val\":128898.53,\"mid\":\"8548718581371976960\",\"rid\":\"102\",\"cid\":\"disk.throughput.usage.HOST\",\"ts\":1742207752}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "disk.throughput.usage.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
"databucketID": "",
|
||||
"sendFileAsBody": false,
|
||||
"rules": [
|
||||
{
|
||||
"target": "query",
|
||||
"modifier": "cid",
|
||||
"value": "disk.throughput.usage.HOST",
|
||||
"invert": false,
|
||||
"operator": "equals"
|
||||
}
|
||||
],
|
||||
"rulesOperator": "OR",
|
||||
"disableTemplating": false,
|
||||
"fallbackTo404": false,
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
},
|
||||
{
|
||||
"uuid": "96281380-feb2-44ab-a6b4-9a339248c0bc",
|
||||
"body": "{\"data_points\":[{\"val\":976562.5,\"mid\":\"190597475016015903\",\"rid\":\"102\",\"cid\":\"net.throughput.usable.HOST\",\"ts\":1742203312},{\"val\":976562.5,\"mid\":\"190597475016015903\",\"rid\":\"102\",\"cid\":\"net.throughput.usable.HOST\",\"ts\":1742203372},{\"val\":976562.5,\"mid\":\"190597475016015903\",\"rid\":\"102\",\"cid\":\"net.throughput.usable.HOST\",\"ts\":1742203432}]}\n\n",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "net.throughput.usable.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
"databucketID": "",
|
||||
"sendFileAsBody": false,
|
||||
"rules": [
|
||||
{
|
||||
"target": "query",
|
||||
"modifier": "cid",
|
||||
"value": "net.throughput.usable.HOST",
|
||||
"invert": false,
|
||||
"operator": "equals"
|
||||
}
|
||||
],
|
||||
"rulesOperator": "OR",
|
||||
"disableTemplating": false,
|
||||
"fallbackTo404": false,
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
},
|
||||
{
|
||||
"uuid": "02f4462c-2753-4dc8-8cdf-0b639bdc2859",
|
||||
"body": "{\"data_points\":[{\"val\":184.98,\"mid\":\"-1497422761978542845\",\"rid\":\"102\",\"cid\":\"net.throughput.usage.HOST\",\"ts\":1742203312},{\"val\":288.67,\"mid\":\"-1497422761978542845\",\"rid\":\"102\",\"cid\":\"net.throughput.usage.HOST\",\"ts\":1742203372},{\"val\":184.96,\"mid\":\"-1497422761978542845\",\"rid\":\"102\",\"cid\":\"net.throughput.usage.HOST\",\"ts\":1742203432}]}",
|
||||
"latency": 0,
|
||||
"statusCode": 200,
|
||||
"label": "net.throughput.usage.HOST",
|
||||
"headers": [],
|
||||
"bodyType": "INLINE",
|
||||
"filePath": "",
|
||||
"databucketID": "",
|
||||
"sendFileAsBody": false,
|
||||
"rules": [
|
||||
{
|
||||
"target": "query",
|
||||
"modifier": "cid",
|
||||
"value": "net.throughput.usage.HOST",
|
||||
"invert": false,
|
||||
"operator": "equals"
|
||||
}
|
||||
],
|
||||
"rulesOperator": "OR",
|
||||
"disableTemplating": false,
|
||||
"fallbackTo404": false,
|
||||
"default": false,
|
||||
"crudKey": "id",
|
||||
"callbacks": []
|
||||
}
|
||||
],
|
||||
"responseMode": null,
|
||||
|
Loading…
x
Reference in New Issue
Block a user