PRTG Network Monitor is an awesome product. Whenever I need a feature there it is, except perhaps this one, which has me stumped.
I have an asynchronous process that uses a queue to separate the raising of requests from the processing of them. I want to be able to monitor if the process removing items from the queue has stalled for any reason and to achieve this I monitor the number of items in the queue, exposed via WMI.
The number of items in the queue is very variable and can increase very slowly or jump dramatically; at the moment a large jump triggers an alarm because I has set a threshold on the number of items. If I raise the threshold then it could be a long time before the threshold is exceeded when the system isn't very busy and the number of items queued is quite small.
What I'd like to do is perform some sort of smoothing so that the alarm is raised only if the number of items is higher than the threshold for three or more checks, or if it continues to rise (mathematically, when the rate of change continues to be positive.)
I can't seem to find any functionality that will help. I don't think spike filtering helps because these are valid values, they are just transient.
Note that I want the sensor to record the real number of items without any alteration because that is useful history, I just don't want it to trigger an on-screen alarm immediately when the number is temporarily high.
Is there any way to achieve this?