]> granicus.if.org Git - icinga2/commitdiff
ApiListener: Handle zero JSON-RPC WQs gracefully for stats
authorMichael Friedrich <michael.friedrich@icinga.com>
Fri, 26 May 2017 15:02:36 +0000 (17:02 +0200)
committerMichael Friedrich <michael.friedrich@icinga.com>
Fri, 26 May 2017 15:02:36 +0000 (17:02 +0200)
refs #5266
refs #5133

lib/remote/jsonrpcconnection.cpp

index dae89eb4cda9c84a1c8c301b4011739aeaebabab..ef8ef0d89ba9aa97e8843a93c5de99aea7957ce4 100644 (file)
@@ -349,7 +349,7 @@ int JsonRpcConnection::GetWorkQueueLength(void)
 {
        size_t itemCount = 0;
 
-       for (size_t i = 0; i < l_JsonRpcConnectionWorkQueueCount; i++) {
+       for (size_t i = 0; i < GetWorkQueueCount(); i++) {
                itemCount += l_JsonRpcConnectionWorkQueues[i].GetLength();
        }
 
@@ -359,11 +359,16 @@ int JsonRpcConnection::GetWorkQueueLength(void)
 double JsonRpcConnection::GetWorkQueueRate(void)
 {
        double rate = 0.0;
+       int count = GetWorkQueueCount();
 
-       for (size_t i = 0; i < l_JsonRpcConnectionWorkQueueCount; i++) {
+       /* If this is a standalone environment, we don't have any queues. */
+       if (count == 0)
+               return 0.0;
+
+       for (size_t i = 0; i < count; i++) {
                rate += l_JsonRpcConnectionWorkQueues[i].GetTaskCount(60) / 60.0;
        }
 
-       return rate / l_JsonRpcConnectionWorkQueueCount;
+       return rate / count;
 }