@Override public boolean end() { if (logger.isDebugEnabled()) { logger.debug("Subsegment named '" + getName() + "' ending. Parent segment named '" + parentSegment.getName() + "' has reference count " + parentSegment.getReferenceCount()); } if (getEndTime() < Double.MIN_NORMAL) { setEndTime(Instant.now().toEpochMilli() / 1000.0d); } setInProgress(false); boolean shouldEmit = parentSegment.decrementReferenceCount() && parentSegment.isSampled(); if (shouldEmit) { checkAlreadyEmitted(); setEmitted(true); } return shouldEmit; }
@Override public boolean end() { if (logger.isDebugEnabled()) { logger.debug("Subsegment named '" + getName() + "' ending. Parent segment named '" + parentSegment.getName() + "' has reference count " + parentSegment.getReferenceCount()); } if (getEndTime() < Double.MIN_NORMAL) { setEndTime(Instant.now().toEpochMilli() / 1000.0d); } setInProgress(false); boolean shouldEmit = parentSegment.decrementReferenceCount() && parentSegment.isSampled(); if (shouldEmit) { checkAlreadyEmitted(); setEmitted(true); } return shouldEmit; }
/** * 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); } }
private Segment beginSegment(Segment segment) { SegmentContext context = getSegmentContext(); if (null == context) { return null; } Entity current; if ((current = getTraceEntity()) != null) { logger.error("Beginning new segment while another segment exists in the segment context. Overwriting current segment named '" + current.getName() + "' to start new segment named '" + segment.getName() + "'."); } segment.setAws(getAwsRuntimeContext()); if (null != getOrigin()){ segment.setOrigin(getOrigin()); } segment.putAllService(getServiceRuntimeContext()); setTraceEntity(segment); return context.beginSegment(this, segment); }
private Segment beginSegment(Segment segment) { SegmentContext context = getSegmentContext(); if (null == context) { return null; } Entity current; if ((current = getTraceEntity()) != null) { logger.error("Beginning new segment while another segment exists in the segment context. Overwriting current segment named '" + current.getName() + "' to start new segment named '" + segment.getName() + "'."); } segment.setAws(getAwsRuntimeContext()); if (null != getOrigin()){ segment.setOrigin(getOrigin()); } segment.putAllService(getServiceRuntimeContext()); setTraceEntity(segment); return context.beginSegment(this, segment); }