Quantcast
Channel: VMware Communities : All Content - vSphere Management SDK
Viewing all articles
Browse latest Browse all 1860

When I set intervalId other 20 in PerfQuerySpec api and execute api QueryPerf(querySpec => [$perfQuerySpec]) i get error

$
0
0

I am executing following piece of code to get the performance metrics. When I set intervalId other 20 in PerfQuerySpec api and execute api QueryPerf(querySpec => [$perfQuerySpec]) i get error -

A specified parameter was not correct.
querySpec.interval'

 

Need help to resolve this issue. I want to setup rollup interval as 1 hr so that we get average cpu and memeory usage of past 1 hr.

 

 

my $serviceInst = Vim::get_view (mo_ref => ManagedObjectReference->new(type => 'ServiceInstance', value => 'ServiceInstance'));

 

my $perfMgr = Vim::get_view (mo_ref => $serviceInst->content->perfManager);
my (@hosts,@metrics,%metricResults) = ();

 

my $perfCounterInfo = $perfMgr->perfCounter;
my @metricIDs ;

 

my $metric ;
my $groupInfo ;
my $nameInfo  ;
my $instance ;
my $key ;
my $rollupType ;
my $statstype ;
my $unitInfo ;
my $res;
my $unitString;
my $values;
my $metricRef;

 

#grab all counter defs
my %allCounterDefintions = ();
foreach(@$perfCounterInfo)
{
$allCounterDefintions{$_->key} = $_;
}

 

# enumerate all performance counters by their IDs
my %perfCounter = map { $_->key => $_ } @{$perfMgr->perfCounter};

 

foreach my $vm_view (@$vm_views)
{
my $vmref ;
my @vmdk ;
while (my ($key, $value) = each(%{$vm_info}))
{
my $vmname = $$vm_info{$key}{VMName};
if (defined($vmname) && $vm_view->name eq $vmname )
{
$vmref = $$vm_info{$key};
}
}
if (!$vmref)
{
next;
}
$vmref->{'averagePercentCapacityContention'} = ();
$vmref->{'cpuAveragePercentUsage'} = ();
$vmref->{'memoryAverageUsage'} = ();
if (!defined($vm_view))
{
next;
}

 

my $availmetricid = $perfMgr->QueryAvailablePerfMetric(entity => $vm_view);

 

foreach(sort {$a->counterId cmp $b->counterId} @$availmetricid)
{
if($allCounterDefintions{$_->counterId})
{
$metric = $allCounterDefintions{$_->counterId};
$groupInfo = $metric->groupInfo->key;
$nameInfo = $metric->nameInfo->key;
$instance = $_->instance;
$key = $metric->key;
$rollupType = $metric->rollupType->val;
$statstype = $metric->statsType->val;
$unitInfo = $metric->unitInfo->key;

 

#e.g. cpu.usage.average
my $vmwInternalName = $groupInfo . "." . $nameInfo . "." . $rollupType;

 

foreach(@metrics)
{
if($_ eq $vmwInternalName)
{
my $metricId = PerfMetricId->new(counterId => $key, instance => '*');
if(! grep(/^$key/,@metricIDs))
{
push @metricIDs,$metricId;
}
}
}
my $metricId = PerfMetricId->new(counterId => $key, instance => '*');
}
}

 

my $perfQuerySpec = PerfQuerySpec->new(entity => $vm_view, maxSample => 10, intervalId => 20, metricId => \@metricIDs);

 

my $metrics = $perfMgr->QueryPerf(querySpec => [$perfQuerySpec]);

Viewing all articles
Browse latest Browse all 1860

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>