VMware Cloud Community
LeaV97
Enthusiast
Enthusiast

Get-stat from a specific time

$VMs = Get-Content C:\csv\TestPerf.txt

foreach ($vm in $VMs){

    $CPU = ""

    $Mem = ""

    $CPU = Get-Stat -Entity $vm -Stat "cpu.usagemhz.average" -MaxSamples 1 -Realtime | Where{$_.instance -eq ""}| Select-Object -ExpandProperty Value

    $Mem = Get-Stat -Entity $vm -Stat "mem.usage.average" -MaxSamples 1 -Realtime|Select-Object -ExpandProperty Value

     Write-Host $vm, $CPU, $mem

}

Is there a way to change this from realtime to yesterday at 8 am?  I'm sure it's possible I just can't figure out how.

0 Kudos
5 Replies
LucD
Leadership
Leadership

Sure, use the Start parameter and drop the Realtime switch.

$VMs = Get-Content C:\csv\TestPerf.txt

foreach ($vm in $VMs){

    $CPU = ""

    $Mem = ""

    $CPU = Get-Stat -Entity $vm -Stat "cpu.usagemhz.average" -MaxSamples 1 -Start (Get-Date -hour 8).AddDays(-1|

        Where{$_.instance -eq ""}| Select-Object -ExpandProperty Value

    $Mem = Get-Stat -Entity $vm -Stat "mem.usage.average" -MaxSamples 1  -Start (Get-Date -hour 8).AddDays(-1)|

        Select-Object -ExpandProperty Value

     Write-Host $vm, $CPU, $mem

}


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
LeaV97
Enthusiast
Enthusiast

I'm getting this as a result:

PS B:\> Get-Stat -Entity $vm -Stat "cpu.usagemhz.average" -MaxSamples 1 -Start (Get-Date -hour 8).AddDays(-1)  |

        Where{$_.instance -eq ""}

MetricId                Timestamp                          Value Unit     Instance

--------                ---------                          ----- ----     --------

cpu.usagemhz.average    8/31/2017 12:00:00 PM                377 MHz   

Any idea why it isn't pulling yesterday at 8?

0 Kudos
LucD
Leadership
Leadership

What does this return?

$date = (Get-Date -hour 8).AddDays(-1)

Get-Stat -Entity $vm -Stat "cpu.usagemhz.average" -Start $date -Finish $date


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
sahmohiuddin
Contributor
Contributor

is there a way to get CPU & MEM utilization stats only from 7am - 7pm for each day for last 7 days?

0 Kudos
LucD
Leadership
Leadership

Not directly, but you can code this.
See for example the Business hours/working days section in PowerCLI & vSphere statistics – Part 2 – Come together


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos