You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2017/09/11 21:57:15 UTC

[2/2] qpid-broker-j git commit: QPID-7825: [Java Broker] Add queue statistic counting message time-to-live expirations

QPID-7825: [Java Broker] Add queue statistic counting message time-to-live expirations


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/82495db3
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/82495db3
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/82495db3

Branch: refs/heads/master
Commit: 82495db3ad3c7017f9ecca4857b133e45eb771fe
Parents: 1c71e66
Author: Keith Wall <ke...@gmail.com>
Authored: Mon Sep 11 22:56:06 2017 +0100
Committer: Keith Wall <ke...@gmail.com>
Committed: Mon Sep 11 22:56:06 2017 +0100

----------------------------------------------------------------------
 .../org/apache/qpid/server/model/Queue.java     | 11 ++++++++++
 .../apache/qpid/server/queue/AbstractQueue.java | 14 +++++++++++++
 .../qpid/server/queue/QueueStatistics.java      | 22 +++++++++++++++++++-
 3 files changed, 46 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/82495db3/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java b/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
index 659abe0..d0a70d1 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
@@ -382,6 +382,17 @@ public interface Queue<X extends Queue<X>> extends ConfiguredObject<X>,
     long getTotalEnqueuedMessages();
 
     @SuppressWarnings("unused")
+    @ManagedStatistic(statisticType = StatisticType.CUMULATIVE, units = StatisticUnit.BYTES, label = "Expired",
+            description = "Total size of all messages expired by message time-to-live on this queue.")
+    long getTotalExpiredBytes();
+
+    @SuppressWarnings("unused")
+    @ManagedStatistic(statisticType = StatisticType.CUMULATIVE, units = StatisticUnit.MESSAGES, label = "Expired",
+            description = "Total number of messages expired by message time-to-live on this queue.")
+    long getTotalExpiredMessages();
+
+
+    @SuppressWarnings("unused")
     @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.BYTES, label = "Prefetched",
                       description = "Total size of all messages currently prefetched by consumers.")
     long getUnacknowledgedBytes();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/82495db3/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java b/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
index a5e5e65..416dbfd 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
@@ -2128,6 +2128,7 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
                     expired = false;
                     if (node.acquire())
                     {
+                        _queueStatistics.addToExpired(node.getSizeWithHeader());
                         dequeueEntry(node);
                     }
                 }
@@ -2199,6 +2200,7 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
                 if (node.expired())
                 {
                     deleteEntry(node);
+                    _queueStatistics.addToExpired(node.getSizeWithHeader());
                 }
                 else
                 {
@@ -2641,6 +2643,18 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
         return _maximumDeliveryAttempts;
     }
 
+    @Override
+    public long getTotalExpiredBytes()
+    {
+        return _queueStatistics.getEnqueueSize();
+    }
+
+    @Override
+    public long getTotalExpiredMessages()
+    {
+        return _queueStatistics.getExpiredCount();
+    }
+
     private void checkForNotification(final ServerMessage<?> msg,
                                       final QueueNotificationListener listener,
                                       final long currentTime,

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/82495db3/broker-core/src/main/java/org/apache/qpid/server/queue/QueueStatistics.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/queue/QueueStatistics.java b/broker-core/src/main/java/org/apache/qpid/server/queue/QueueStatistics.java
index db0bd3d..c4464f7 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/queue/QueueStatistics.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/queue/QueueStatistics.java
@@ -52,6 +52,9 @@ final class QueueStatistics
     private final AtomicInteger _availableCountHwm = new AtomicInteger();
     private final AtomicLong _availableSizeHwm = new AtomicLong();
 
+    private final AtomicInteger _expiredCount = new AtomicInteger();
+    private final AtomicLong _expiredSize = new AtomicLong();
+
     public final int getQueueCount()
     {
         return _queueCount.get();
@@ -142,6 +145,16 @@ final class QueueStatistics
         return _availableSizeHwm.get();
     }
 
+    public int getExpiredCount()
+    {
+        return _expiredCount.get();
+    }
+
+    public long getExpiredSize()
+    {
+        return _expiredSize.get();
+    }
+
     void addToQueue(long size)
     {
         int count = _queueCount.incrementAndGet();
@@ -222,6 +235,12 @@ final class QueueStatistics
         _persistentDequeueSize.addAndGet(size);
     }
 
+    void addToExpired(final long size)
+    {
+        _expiredCount.incrementAndGet();
+        _expiredSize.addAndGet(size);
+    }
+
     void reset()
     {
         _availableCountHwm.set(0);
@@ -236,6 +255,7 @@ final class QueueStatistics
         _persistentEnqueueSize.set(0L);
         _persistentDequeueCount.set(0L);
         _persistentDequeueSize.set(0L);
+        _expiredCount.set(0);
+        _expiredSize.set(0);
     }
-
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org