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 th...@apache.org on 2019/06/06 14:31:01 UTC
svn commit: r1860717 - in
/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene:
CopyOnReadStatsMBean.java IndexCopier.java LuceneIndexEditorProvider.java
LuceneIndexStatsUpdateCallback.java
Author: thomasm
Date: Thu Jun 6 14:31:01 2019
New Revision: 1860717
URL: http://svn.apache.org/viewvc?rev=1860717&view=rev
Log:
OAK-8344 Expose local index directory size as a metric
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/CopyOnReadStatsMBean.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorProvider.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexStatsUpdateCallback.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/CopyOnReadStatsMBean.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/CopyOnReadStatsMBean.java?rev=1860717&r1=1860716&r2=1860717&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/CopyOnReadStatsMBean.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/CopyOnReadStatsMBean.java Thu Jun 6 14:31:01 2019
@@ -69,6 +69,8 @@ public interface CopyOnReadStatsMBean {
String getLocalIndexSize();
+ long getLocalIndexDirSize();
+
String[] getGarbageDetails();
String getGarbageSize();
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java?rev=1860717&r1=1860716&r2=1860717&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java Thu Jun 6 14:31:01 2019
@@ -547,6 +547,11 @@ public class IndexCopier implements Copy
}
@Override
+ public long getLocalIndexDirSize() {
+ return indexRootDirectory.getSize();
+ }
+
+ @Override
public String[] getGarbageDetails() {
return toArray(transform(failedToDeleteFiles.values(),
new Function<LocalIndexFile, String>() {
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorProvider.java?rev=1860717&r1=1860716&r2=1860717&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorProvider.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorProvider.java Thu Jun 6 14:31:01 2019
@@ -233,8 +233,8 @@ public class LuceneIndexEditorProvider i
if (propertyIndexUpdateCallback != null) {
callbacks.add(propertyIndexUpdateCallback);
}
- if (mbean != null && statisticsProvider != null) {
- callbacks.add(new LuceneIndexStatsUpdateCallback(indexPath, mbean, statisticsProvider));
+ if (mbean != null && statisticsProvider != null && indexCopier != null) {
+ callbacks.add(new LuceneIndexStatsUpdateCallback(indexPath, mbean, statisticsProvider, indexCopier));
}
if (!callbacks.isEmpty()) {
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexStatsUpdateCallback.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexStatsUpdateCallback.java?rev=1860717&r1=1860716&r2=1860717&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexStatsUpdateCallback.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexStatsUpdateCallback.java Thu Jun 6 14:31:01 2019
@@ -22,6 +22,7 @@ import org.apache.jackrabbit.oak.api.Com
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.plugins.index.search.PropertyDefinition;
import org.apache.jackrabbit.oak.plugins.index.search.PropertyUpdateCallback;
+import org.apache.jackrabbit.oak.stats.CounterStats;
import org.apache.jackrabbit.oak.stats.HistogramStats;
import org.apache.jackrabbit.oak.stats.StatisticsProvider;
import org.apache.jackrabbit.oak.stats.StatsOptions;
@@ -39,18 +40,21 @@ public class LuceneIndexStatsUpdateCallb
private static final String NO_DOCS = "_NO_DOCS";
private static final String INDEX_SIZE = "_INDEX_SIZE";
+ private static final String LOCAL_INDEX_DIR_SIZE = "LOCAL_INDEX_DIR_SIZE";
private final Logger log = LoggerFactory.getLogger(getClass());
private final String indexPath;
private final LuceneIndexMBean luceneIndexMBean;
private final StatisticsProvider statisticsProvider;
+ private final IndexCopier indexCopier;
LuceneIndexStatsUpdateCallback(String indexPath, @NotNull LuceneIndexMBean luceneIndexMBean,
- @NotNull StatisticsProvider statisticsProvider) {
+ @NotNull StatisticsProvider statisticsProvider, @NotNull IndexCopier indexCopier) {
this.indexPath = indexPath;
this.luceneIndexMBean = luceneIndexMBean;
this.statisticsProvider = statisticsProvider;
+ this.indexCopier = indexCopier;
}
@Override
@@ -69,7 +73,17 @@ public class LuceneIndexStatsUpdateCallb
HistogramStats indexSizeHistogram = statisticsProvider.getHistogram(indexPath + INDEX_SIZE, StatsOptions.METRICS_ONLY);
indexSizeHistogram.update(indexSize);
+ long localIndexDirSize = indexCopier.getLocalIndexDirSize();
+
+ CounterStats indexDirectorySizeStats = statisticsProvider.getCounterStats(LOCAL_INDEX_DIR_SIZE, StatsOptions.DEFAULT);
+ long deltaInSize = localIndexDirSize - indexDirectorySizeStats.getCount();
+ if (deltaInSize != 0) {
+ indexDirectorySizeStats.inc(deltaInSize);
+ log.debug("index directory size stats updated; size {} delta {}", localIndexDirSize, deltaInSize);
+ }
+
log.debug("{} stats updated; docCount {}, size {}", indexPath, docCount, indexSize);
+
} catch (IOException e) {
log.debug("could not update no_docs/index_size stats for index at {}", indexPath, e);
}