[
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)