Apr 01 2020 02:09 AM - edited Apr 01 2020 02:10 AM
Hello,
I'm trying to implement a functionality to check how many times within a span of 3 minutes, the CPU utilization was higher than 90%. I'm sampling 180 values of CPU utilization in 3 minutes, 1 per second using the following command:
$cpuUtil = (get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 1 -MaxSamples 180 | select -ExpandProperty countersamples | select -ExpandProperty cookedvalue | Measure-Object -Average).average
The above command gives me the average. How can I get a count of occurrences from this where sample value is greater than 90%?
Thanks in advance.
Apr 02 2020 12:19 AM
SolutionHello @Niraj875
by filtering the values like this:
$cpuUtil = (get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 1 -MaxSamples 180 | select -ExpandProperty countersamples | select -ExpandProperty cookedvalue |Where-Object -FilterScript { $_ -gt 90 } | Measure-Object).Count
Apr 06 2020 05:37 AM
Thank you @JoP_SG
Apr 02 2020 12:19 AM
SolutionHello @Niraj875
by filtering the values like this:
$cpuUtil = (get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 1 -MaxSamples 180 | select -ExpandProperty countersamples | select -ExpandProperty cookedvalue |Where-Object -FilterScript { $_ -gt 90 } | Measure-Object).Count