public static void clearTraceEntity() { globalRecorder.clearTraceEntity(); }
public static void clearTraceEntity() { globalRecorder.clearTraceEntity(); }
private void finalizeSubsegment(Request<?> request) { recorder.endSubsegment(); Long executingThreadContext = request.getHandlerContext(executingThreadKey); if (executingThreadContext != null && Thread.currentThread().getId() != executingThreadContext) { recorder.clearTraceEntity(); } }
@Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (logger.isDebugEnabled()) { logger.debug("AWSXRayServletFilter is beginning to process request: " + request.toString()); } Segment segment = preFilter(request, response); try { chain.doFilter(request, response); } catch (Exception e) { if (null != segment) { segment.addException(e); } throw e; } finally { if (request.isAsyncStarted()) { request.setAttribute(AWSXRayServletAsyncListener.ENTITY_ATTRIBUTE_KEY, segment); try { request.getAsyncContext().addListener(listener); recorder.clearTraceEntity(); } catch (IllegalStateException ise) { // race condition that occurs when async processing finishes before adding the listener postFilter(request, response); } } else { postFilter(request, response); } if (logger.isDebugEnabled()) { logger.debug("AWSXRayServletFilter is finished processing request: " + request.toString()); } } }
/** * Ends a segment. * * @throws SegmentNotFoundException * if {@code contextMissingStrategy} throws exceptions and no segment is currently in progress */ public void endSegment() { SegmentContext context = getSegmentContext(); if (null != context) { context.endSegment(this); } Entity current; if ((current = getTraceEntity()) != null) { Segment segment = current.getParentSegment(); logger.debug("Ending segment named '" + segment.getName() + "'."); if(segment.end()) { sendSegment(segment); } else { logger.debug("Not emitting segment named '" + segment.getName() + "' as it parents in-progress subsegments."); } clearTraceEntity(); } else { getContextMissingStrategy().contextMissing("Failed to end segment: segment cannot be found.", SegmentNotFoundException.class); } }
/** * Ends a segment. * * @throws SegmentNotFoundException * if {@code contextMissingStrategy} throws exceptions and no segment is currently in progress */ public void endSegment() { SegmentContext context = getSegmentContext(); if (null != context) { context.endSegment(this); } Entity current; if ((current = getTraceEntity()) != null) { Segment segment = current.getParentSegment(); logger.debug("Ending segment named '" + segment.getName() + "'."); if(segment.end()) { sendSegment(segment); } else { logger.debug("Not emitting segment named '" + segment.getName() + "' as it parents in-progress subsegments."); } clearTraceEntity(); } else { getContextMissingStrategy().contextMissing("Failed to end segment: segment cannot be found.", SegmentNotFoundException.class); } }