/** * Create a new builder. */ Builder() { this.responseStatisticsBuilder = new ResponseStatisticsImpl.Builder(); this.exceptionMapperStatisticsBuilder = new ExceptionMapperStatisticsImpl.Builder(); }
/** * Add global request execution. * * @param startTime time of the execution. * @param duration duration of the execution. */ void addRequestExecution(final long startTime, final long duration) { if (executionStatisticsBuilder == null) { executionStatisticsBuilder = new ExecutionStatisticsImpl.Builder(); } executionStatisticsBuilder.addExecution(startTime, duration); }
/** * Add a response status code produces by Jersey. * * @param responseCode Response status code. */ void addResponseCode(final int responseCode) { responseStatisticsBuilder.addResponseCode(responseCode); }
private void processRequestItems() { final Queue<MonitoringEventListener.RequestStats> requestQueuedItems = monitoringEventListener.getRequestQueuedItems(); final FloodingLogger floodingLogger = new FloodingLogger(requestQueuedItems); while (!requestQueuedItems.isEmpty()) { floodingLogger.conditionallyLogFlooding(); final MonitoringEventListener.RequestStats event = requestQueuedItems.remove(); final MonitoringEventListener.TimeStats requestStats = event.getRequestStats(); statisticsBuilder.addRequestExecution(requestStats.getStartTime(), requestStats.getDuration()); final MonitoringEventListener.MethodStats methodStat = event.getMethodStats(); if (methodStat != null) { final ResourceMethod method = methodStat.getMethod(); statisticsBuilder.addExecution(event.getRequestUri(), method, methodStat.getStartTime(), methodStat.getDuration(), requestStats.getStartTime(), requestStats.getDuration()); } } }
private void processExceptionMapperEvents() { final Queue<RequestEvent> eventQueue = monitoringEventListener.getExceptionMapperEvents(); final FloodingLogger floodingLogger = new FloodingLogger(eventQueue); while (!eventQueue.isEmpty()) { floodingLogger.conditionallyLogFlooding(); final RequestEvent event = eventQueue.remove(); final ExceptionMapperStatisticsImpl.Builder mapperStats = statisticsBuilder.getExceptionMapperStatisticsBuilder(); if (event.getExceptionMapper() != null) { mapperStats.addExceptionMapperExecution(event.getExceptionMapper().getClass(), 1); } mapperStats.addMapping(event.isResponseSuccessfullyMapped(), 1); } }
private void processResponseCodeEvents() { final Queue<Integer> responseEvents = monitoringEventListener.getResponseStatuses(); final FloodingLogger floodingLogger = new FloodingLogger(responseEvents); while (!responseEvents.isEmpty()) { floodingLogger.conditionallyLogFlooding(); final Integer code = responseEvents.remove(); statisticsBuilder.addResponseCode(code); } }
ResourceMethodStatisticsImpl.Builder getOrCreate(final ResourceMethod resourceMethod) { final String methodUniqueId = MonitoringUtils.getMethodUniqueId(resourceMethod); if (!stringToMethodsBuilders.containsKey(methodUniqueId)) { stringToMethodsBuilders.putIfAbsent(methodUniqueId, new ResourceMethodStatisticsImpl.Builder(resourceMethod)); } return stringToMethodsBuilders.get(methodUniqueId); } }
@Override public RequestEventImpl build(Type type) { return new RequestEventImpl(type, containerRequest, containerResponse, throwable, extendedUriInfo, containerResponseFilters, containerRequestFilters, exceptionMapper, success, responseSuccessfullyMapped, exceptionCause, responseWritten); } }
/** * Add a resource method to the statistics. * * @param resourceMethod Resource method. */ void addMethod(final ResourceMethod resourceMethod) { cached = null; getOrCreate(resourceMethod); }
/** * Add execution of a target. * * @param startTime Start time of an execution event (in Unix timestamp format). * @param duration Duration of an execution event in milliseconds. */ void addExecution(final long startTime, final long duration) { for (final TimeWindowStatisticsImpl.Builder<Long> statBuilder : updatableIntervalStatistics) { statBuilder.addRequest(startTime, duration); } this.lastStartTime = startTime; }
private void processRequestItems() { final Queue<MonitoringEventListener.RequestStats> requestQueuedItems = monitoringEventListener.getRequestQueuedItems(); final FloodingLogger floodingLogger = new FloodingLogger(requestQueuedItems); while (!requestQueuedItems.isEmpty()) { floodingLogger.conditionallyLogFlooding(); final MonitoringEventListener.RequestStats event = requestQueuedItems.remove(); final MonitoringEventListener.TimeStats requestStats = event.getRequestStats(); statisticsBuilder.addRequestExecution(requestStats.getStartTime(), requestStats.getDuration()); final MonitoringEventListener.MethodStats methodStat = event.getMethodStats(); if (methodStat != null) { final ResourceMethod method = methodStat.getMethod(); statisticsBuilder.addExecution(event.getRequestUri(), method, methodStat.getStartTime(), methodStat.getDuration(), requestStats.getStartTime(), requestStats.getDuration()); } } }
private void processExceptionMapperEvents() { final Queue<RequestEvent> eventQueue = monitoringEventListener.getExceptionMapperEvents(); final FloodingLogger floodingLogger = new FloodingLogger(eventQueue); while (!eventQueue.isEmpty()) { floodingLogger.conditionallyLogFlooding(); final RequestEvent event = eventQueue.remove(); final ExceptionMapperStatisticsImpl.Builder mapperStats = statisticsBuilder.getExceptionMapperStatisticsBuilder(); if (event.getExceptionMapper() != null) { mapperStats.addExceptionMapperExecution(event.getExceptionMapper().getClass(), 1); } mapperStats.addMapping(event.isResponseSuccessfullyMapped(), 1); } }
private void processResponseCodeEvents() { final Queue<Integer> responseEvents = monitoringEventListener.getResponseStatuses(); final FloodingLogger floodingLogger = new FloodingLogger(responseEvents); while (!responseEvents.isEmpty()) { floodingLogger.conditionallyLogFlooding(); final Integer code = responseEvents.remove(); statisticsBuilder.addResponseCode(code); } }
/** * Create a new builder. */ Builder() { this.responseStatisticsBuilder = new ResponseStatisticsImpl.Builder(); this.exceptionMapperStatisticsBuilder = new ExceptionMapperStatisticsImpl.Builder(); }
/** * Add global request execution. * * @param startTime time of the execution. * @param duration duration of the execution. */ void addRequestExecution(final long startTime, final long duration) { if (executionStatisticsBuilder == null) { executionStatisticsBuilder = new ExecutionStatisticsImpl.Builder(); } executionStatisticsBuilder.addExecution(startTime, duration); }
ResourceMethodStatisticsImpl.Builder getOrCreate(final ResourceMethod resourceMethod) { final String methodUniqueId = MonitoringUtils.getMethodUniqueId(resourceMethod); if (!stringToMethodsBuilders.containsKey(methodUniqueId)) { stringToMethodsBuilders.putIfAbsent(methodUniqueId, new ResourceMethodStatisticsImpl.Builder(resourceMethod)); } return stringToMethodsBuilders.get(methodUniqueId); } }
/** * Add a response status code produces by Jersey. * * @param responseCode Response status code. */ void addResponseCode(final int responseCode) { responseStatisticsBuilder.addResponseCode(responseCode); }
@Override public RequestEventImpl build(Type type) { return new RequestEventImpl(type, containerRequest, containerResponse, throwable, extendedUriInfo, containerResponseFilters, containerRequestFilters, exceptionMapper, success, responseSuccessfullyMapped, exceptionCause, responseWritten); } }
/** * Add a resource method to the statistics. * * @param resourceMethod Resource method. */ void addMethod(final ResourceMethod resourceMethod) { cached = null; getOrCreate(resourceMethod); }
/** * Add execution of a target. * * @param startTime Start time of an execution event (in Unix timestamp format). * @param duration Duration of an execution event in milliseconds. */ void addExecution(final long startTime, final long duration) { for (final TimeWindowStatisticsImpl.Builder<Long> statBuilder : updatableIntervalStatistics) { statBuilder.addRequest(startTime, duration); } this.lastStartTime = startTime; }