Esempio n. 1
0
    @Override
    public void onFailure(Response response, Throwable failure) {
      try {
        final String errorMessage = failure.getMessage();
        requestLogger.log(
            new RequestLogLine(
                new DateTime(),
                req.getRemoteAddr(),
                query,
                new QueryStats(
                    ImmutableMap.<String, Object>of(
                        "success",
                        false,
                        "exception",
                        errorMessage == null ? "no message" : errorMessage))));
      } catch (IOException logError) {
        log.error(logError, "Unable to log query [%s]!", query);
      }

      log.makeAlert(failure, "Exception handling request")
          .addData("exception", failure.toString())
          .addData("query", query)
          .addData("peer", req.getRemoteAddr())
          .emit();

      super.onFailure(response, failure);
    }
Esempio n. 2
0
    @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);
    }