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);
     }
 


Reply via email to