Author: tommaso
Date: Fri Oct 19 09:03:38 2018
New Revision: 1844315
URL: http://svn.apache.org/viewvc?rev=1844315&view=rev
Log:
OAK-7839 - add DW Metric for tracking index corruptions
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/TrackingCorruptIndexHandler.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java?rev=1844315&r1=1844314&r2=1844315&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
Fri Oct 19 09:03:38 2018
@@ -220,6 +220,7 @@ public class AsyncIndexUpdate implements
this.leaseTimeOut = DEFAULT_ASYNC_TIMEOUT;
this.statisticsProvider = statsProvider;
this.indexStats = new AsyncIndexStats(name, statsProvider);
+
this.corruptIndexHandler.setMeterStats(statsProvider.getMeter("corrupt-index",
StatsOptions.METRICS_ONLY));
}
public AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/TrackingCorruptIndexHandler.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/TrackingCorruptIndexHandler.java?rev=1844315&r1=1844314&r2=1844315&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/TrackingCorruptIndexHandler.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/TrackingCorruptIndexHandler.java
Fri Oct 19 09:03:38 2018
@@ -39,6 +39,7 @@ import com.google.common.base.Throwables
import com.google.common.base.Ticker;
import com.google.common.collect.Maps;
import org.apache.jackrabbit.oak.stats.Clock;
+import org.apache.jackrabbit.oak.stats.MeterStats;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -51,6 +52,11 @@ public class TrackingCorruptIndexHandler
private long indexerCycleCount;
private long corruptIntervalMillis = TimeUnit.MINUTES.toMillis(30);
private final Map<String, CorruptIndexInfo> indexes =
Maps.newConcurrentMap();
+ private MeterStats meter;
+
+ void setMeterStats(MeterStats meter) {
+ this.meter = meter;
+ }
public Map<String, CorruptIndexInfo> getCorruptIndexData(String asyncName){
if (corruptIntervalMillis <= 0){
@@ -82,6 +88,8 @@ public class TrackingCorruptIndexHandler
CorruptIndexInfo info = indexes.remove(indexPath);
if (info != null){
log.info("Index at [{}] which was so far failing {} is now
working again.", info.path, info.getStats());
+ } else {
+ meter.mark();
}
}
}
@@ -106,6 +114,9 @@ public class TrackingCorruptIndexHandler
@Override
public void indexUpdateFailed(String async, String indexPath, Exception e)
{
+ if (meter != null) {
+ meter.mark();
+ }
getOrCreateInfo(async, indexPath).addFailure(e);
}