From fdc089a4979b1d47c04c1ae4cf67c9a03c9c85bf Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Mon, 3 Mar 2014 15:07:54 +0000 Subject: clamp duration to infinity when all rates are very low ...so that the memory monitor excludes the queue from avg duration calculations, which would otherwise get massively skewed. --- src/rabbit_variable_queue.erl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index 73e9f6b5..995c7319 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -801,8 +801,9 @@ ram_duration(State) -> RamAckCount = gb_trees:size(RPA), Duration = %% msgs+acks / (msgs+acks/sec) == sec - case (AvgEgressRate == 0 andalso AvgIngressRate == 0 andalso - AvgAckEgressRate == 0 andalso AvgAckIngressRate == 0) of + case lists:all(fun (X) -> X < 0.01 end, + [AvgEgressRate, AvgIngressRate, + AvgAckEgressRate, AvgAckIngressRate]) of true -> infinity; false -> (RamMsgCountPrev + RamMsgCount + RamAckCount + RamAckCountPrev) / -- cgit v1.2.1