[ 
https://issues.apache.org/jira/browse/OAK-2755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14492060#comment-14492060
 ] 

Michael Dürig commented on OAK-2755:
------------------------------------

The information provided by such a view is very useful. However, I'd prefer 
such kind of tooling to be outside of Oak. Or at least better encapsulated. 
Exposing various internals hurts modularity. Even if it is 'just for 
monitoring'. People *will* start using it for different purposes, which will 
create all sorts of unpredictable problems in the long run. 

Could we turn stuff around so we don't need to expose 
{{BackgroundObserver.getDelegate}}, 
{{BackgroundObserver.queueSize}},{{ChangeProcessor#getFilterProvider}} and have 
to add those additional getters to {{FilterBuilder}}? I'm thinking of a double 
dispatch, where you'd pass a monitoring component around, which will receive 
the required information via call backs. This would also make the various casts 
in {{ConsolidatedListenerMBeanImpl}} unnecessary. (Each cast is a lie and each 
cast will cause a regression at some point!)

> Consolidated JMX view of all EventListener related statistics
> -------------------------------------------------------------
>
>                 Key: OAK-2755
>                 URL: https://issues.apache.org/jira/browse/OAK-2755
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>            Reporter: Chetan Mehrotra
>            Assignee: Chetan Mehrotra
>              Labels: monitoring, observation
>             Fix For: 1.0.13, 1.3.0
>
>         Attachments: OAK-2755-2.patch, OAK-2755.patch, 
> consolidated-listener-stats-2.png, consolidated-listener-stats.png
>
>
> Oak Observation support exposes a {{EventListenerMBean}} [1] which provide 
> quite a bit of details around registered observation listeners. However in a 
> typical application there would be multiple listeners registered. To simplify 
> monitoring it would be helpful to have a _consolidated_ view of all listeners 
> related statistics.
> Further the stats can also include some more details which are Oak specific
> * Subtree paths to which the listener listens to - By default JCR Api allows 
> single path however Oak allows a listener to register to multiple paths
> * If listener is enabled to listen to cluster local and cluster external 
> changes
> * Size of queue in BackgroundObserver
> * Distribution of change types present in the queue - Local, External etc
> [1] 
> https://github.com/apache/jackrabbit/blob/trunk/jackrabbit-api/src/main/java/org/apache/jackrabbit/api/jmx/EventListenerMBean.java



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to