in gremlin-client/src/main/java/org/apache/tinkerpop/gremlin/driver/EndpointClientCollection.java [197:237]
void close(MetricsHandler handler) {
if (!collectMetrics) {
return;
}
allowSubmitMetrics = false;
if (handler != null && executorService != null){
Future<?> future = executorService.submit(() -> {
long duration = System.currentTimeMillis() - startMillis;
ConnectionMetrics conMetrics = new ConnectionMetrics(
duration,
connectionMetrics.totalConnectionAttempts(),
connectionMetrics.metrics());
RequestMetrics reqMetrics = new RequestMetrics(
duration,
requestMetrics.totalRequests(),
requestMetrics.failedRequests(),
requestMetrics.droppedRequests(),
requestMetrics.skippedResponses(),
requestMetrics.metrics());
handler.onMetricsPublished(conMetrics, reqMetrics);
});
try {
future.get(5, TimeUnit.SECONDS);
} catch (InterruptedException | ExecutionException | TimeoutException e) {
logger.error("Error while publishing metrics", e);
}
}
if (executorService != null) {
executorService.shutdownNow();
}
}