@Override public String methodFromResponse(RequestEvent event) { return event.getContainerRequest().getMethod(); }
.startManual(); event.getContainerRequest().setProperty(OpenTracingFeature.SPAN_CONTEXT_PROPERTY, resourceSpan); break; event.getContainerRequest().setProperty(OpenTracingFeature.SPAN_CONTEXT_PROPERTY, requestSpan); resourceSpan.finish(); logVerbose(LocalizationMessages.OPENTRACING_LOG_RESPONSE_FILTERING_STARTED());
@Override public String route(RequestEvent event) { return (String) event.getContainerRequest().getProperty("http.route"); }
@Override public RequestEventListener onRequest(RequestEvent requestEvent) { if (requestEvent.getType() == RequestEvent.Type.START) { Span requestSpan = handleRequestStart(requestEvent.getContainerRequest()); return new OpenTracingRequestEventListener(requestSpan); } return null; }
@Override public void onEvent(RequestEvent event) { // Note: until REQUEST_MATCHED, we don't know metadata such as if the request is async or not if (event.getType() != REQUEST_MATCHED && event.getType() != FINISHED) return; ContainerRequest request = event.getContainerRequest(); SpanCustomizer span = (SpanCustomizer) request.getProperty(SpanCustomizer.class.getName()); if (span == null) return; if (event.getType() != REQUEST_MATCHED) { parser.requestMatched(event, span); return; } // Set the route attribute on completion to avoid any thread visibility issues reading it request.setProperty("http.route", route(event.getContainerRequest())); }
@Override public RequestEventListener onRequest(RequestEvent requestEvent) { if (requestEvent.getType() == RequestEvent.Type.START) { Span span = serverHandler.handleReceive(extractor, requestEvent.getContainerRequest()); return new TracingRequestEventListener(span, tracer.withSpanInScope(span)); } return null; }
/** * Invoked prior to request invocation during {@link RequestEventListener#onEvent(RequestEvent)} * where the event type is {@link RequestEvent.Type#REQUEST_MATCHED} * * <p>Adds the tags {@link #RESOURCE_CLASS} and {@link #RESOURCE_METHOD}. Override or use {@link #NOOP} * to change this behavior. */ protected void requestMatched(RequestEvent event, SpanCustomizer customizer) { Invocable i = event.getContainerRequest().getUriInfo().getMatchedResourceMethod().getInvocable(); customizer.tag(RESOURCE_CLASS, i.getHandler().getHandlerClass().getSimpleName()); customizer.tag(RESOURCE_METHOD, i.getHandlingMethod().getName()); }
maybeSpanInScope.close(); String maybeHttpRoute = route(event.getContainerRequest()); if (maybeHttpRoute != null) { event.getContainerRequest().setProperty("http.route", maybeHttpRoute);
/** * <p>getContainerRequest.</p> * * @return a {@link org.glassfish.jersey.server.ContainerRequest} object. */ public ContainerRequest getContainerRequest() { return event.getContainerRequest(); }
/** {@inheritDoc} */ public void onEvent(RequestEvent reqEvt) { if (RequestEvent.Type.ON_EXCEPTION.equals(reqEvt.getType())) { logger.error("An error occured when processing " + reqEvt.getContainerRequest().getRequestUri(), reqEvt.getException() ); logger.error(" + Type : " + reqEvt.getException().getClass().getName()); logger.error(" + Message : " + reqEvt.getException().getMessage()); } else { logger.debug(reqEvt.getContainerRequest().getRequestUri() + "[" + reqEvt.getType() + "]"); } }
@Override public void onEvent(RequestEvent event) { logger.trace("Received the event {}", event); switch (event.getType()) { case REQUEST_MATCHED: requestReceived(event.getContainerRequest()); break; case FINISHED: requestCompleted(event.getContainerRequest(), event.getContainerResponse()); break; default: break; } }
@Override public void onEvent(RequestEvent requestEvent) { switch (requestEvent.getType()) { case RESOURCE_METHOD_START: startTime = MetricUtil.getCurrentTime(); break; case RESOURCE_METHOD_FINISHED: String url = requestEvent.getContainerRequest().getMethod().toLowerCase() + "." + requestEvent.getContainerRequest().getPath(false); MetricUtil.updateTimer(PropsUtil.getBoolean(PropsKeys.METRIC_REST_REQUEST_ENABLE), "http." + url, startTime); break; } } }
@Override public void onEvent(RequestEvent event) { // We only care about the REQUEST_MATCHED event. if (event.getType() != REQUEST_MATCHED) { return; } ContainerRequest request = event.getContainerRequest(); // Setting the http.route as a setProperty() on this ContainerRequest will bubble out to the // HttpServletRequest as a request attribute. request.setProperty(KnownZipkinTags.HTTP_ROUTE, route(request)); }
@Override public Iterable<Tag> httpLongRequestTags(RequestEvent event) { return Tags.of(JerseyTags.method(event.getContainerRequest()), JerseyTags.uri(event)); }
@Before public void beforeMethod() { implSpy = spy(SpanCustomizingApplicationEventListener.create()); requestEventMock = mock(RequestEvent.class); requestMock = mock(ContainerRequest.class); extendedUriInfoMock = mock(ExtendedUriInfo.class); doReturn(RequestEvent.Type.REQUEST_MATCHED).when(requestEventMock).getType(); doReturn(requestMock).when(requestEventMock).getContainerRequest(); doReturn(extendedUriInfoMock).when(requestMock).getUriInfo(); }
public void onEvent(RequestEvent event) { if (RequestEvent.Type.MATCHING_START == event.getType()) { ContainerRequestCache.set(event.getContainerRequest()); } else if (RequestEvent.Type.FINISHED == event.getType()) { ContainerRequestCache.clear(); } }
public void onEvent(RequestEvent event) { if (RequestEvent.Type.MATCHING_START == event.getType()) { ContainerRequestCache.set(event.getContainerRequest()); } else if (RequestEvent.Type.FINISHED == event.getType()) { ContainerRequestCache.clear(); } }
@Override public void onEvent(RequestEvent event) { switch (event.getType()) { case RESOURCE_METHOD_START: callId = ticker.nextId(); ticker.tick("callRes", callId); break; case RESOURCE_METHOD_FINISHED: ticker.tock("callRes", callId); break; case FINISHED: ticker.tock("req", reqEId); ContainerRequest req = event.getContainerRequest(); String endpoint = req.getMethod() + " " + req.getRequestUri().toString().substring(req.getBaseUri().toString().length()); ticker.log(reqId, endpoint); Timer.release(); break; default: // do nothing } }
private MethodMetricsContext getContext(RequestEvent event) { MetricsService metricsSvc = LensServices.get().getService(MetricsService.NAME); return metricsSvc.getMethodMetricsContext(event.getUriInfo().getMatchedResourceMethod(), event.getContainerRequest()); } }
@Override public Iterable<Tag> httpRequestTags(RequestEvent event) { ContainerResponse response = event.getContainerResponse(); return Tags.of(JerseyTags.method(event.getContainerRequest()), JerseyTags.uri(event), JerseyTags.exception(event), JerseyTags.status(response), JerseyTags.outcome(response)); }