enh(vmware8-esx): add swap, diskio and network + tests (#5510)

This commit is contained in:
omercier 2025-03-24 14:41:16 +01:00 committed by David Boucher
parent 4e0df4ca4a
commit 4a50605c36
15 changed files with 1042 additions and 119 deletions

View File

@ -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

View 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

View File

@ -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

View 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

View File

@ -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.

View 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

View File

@ -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';

View File

@ -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

View File

@ -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

View 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;;;;

View File

@ -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

View 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

View File

@ -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;

View 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

View File

@ -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,