/** * {@inheritDoc} */ @Override public TaskResult call() { MetricsHelper.startScope(factory, other.getClass().getSimpleName()); TaskResult result = null; final long startTimeMillis = System.currentTimeMillis(); try { result = other.call(); } finally { MetricsHelper.addSuccessAndLatency(startTimeMillis, result != null && result.getException() == null, MetricsLevel.SUMMARY); MetricsHelper.endScope(); } return result; }