Great catch. I've updated the Ultimate CPU Alert (
) with this information, but for those who got here first:
You can't just select "reset when the condition is no longer true". The solution, as elaborated by Richard Letts here: Warning about custom SQL alerts (reset trigger), the reset trigger needs to be:
inner join APM_AlertsAndReportsData
on (Nodes.NodeID = APM_AlertsAndReportsData.NodeId)
INNER join (select c1.NodeID, COUNT(c1.CPUIndex) as CPUCount
from (select DISTINCT CPUMultiLoad.NodeID, CPUMultiLoad.CPUIndex
from CPUMultiLoad) c1
group by c1.NodeID) c2 on Nodes.NodeID = c2.NodeID
where
(APM_AlertsAndReportsData.ComponentName = 'Win_Processor_Queue_Len' AND APM_AlertsAndReportsData.StatisticData > c2.CPUCount)
OR nodes.CPULoad > 90
The key change here is that you want to reset when EITHER the processes are less than the number of CPU's, OR the CPU load is under the threshold