[
https://issues.apache.org/jira/browse/OAK-3478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15008260#comment-15008260
]
Ian Boston commented on OAK-3478:
---------------------------------
[~chetanm]
Any bean that uses org.apache.jackrabbit.api.stats.TimeSeries is expressing
time series data in a way that can't be consumed.
Possible classes include
{code}
./oak-core/src/main/java/org/apache/jackrabbit/oak/stats/RepositoryStats.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreGCMonitor.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/stats/StatisticManager.java
./oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/IndexStatsMBean.java
{code}
Most beans that expose their data via javax.management.openmbean.CompositeData
Only those beans that expose data containing information that needs to be
monitored are an issue. Although most JMX tools are slow and hard to use when
confronted with deeply nested data inside Composite or Tabular data, a human
can deal with them.
Potential classes are below
{code}
/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/IndexStatsMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/RepositoryManagementMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/RepositoryStatsMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/CheckpointMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/ConsolidatedCacheStatsMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/RepositoryManagementMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/cache/ConsolidatedCacheStats.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/management/ManagementOperation.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupRestore.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupRestoreMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobGC.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobGCMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/BlobMigration.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/BlobMigrationMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentCheckpointMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCheckpointMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/jmx/PropertyIndexAsyncReindex.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/jmx/PropertyIndexAsyncReindexMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreGCMonitor.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/GCMonitorMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCheckpointMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGC.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/RevisionGCMBean.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/stats/RepositoryStats.java
./oak-core/src/main/java/org/apache/jackrabbit/oak/util/AbstractCheckpointMBean.java
./oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ConsolidatedListenerMBeanImpl.java
./oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
./oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexMBeanImpl.java
{code}
> Provide JMX Beans for Oak that can be monitored by external tooling.
> --------------------------------------------------------------------
>
> Key: OAK-3478
> URL: https://issues.apache.org/jira/browse/OAK-3478
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core, jcr, lucene, query
> Affects Versions: 1.3.7
> Reporter: Ian Boston
> Assignee: Chetan Mehrotra
>
> The Current JMX beans, while ok in the Sling Web Console are hard if not
> impossible to monitor with external tooling, as external tooling will poll
> for current values, ideally from named attributes containing primitive types.
> Those values containing timers, counters or gauges. Timers timing an
> operation. Counters counting an operation. Guages measuring an instantaneous
> value.
> The request is to provide a small number of JMX beans that can be configured
> into an external monitoring tool like AppDynamics, Ganglia, NewRelic, Splunk
> etc etc, which in turn will provide long term time series and statistics.
> Primitive values of this form can also be graphed with ease in JConsole,
> VisualVM etc. A improvement for the Sling Web Console might be to add a
> Console that can maintain a TimeSeries graph of any JMX bean by object name
> in the same way Ganglia, AppDynamics does, however that may be duplicating
> existing functionality.
> The Metrics Library could be considered to provide the above functionality
> for all JMX beans and monitoring, although its footprint at 111K might be
> considered too big as an additional dependency.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)