@Override public void onComplete(Result result) { final long requestTime = System.currentTimeMillis() - start; emitter.emit( new ServiceMetricEvent.Builder() .setUser2(DataSourceUtil.getMetricName(query.getDataSource())) .setUser3(String.valueOf(query.getContextPriority(0))) .setUser4(query.getType()) .setUser5(DataSourceUtil.COMMA_JOIN.join(query.getIntervals())) .setUser6(String.valueOf(query.hasFilters())) .setUser7(req.getRemoteAddr()) .setUser8(query.getId()) .setUser9(query.getDuration().toPeriod().toStandardMinutes().toString()) .build("request/time", requestTime)); try { requestLogger.log( new RequestLogLine( new DateTime(), req.getRemoteAddr(), query, new QueryStats( ImmutableMap.<String, Object>of( "request/time", requestTime, "success", true)))); } catch (Exception e) { log.error(e, "Unable to log query [%s]!", query); } super.onComplete(result); }