You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2016/08/25 09:56:54 UTC

svn commit: r1757643 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/

Author: mreutegg
Date: Thu Aug 25 09:56:54 2016
New Revision: 1757643

URL: http://svn.apache.org/viewvc?rev=1757643&view=rev
Log:
OAK-4543: Add info about event generation and consumption by observer

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ConsolidatedListenerMBeanImpl.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java?rev=1757643&r1=1757642&r2=1757643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java Thu Aug 25 09:56:54 2016
@@ -94,6 +94,7 @@ public class BackgroundObserver implemen
     private static class ContentChange {
         private final NodeState root;
         private final CommitInfo info;
+        private final long created = System.currentTimeMillis();
         ContentChange(NodeState root, CommitInfo info) {
             this.root = root;
             this.info = info;
@@ -129,6 +130,7 @@ public class BackgroundObserver implemen
                     ContentChange change = queue.poll();
                     if (change != null && change != STOP) {
                         observer.contentChanged(change.root, change.info);
+                        removed(queue.size(), change.created);
                         currentTask.onComplete(completionHandler);
                     }
                 } catch (Throwable t) {
@@ -187,6 +189,15 @@ public class BackgroundObserver implemen
     protected void added(int queueSize) { }
 
     /**
+     * Called when ever an item has been removed from the queue.
+     *
+     * @param queueSize the size of the queue after the item was removed.
+     * @param created the time in milliseconds when the removed item was put
+     *                into the queue.
+     */
+    protected void removed(int queueSize, long created) { }
+
+    /**
      * @return  The max queue length used for this observer's queue
      */
     public int getMaxQueueLength() {

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java?rev=1757643&r1=1757642&r2=1757643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java Thu Aug 25 09:56:54 2016
@@ -273,6 +273,12 @@ class ChangeProcessor implements Observe
                     }
                 }
             }
+
+            @Override
+            protected void removed(int queueSize, long created) {
+                maxQueueLength.recordValue(queueSize);
+                tracker.recordQueueLength(queueSize, created);
+            }
         };
     }
 

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ConsolidatedListenerMBeanImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ConsolidatedListenerMBeanImpl.java?rev=1757643&r1=1757642&r2=1757643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ConsolidatedListenerMBeanImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ConsolidatedListenerMBeanImpl.java Thu Aug 25 09:56:54 2016
@@ -270,6 +270,8 @@ public class ConsolidatedListenerMBeanIm
                 "delivered/hr",
                 "us/delivered",
                 "ratioOfTimeSpentProcessingEvents",
+                "eventConsumerTimeRatio",
+                "queueBacklogMillis",
                 "queueSize",
                 "localEventCount",
                 "externalEventCount",
@@ -294,6 +296,8 @@ public class ConsolidatedListenerMBeanIm
                 SimpleType.LONG,
                 SimpleType.LONG,
                 SimpleType.DOUBLE,
+                SimpleType.DOUBLE,
+                SimpleType.LONG,
                 SimpleType.INTEGER,
                 SimpleType.INTEGER,
                 SimpleType.INTEGER,
@@ -339,6 +343,8 @@ public class ConsolidatedListenerMBeanIm
                     mbeans.eventListenerMBean.getEventsDeliveredPerHour(),
                     mbeans.eventListenerMBean.getMicrosecondsPerEventDelivered(),
                     mbeans.eventListenerMBean.getRatioOfTimeSpentProcessingEvents(),
+                    mbeans.eventListenerMBean.getEventConsumerTimeRatio(),
+                    mbeans.eventListenerMBean.getQueueBacklogMillis(),
                     mbeans.observerMBean.getQueueSize(),
                     mbeans.observerMBean.getLocalEventCount(),
                     mbeans.observerMBean.getExternalEventCount(),