Author: mreutegg
Date: Thu Nov 30 14:57:35 2017
New Revision: 1816718
URL: http://svn.apache.org/viewvc?rev=1816718&view=rev
Log:
OAK-6121: Add a metric to measure find document call resulting in null
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStats.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsMBean.java
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsIT.java
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStats.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStats.java?rev=1816718&r1=1816717&r2=1816718&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStats.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStats.java
Thu Nov 30 14:57:35 2017
@@ -47,7 +47,8 @@ public class DocumentStoreStats implemen
static final String NODES_FIND_SPLIT = "DOCUMENT_NODES_FIND_SPLIT";
static final String NODES_FIND_SLAVE = "DOCUMENT_NODES_FIND_SLAVE";
static final String NODES_FIND_PRIMARY = "DOCUMENT_NODES_FIND_PRIMARY";
- static final String NODES_FIND_MISSING_TIMER =
"DOCUMENT_NODES_FIND_MISSING";
+ static final String NODES_FIND_MISSING = "DOCUMENT_NODES_FIND_MISSING";
+ static final String NODES_FIND_MISSING_TIMER =
"DOCUMENT_NODES_FIND_MISSING_TIMER";
static final String NODES_FIND_TIMER = "DOCUMENT_NODES_FIND";
static final String NODES_QUERY_FIND_READ_COUNT =
"DOCUMENT_NODES_QUERY_FIND";
@@ -79,6 +80,7 @@ public class DocumentStoreStats implemen
private final MeterStats findNodesCachedMeter;
+ private final MeterStats findNodesMissing;
private final TimerStats findNodesMissingTimer;
private final MeterStats findNodesSlave;
private final TimerStats findNodesTimer;
@@ -111,6 +113,7 @@ public class DocumentStoreStats implemen
public DocumentStoreStats(StatisticsProvider provider) {
statisticsProvider = checkNotNull(provider);
findNodesCachedMeter = provider.getMeter(NODES_FIND_CACHED,
StatsOptions.DEFAULT);
+ findNodesMissing = provider.getMeter(NODES_FIND_MISSING,
StatsOptions.DEFAULT);
findNodesMissingTimer = provider.getTimer(NODES_FIND_MISSING_TIMER,
StatsOptions.METRICS_ONLY);
findNodesTimer = provider.getTimer(NODES_FIND_TIMER,
StatsOptions.METRICS_ONLY);
findSplitNodes = provider.getMeter(NODES_FIND_SPLIT,
StatsOptions.DEFAULT);
@@ -162,7 +165,13 @@ public class DocumentStoreStats implemen
boolean docFound, boolean isSlaveOk) {
if (collection == Collection.NODES){
//For now collect time for reads from primary/secondary in same
timer
- TimerStats timer = docFound ? findNodesTimer :
findNodesMissingTimer;
+ TimerStats timer;
+ if (docFound) {
+ timer = findNodesTimer;
+ } else {
+ timer = findNodesMissingTimer;
+ findNodesMissing.mark();
+ }
timer.update(timeTakenNanos, TimeUnit.NANOSECONDS);
//For now only nodes can be looked up from slave
@@ -313,6 +322,11 @@ public class DocumentStoreStats implemen
}
@Override
+ public long getNodesFindMissingCount() {
+ return findNodesMissing.getCount();
+ }
+
+ @Override
public long getNodesReadByQueryCount() {
return queryNodesResult.getCount();
}
@@ -344,72 +358,92 @@ public class DocumentStoreStats implemen
@Override
public CompositeData getFindCachedNodesHistory() {
- return getTimeSeriesData(NODES_FIND_CACHED, NODES_FIND_CACHED);
+ return getTimeSeriesData(NODES_FIND_CACHED,
+ "Number of find node document calls served from the cache.");
}
@Override
public CompositeData getFindSplitNodesHistory() {
- return getTimeSeriesData(NODES_FIND_SPLIT, NODES_FIND_SPLIT);
+ return getTimeSeriesData(NODES_FIND_SPLIT,
+ "Number of un-cached find calls for split document.");
}
@Override
public CompositeData getFindNodesFromPrimaryHistory() {
- return getTimeSeriesData(NODES_FIND_PRIMARY, NODES_FIND_PRIMARY);
+ return getTimeSeriesData(NODES_FIND_PRIMARY,
+ "Number of un-cached find node document calls targeting the
primary.");
}
@Override
public CompositeData getFindNodesFromSlaveHistory() {
- return getTimeSeriesData(NODES_FIND_SLAVE, NODES_FIND_SLAVE);
+ return getTimeSeriesData(NODES_FIND_SLAVE,
+ "Number of un-cached find node document calls targeting a
slave/secondary.");
+ }
+
+ @Override
+ public CompositeData getFindNodesMissingHistory() {
+ return getTimeSeriesData(NODES_FIND_MISSING,
+ "Number of un-cached find node document calls that returned no
document.");
}
@Override
public CompositeData getQueryNodesFromSlaveHistory() {
- return getTimeSeriesData(NODES_QUERY_SLAVE, NODES_QUERY_SLAVE);
+ return getTimeSeriesData(NODES_QUERY_SLAVE,
+ "Number of queries for node documents targeting a
slave/secondary.");
}
@Override
public CompositeData getQueryNodesFromPrimaryHistory() {
- return getTimeSeriesData(NODES_QUERY_PRIMARY, NODES_QUERY_PRIMARY);
+ return getTimeSeriesData(NODES_QUERY_PRIMARY,
+ "Number of queries for node documents targeting the primary.");
}
@Override
public CompositeData getQueryNodesLockHistory() {
- return getTimeSeriesData(NODES_QUERY_LOCK, NODES_QUERY_LOCK);
+ return getTimeSeriesData(NODES_QUERY_LOCK,
+ "Number of queries for node documents done while holding a
lock.");
}
@Override
public CompositeData getQueryJournalHistory() {
- return getTimeSeriesData(JOURNAL_QUERY, JOURNAL_QUERY);
+ return getTimeSeriesData(JOURNAL_QUERY,
+ "Number of queries for journal documents.");
}
@Override
public CompositeData getCreateJournalHistory() {
- return getTimeSeriesData(JOURNAL_CREATE, JOURNAL_CREATE);
+ return getTimeSeriesData(JOURNAL_CREATE,
+ "Number of journal documents created.");
}
@Override
public CompositeData getCreateNodesHistory() {
- return getTimeSeriesData(NODES_CREATE, NODES_CREATE);
+ return getTimeSeriesData(NODES_CREATE,
+ "Number of node documents created.");
}
@Override
public CompositeData getUpdateNodesHistory() {
- return getTimeSeriesData(NODES_UPDATE, NODES_UPDATE);
+ return getTimeSeriesData(NODES_UPDATE,
+ "Number of node documents updated.");
}
@Override
public CompositeData getUpdateNodesRetryHistory() {
- return getTimeSeriesData(NODES_UPDATE_RETRY_COUNT,
NODES_UPDATE_RETRY_COUNT);
+ return getTimeSeriesData(NODES_UPDATE_RETRY_COUNT,
+ "Number of times a node document update had to be retried.");
}
@Override
public CompositeData getUpdateNodesFailureHistory() {
- return getTimeSeriesData(NODES_UPDATE_FAILURE, NODES_UPDATE_FAILURE);
+ return getTimeSeriesData(NODES_UPDATE_FAILURE,
+ "Number of times a node document update failed.");
}
@Override
public CompositeData getRemoveNodesHistory() {
- return getTimeSeriesData(NODES_REMOVE, NODES_REMOVE);
+ return getTimeSeriesData(NODES_REMOVE,
+ "Number of removed node documents.");
}
private CompositeData getTimeSeriesData(String name, String desc){
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsMBean.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsMBean.java?rev=1816718&r1=1816717&r2=1816718&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsMBean.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsMBean.java
Thu Nov 30 14:57:35 2017
@@ -32,6 +32,8 @@ public interface DocumentStoreStatsMBean
long getNodesFindQueryCount();
+ long getNodesFindMissingCount();
+
long getNodesReadByQueryCount();
long getNodesCreateCount();
@@ -52,6 +54,8 @@ public interface DocumentStoreStatsMBean
CompositeData getFindNodesFromSlaveHistory();
+ CompositeData getFindNodesMissingHistory();
+
CompositeData getQueryNodesFromSlaveHistory();
CompositeData getQueryNodesFromPrimaryHistory();
Modified:
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsIT.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsIT.java?rev=1816718&r1=1816717&r2=1816718&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsIT.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreStatsIT.java
Thu Nov 30 14:57:35 2017
@@ -89,6 +89,14 @@ public class DocumentStoreStatsIT extend
}
@Test
+ public void findMissing() throws Exception {
+ String id = testName.getMethodName();
+
+ ds.find(Collection.NODES, id);
+ verify(stats).doneFindUncached(anyLong(), eq(Collection.NODES),
eq(id), eq(false), eq(false));
+ }
+
+ @Test
public void query() throws Exception{
// create ten documents
String base = testName.getMethodName();