Select Page

Required Files: None


Monitor CPU Queue Length, User Time, and Privileged Time – alert if over threshold.


 

Import-Module $env:SyncroModule
 
$CPUQueueLenth = (get-counter -counter "\System\Processor Queue Length").countersamples.cookedvalue 
$CPUUserTime = (get-counter -counter "\Processor(*)\% User Time").countersamples.cookedvalue
$CPUPrivTime = (get-counter -counter "\Processor(*)\% Privileged Time").countersamples.cookedvalue
 
if($CPUQueueLenth -le "20"){
  $CPUQueueHealth = "Healthy"
} else {
  $CPUQueueHealth ="The CPU Queue Length was $CPUQueueLenth for 30 minutes"
}
if($CPUUSerTime-le "98"){
  $CPUUserTimeHealth = "Healthy"
} else {
  $CPUUserTimeHealth ="The CPU User Time was $CPUUserTime for 30 minutes"
}
if($CPUPrivTime-le "98"){
  $CPUPrivTimeHealth = "Healthy"
} else {
  $CPUPrivTimeHealth ="The CPU User Time was $CPUUserTime for 30 minutes"
}
 
write-host "Queue Health: $CPUQueueLenth"
write-host "User Time Health: $CPUUSerTime"
write-host "Priviliged Time Health: $CPUPrivTime"
 
if($CPUQueueHealth -ne "Healthy"){
  Rmm-Alert -Category "cpu_queue_health" -Body "CPU Queue Health triggered $CPUQueueHealth on $(%computername%)"
} elseif ($CPUUserTimeHealth -ne "Healthy") {
  Rmm-Alert -Category "cpu_user_time_health" -Body "CPU User Time triggered $CPUUserTimeHealth on $(%computername%)"
} elseif ($CPUPrivTimeHealth -ne "Healthy"){
  Rmm-Alert -Category "cpu_privileged_time_health" -Body "CPU Privileged Time triggered $CPUPrivTimeHealth on $(%computername%)"
}