static boolean async(RequestEvent event) { return event.getUriInfo().getMatchedResourceMethod().isManagedAsyncDeclared() || event.getUriInfo().getMatchedResourceMethod().isSuspendDeclared(); } }
break; case RESOURCE_METHOD_FINISHED: final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod(); methodStats = new MethodStats(method, methodTimeStart, now - methodTimeStart); break; event.getUriInfo().getMatchedTemplates() .stream() .collect(Collectors.collectingAndThen(Collectors.toList(), uriTemplates -> {
break; case RESOURCE_METHOD_FINISHED: final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod(); methodStats = new MethodStats(method, methodTimeStart, now - methodTimeStart); break; event.getUriInfo().getMatchedTemplates() .stream() .collect(Collectors.collectingAndThen(Collectors.toList(), uriTemplates -> {
@Override public void onEvent(RequestEvent event) { final RequestEvent.Type eventType = event.getType(); if (eventType == RequestEvent.Type.RESOURCE_METHOD_START) { Optional<UnitOfWork> unitOfWork = methodMap.computeIfAbsent(event.getUriInfo() .getMatchedResourceMethod(), UnitOfWorkEventListener::registerUnitOfWorkAnnotations); unitOfWorkAspect.beforeStart(unitOfWork.orElse(null)); } else if (eventType == RequestEvent.Type.RESP_FILTERS_START) { try { unitOfWorkAspect.afterEnd(); } catch (Exception e) { throw new MappableException(e); } } else if (eventType == RequestEvent.Type.ON_EXCEPTION) { unitOfWorkAspect.onError(); } else if (eventType == RequestEvent.Type.FINISHED) { unitOfWorkAspect.onFinish(); } }
OpenTracingUtils.formatList(event.getUriInfo().getMatchedResourceLocators()))); break; OpenTracingUtils.formatList(event.getUriInfo().getLocatorSubResources()))); break; logVerbose(LocalizationMessages.OPENTRACING_LOG_REQUEST_MATCHED(event.getUriInfo() .getMatchedResourceMethod() .getInvocable() event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod()));
break; case RESOURCE_METHOD_FINISHED: final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod(); methodStats = new MethodStats(method, methodTimeStart, now - methodTimeStart); break; event.getUriInfo().getMatchedTemplates() .stream() .collect(Collectors.collectingAndThen(Collectors.toList(), uriTemplates -> {
/** * <p>getUriInfo.</p> * * @return a {@link org.glassfish.jersey.server.ExtendedUriInfo} object. */ public ExtendedUriInfo getUriInfo() { return event.getUriInfo(); }
private static String getMatchingPattern(RequestEvent event) { ExtendedUriInfo uriInfo = event.getUriInfo(); List<UriTemplate> templates = uriInfo.getMatchedTemplates(); StringBuilder sb = new StringBuilder(); sb.append(uriInfo.getBaseUri().getPath()); for (int i = templates.size() - 1; i >= 0; i--) { sb.append(templates.get(i).getTemplate()); } String multipleSlashCleaned = MULTIPLE_SLASH_PATTERN.matcher(sb.toString()).replaceAll("/"); if (multipleSlashCleaned.equals("/")) { return multipleSlashCleaned; } return TRAILING_SLASH_PATTERN.matcher(multipleSlashCleaned).replaceAll(""); }
@Override public void onEvent(RequestEvent event) { if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) { final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod()); if (meter != null) { meter.mark(); } } } }
@Override public void onEvent(RequestEvent event) { if (event.getType() == RequestEvent.Type.ON_EXCEPTION) { final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod(); final ExceptionMeterMetric metric = (method != null) ? this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null; if (metric != null) { if (metric.cause.isAssignableFrom(event.getException().getClass()) || (event.getException().getCause() != null && metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) { metric.meter.mark(); } } } } }
@Override public void onEvent(final RequestEvent event) { switch (event.getType()) { case RESOURCE_METHOD_START: this.eventListener .getCircuitBreakerName(event.getUriInfo().getMatchedResourceMethod()) .ifPresent(actualCircuitName -> { if (this.circuitBreakerManager.isCircuitOpen(actualCircuitName)) { this.meterMap.get(actualCircuitName + OPEN_CIRCUIT_SUFFIX).mark(); log.warn("Circuit breaker open, returning 503 Service Unavailable: " + actualCircuitName + OPEN_CIRCUIT_SUFFIX); throw new WebApplicationException( Response.Status.SERVICE_UNAVAILABLE); } }); break; case ON_EXCEPTION: this.eventListener .getCircuitBreakerName(event.getUriInfo().getMatchedResourceMethod()) .ifPresent(actualCircuitName -> { if (!this.circuitBreakerManager.isCircuitOpen(actualCircuitName)) { this.meterMap.get(actualCircuitName).mark(); } }); break; default: break; } } }
Resource resource = event.getUriInfo().getMatchedResourceMethod().getParent();
private Set<Timed> annotations(RequestEvent event) { final Set<Timed> timed = new HashSet<>(); final ResourceMethod matchingResourceMethod = event.getUriInfo().getMatchedResourceMethod(); if (matchingResourceMethod != null) { // collect on method level timed.addAll(timedFinder.findTimedAnnotations(matchingResourceMethod.getInvocable().getHandlingMethod())); // fallback on class level if (timed.isEmpty()) { timed.addAll(timedFinder.findTimedAnnotations(matchingResourceMethod.getInvocable().getHandlingMethod() .getDeclaringClass())); } } return timed; } }
@Override public void onEvent(RequestEvent event) { if (event.getType() == RequestEvent.Type.FINISHED) { final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod(); final ResponseMeterMetric metric = (method != null) ? this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null; if (metric != null) { ContainerResponse containerResponse = event.getContainerResponse(); if (containerResponse == null) { if (event.getException() != null) { metric.meters.get(4).mark(); } } else { final int responseStatus = containerResponse.getStatus() / 100; if (responseStatus >= 1 && responseStatus <= 5) { metric.meters.get(responseStatus - 1).mark(); } } } } } }
private Timer timer(RequestEvent event) { final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod(); if (resourceMethod == null) { return null; } return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod())); }
break; case RESOURCE_METHOD_FINISHED: final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod(); methodStats = new MethodStats(method, methodTimeStart, now - methodTimeStart); break; final List<UriTemplate> orderedTemplates = Lists.reverse(event.getUriInfo().getMatchedTemplates());
break; case RESOURCE_METHOD_FINISHED: final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod(); methodStats = new MethodStats(method, methodTimeStart, now - methodTimeStart); break; final List<UriTemplate> orderedTemplates = Lists.reverse(event.getUriInfo().getMatchedTemplates());
@Override public void onEvent(RequestEvent event) { final RequestEvent.Type eventType = event.getType(); if (eventType == RequestEvent.Type.RESOURCE_METHOD_START) { Optional<UnitOfWork> unitOfWork = methodMap.computeIfAbsent(event.getUriInfo() .getMatchedResourceMethod(), UnitOfWorkEventListener::registerUnitOfWorkAnnotations); unitOfWorkAspect.beforeStart(unitOfWork.orElse(null)); } else if (eventType == RequestEvent.Type.RESP_FILTERS_START) { try { unitOfWorkAspect.afterEnd(); } catch (Exception e) { throw new MappableException(e); } } else if (eventType == RequestEvent.Type.ON_EXCEPTION) { unitOfWorkAspect.onError(); } else if (eventType == RequestEvent.Type.FINISHED) { unitOfWorkAspect.onFinish(); } }
private MethodMetricsContext getContext(RequestEvent event) { MetricsService metricsSvc = LensServices.get().getService(MetricsService.NAME); return metricsSvc.getMethodMetricsContext(event.getUriInfo().getMatchedResourceMethod(), event.getContainerRequest()); } }
public void onEvent(RequestEvent event) { if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) { this.Audited = this.methodMap.get(event.getUriInfo() .getMatchedResourceMethod() .getInvocable() .getDefinitionMethod()); if (Audited != null) { logRequest(event); } } else if (event.getType() == RequestEvent.Type.RESP_FILTERS_START) { } else if (event.getType() == RequestEvent.Type.ON_EXCEPTION) { } }