Thanks for the help LucD. I am new to Power Cli and vCenter.
I used below script, but still taking time (running for more than 90 minutes).
In one of my vCenter site, I have 1000 servers, one get-stat command for pulling CPU and Memory for one day 30 min interval taking average 40 seconds, so I believe entire result set will take more than 11 hours, which is not quite acceptable.
Can you suggest a way (is there any other way to pull data from vCenter (APIs or DB) - just guessing...
$stats = "cpu.usage.average","mem.usage.average"
$todaymidnight = (get-Date -hour 0 -minute 0 -second 0).addminutes(-1)
start $todaymidnight.adddays(-1)
get-date
$vms = Get-VM
Get-Stat -Entity $vms -Stat $stats -Start $start |
Group-Object -Property EntityId | Foreach-Object{
New-Object PSObject -Property @{
VM = $_.Group[0].Entity.Name
Date = $_.Group[0].Timestamp.Date
CPU = $_.Group | Where-Object {$_.MetricId -eq $stats[0]} |
Measure-Object -Average -Property Value |
Select -ExpandProperty Average
Memory = $_.Group | where {$_.MetricId -eq $stats[1]} |
Measure-Object -Average -Property Value |
Select -ExpandProperty Average
}
} | Select VM,Date,CPU,Memory | Export-Csv "C:\vCenter\two.csv" -NoTypeInformation -UseCulture