VMware Horizon Community
mrvijay
Contributor
Contributor

PowerShell session getting hanged while trying to retrieve HistoricalPerformanceData

I'm trying to retrieve Overall CPU and memory for each sessions using HistoricalPerformanceData. But my PowerShell session is getting hanged while trying to retrieve the data. 

Below is the code i was trying.

 

$localSessionQueryDefn = New-Object VMware.Hv.QueryDefinition
$localSessionQueryDefn.queryEntityType = 'SessionLocalSummaryView'
$localSessionQueryResults = $queryService.QueryService_Create($hvServices, $localSessionQueryDefn)

while($localSessionQueryResults.Results -ne $null) {
 
 foreach($result in $localSessionQueryResults.Results) {
  
  [VMware.Hv.SessionLocalSummaryView]$sessionLocalSummary = $result
  [VMware.Hv.HistoricalPerformanceData[]]$historicalPerfData = $hvServices.Performance.Performance_GetHistoricalPerformanceData($sessionLocalSummary.Id)
  
  $newPerfData = @()
  foreach($hpd in $historicalPerfData) {
   $newPerfData = $newPerfData += $hpd
  }
  
  $overallCPU = $newPerfData | Measure-Object -Property OverallCpu -Average
  $overallMemory = $newPerfData | Measure-Object -Property OverallMemory -Average
  
  Write-Host "OverallCpu : "([math]::Round($overallCPU.Average, 2))
  Write-Host "OverallMemory : "([math]::Round($overallMemory.Average, 2))
 }
 
 #Fetch next page
 if ($localSessionQueryResults.id -eq $null) {
  break;
 }

 $localSessionQueryResults = $queryService.QueryService_GetNext($hvServices, $localSessionQueryResults.id)
}

if($localSessionQueryResults.id -ne $null) {
 $queryService.QueryService_Delete($hvServices, $localSessionQueryResults.id)
}

 

 

Let me know if i'm doing something wrong here.

Labels (3)
Reply
0 Kudos
0 Replies