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%)" } |