private void handleSuccess(SolrRequest request, NamedList response, int retryCount, long startTime, long requestDuration) { String successPrefix = ROOT_PREFIX + "success."; if (retryCount > 0) { String retriedRequestsPrefix = successPrefix + "retry."; long totalRequestDuration = System.nanoTime() - startTime; metrics.updateHistogram(retriedRequestsPrefix + "count", retryCount); metrics.updateTimer(retriedRequestsPrefix + "time", totalRequestDuration, TimeUnit.NANOSECONDS); // metrics.updateHistogram(retriedRequestsPrefix + "count.req." + requestKey, retryCount); // metrics.updateHistogram(retriedRequestsPrefix + "count.top." + firstExceptionTopLevelMsg, retryCount); // metrics.updateHistogram(retriedRequestsPrefix + "count.root." + firstExceptionRootCauseMsg, retryCount); // metrics.updateTimer(retriedRequestsPrefix + "time.req." + requestKey, totalRequestDuration, TimeUnit.NANOSECONDS); // metrics.updateTimer(retriedRequestsPrefix + "time.top." + firstExceptionTopLevelMsg, totalRequestDuration, TimeUnit.NANOSECONDS); // metrics.updateTimer(retriedRequestsPrefix + "time.root." + firstExceptionRootCauseMsg, totalRequestDuration, TimeUnit.NANOSECONDS); } metrics.updateHistogram(successPrefix + "anycount", retryCount); metrics.updateTimer(ROOT_PREFIX + "time", requestDuration, TimeUnit.NANOSECONDS); }
private void handleException(SolrRequest request, String exceptionTopLevelMsg, String exceptionRootCauseMsg, String requestKey, long requestDuration) { String timePrefix = "time."; metrics.updateTimer(ROOT_PREFIX + "time", requestDuration, TimeUnit.NANOSECONDS); String failedRequestsPrefix = ROOT_PREFIX + "fail."; metrics.updateTimer(failedRequestsPrefix + "time", requestDuration, TimeUnit.NANOSECONDS); metrics.updateTimer(failedRequestsPrefix + timePrefix + "req." + requestKey, requestDuration, TimeUnit.NANOSECONDS); metrics.updateTimer(failedRequestsPrefix + timePrefix + "xreq.top." + requestKey + "." + exceptionTopLevelMsg, requestDuration, TimeUnit.NANOSECONDS); metrics.updateTimer(failedRequestsPrefix + timePrefix + "xreq.root." + requestKey + "." + exceptionRootCauseMsg, requestDuration, TimeUnit.NANOSECONDS); metrics.updateTimer(failedRequestsPrefix + timePrefix + "top." + exceptionTopLevelMsg, requestDuration, TimeUnit.NANOSECONDS); metrics.updateTimer(failedRequestsPrefix + timePrefix + "root." + exceptionRootCauseMsg, requestDuration, TimeUnit.NANOSECONDS); }
RetryPolicy retryPolicy = null; totalRequestCount.incrementAndGet(); getMetrics().markMeter(ROOT_PREFIX + "requests", 1); Map<String, MutableLong> exceptionRootCauseCounters = new HashMap<String, MutableLong>(); final long startTime = System.nanoTime(); totalRetryCount.incrementAndGet(); incCounter(exceptionRootCauseCounters, exceptionRootCauseMsg); metrics.markMeter(ROOT_PREFIX + "retries", 1); continue; // retry request by continuing while(true) retry loop