mirror of https://github.com/apache/lucene.git
SOLR-9136: Separate out the error statistics into server-side error vs client-side error
This commit is contained in:
parent
39dfa29622
commit
49c81bd869
|
@ -339,6 +339,9 @@ Other Changes
|
||||||
|
|
||||||
* SOLR-9161: SolrPluginUtils.invokeSetters now accommodates setter variants (Christine Poerschke)
|
* SOLR-9161: SolrPluginUtils.invokeSetters now accommodates setter variants (Christine Poerschke)
|
||||||
|
|
||||||
|
* SOLR-9136: Separate out the error statistics into server-side error vs client-side error
|
||||||
|
(Jessica Chent Mallet via Erick Erickson)
|
||||||
|
|
||||||
================== 6.0.1 ==================
|
================== 6.0.1 ==================
|
||||||
(No Changes)
|
(No Changes)
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,8 @@ public abstract class RequestHandlerBase implements SolrRequestHandler, SolrInfo
|
||||||
|
|
||||||
// Statistics
|
// Statistics
|
||||||
private final AtomicLong numRequests = new AtomicLong();
|
private final AtomicLong numRequests = new AtomicLong();
|
||||||
private final AtomicLong numErrors = new AtomicLong();
|
private final AtomicLong numServerErrors = new AtomicLong();
|
||||||
|
private final AtomicLong numClientErrors = new AtomicLong();
|
||||||
private final AtomicLong numTimeouts = new AtomicLong();
|
private final AtomicLong numTimeouts = new AtomicLong();
|
||||||
private final Timer requestTimes = new Timer();
|
private final Timer requestTimes = new Timer();
|
||||||
|
|
||||||
|
@ -164,23 +165,33 @@ public abstract class RequestHandlerBase implements SolrRequestHandler, SolrInfo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
boolean incrementErrors = true;
|
||||||
|
boolean isServerError = true;
|
||||||
if (e instanceof SolrException) {
|
if (e instanceof SolrException) {
|
||||||
SolrException se = (SolrException)e;
|
SolrException se = (SolrException)e;
|
||||||
if (se.code() == SolrException.ErrorCode.CONFLICT.code) {
|
if (se.code() == SolrException.ErrorCode.CONFLICT.code) {
|
||||||
// TODO: should we allow this to be counted as an error (numErrors++)?
|
incrementErrors = false;
|
||||||
|
} else if (se.code() >= 400 && se.code() < 500) {
|
||||||
} else {
|
isServerError = false;
|
||||||
SolrException.log(log, e);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SolrException.log(log, e);
|
|
||||||
if (e instanceof SyntaxError) {
|
if (e instanceof SyntaxError) {
|
||||||
|
isServerError = false;
|
||||||
e = new SolrException(SolrException.ErrorCode.BAD_REQUEST, e);
|
e = new SolrException(SolrException.ErrorCode.BAD_REQUEST, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rsp.setException(e);
|
rsp.setException(e);
|
||||||
numErrors.incrementAndGet();
|
|
||||||
|
if (incrementErrors) {
|
||||||
|
SolrException.log(log, e);
|
||||||
|
|
||||||
|
if (isServerError) {
|
||||||
|
numServerErrors.incrementAndGet();
|
||||||
|
} else {
|
||||||
|
numClientErrors.incrementAndGet();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
timer.stop();
|
timer.stop();
|
||||||
|
@ -263,7 +274,9 @@ public abstract class RequestHandlerBase implements SolrRequestHandler, SolrInfo
|
||||||
Snapshot snapshot = requestTimes.getSnapshot();
|
Snapshot snapshot = requestTimes.getSnapshot();
|
||||||
lst.add("handlerStart",handlerStart);
|
lst.add("handlerStart",handlerStart);
|
||||||
lst.add("requests", numRequests.longValue());
|
lst.add("requests", numRequests.longValue());
|
||||||
lst.add("errors", numErrors.longValue());
|
lst.add("errors", numServerErrors.longValue() + numClientErrors.longValue());
|
||||||
|
lst.add("serverErrors", numServerErrors.longValue());
|
||||||
|
lst.add("clientErrors", numClientErrors.longValue());
|
||||||
lst.add("timeouts", numTimeouts.longValue());
|
lst.add("timeouts", numTimeouts.longValue());
|
||||||
lst.add("totalTime", requestTimes.getSum());
|
lst.add("totalTime", requestTimes.getSum());
|
||||||
lst.add("avgRequestsPerSecond", requestTimes.getMeanRate());
|
lst.add("avgRequestsPerSecond", requestTimes.getMeanRate());
|
||||||
|
|
Loading…
Reference in New Issue