/** * Sends a segment to the emitter if the segment is marked as sampled. * * @param segment * the segment to send * @return * true if the segment was emitted succesfully. */ public boolean sendSegment(Segment segment) { if (segment.isSampled()) { return emitter.sendSegment(segment); } return false; }
/** * Sends a segment to the emitter if the segment is marked as sampled. * * @param segment * the segment to send * @return * true if the segment was emitted succesfully. */ public boolean sendSegment(Segment segment) { if (segment.isSampled()) { return emitter.sendSegment(segment); } return false; }
/** * Sends a subsegment to the emitter if the subsegment's parent segment is marked as sampled. * * @param subsegment * the subsegment to send * @return * true if the subsegment was emitted succesfully. */ public boolean sendSubsegment(Subsegment subsegment) { if (subsegment.getParentSegment().isSampled()) { return emitter.sendSubsegment(subsegment); } return false; }
/** * Sends a subsegment to the emitter if the subsegment's parent segment is marked as sampled. * * @param subsegment * the subsegment to send * @return * true if the subsegment was emitted succesfully. */ public boolean sendSubsegment(Subsegment subsegment) { if (subsegment.getParentSegment().isSampled()) { return emitter.sendSubsegment(subsegment); } return false; }
/** * {@inheritDoc} * * Indicates that the provided segment requires streaming when it has been marked for sampling and its tree of subsegments reaches a size greater than {@code maxSegmentSize}. * * @see StreamingStrategy#requiresStreaming(Segment) */ public boolean requiresStreaming(Segment segment) { if (segment.isSampled() && null != segment.getTotalSize()) { return segment.getTotalSize().intValue() > maxSegmentSize; } return false; }
public static void addRequestInformation(Subsegment subsegment, HttpRequest request, String url) { subsegment.setNamespace(Namespace.REMOTE.toString()); Segment parentSegment = subsegment.getParentSegment(); TraceHeader header = new TraceHeader(parentSegment.getTraceId(), parentSegment.isSampled() ? subsegment.getId() : null, parentSegment.isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED); request.addHeader(TraceHeader.HEADER_KEY, header.toString()); Map<String, Object> requestInformation = new HashMap<>(); requestInformation.put("url", url); requestInformation.put("method", request.getRequestLine().getMethod()); subsegment.putHttp("request", requestInformation); }
/** * {@inheritDoc} * * Indicates that the provided segment requires streaming when it has been marked for sampling and its tree of subsegments reaches a size greater than {@code maxSegmentSize}. * * @see StreamingStrategy#requiresStreaming(Segment) */ public boolean requiresStreaming(Segment segment) { if (segment.isSampled() && null != segment.getTotalSize()) { return segment.getTotalSize().intValue() > maxSegmentSize; } return false; }
public static void addRequestInformation(Subsegment subsegment, HttpRequest request, String url) { subsegment.setNamespace(Namespace.REMOTE.toString()); Segment parentSegment = subsegment.getParentSegment(); TraceHeader header = new TraceHeader(parentSegment.getTraceId(), parentSegment.isSampled() ? subsegment.getId() : null, parentSegment.isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED); request.addHeader(TraceHeader.HEADER_KEY, header.toString()); Map<String, Object> requestInformation = new HashMap<>(); requestInformation.put("url", url); requestInformation.put("method", request.getRequestLine().getMethod()); subsegment.putHttp("request", requestInformation); }
/** * Checks whether the current {@code SamplingStrategy} supports forced sampling. * * @return true if forced sampling is supported and the current segment was changed from not sampled to sampled. */ public boolean forceSamplingOfCurrentSegment() { if (samplingStrategy.isForcedSamplingSupported()) { Segment segment = getCurrentSegment(); if (!segment.isSampled()) { segment.setSampled(true); return true; } } return false; }
/** * Checks whether the current {@code SamplingStrategy} supports forced sampling. * * @return true if forced sampling is supported and the current segment was changed from not sampled to sampled. */ public boolean forceSamplingOfCurrentSegment() { if (samplingStrategy.isForcedSamplingSupported()) { Segment segment = getCurrentSegment(); if (!segment.isSampled()) { segment.setSampled(true); return true; } } return false; }
@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; }
responseHeader.setSampled(created.isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED);
responseHeader.setSampled(created.isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED);
@Override public SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) { SdkHttpRequest httpRequest = context.httpRequest(); Subsegment subsegment = executionAttributes.getAttribute(entityKey); if (subsegment == null) { return httpRequest; } boolean isSampled = subsegment.getParentSegment().isSampled(); TraceHeader header = new TraceHeader( subsegment.getParentSegment().getTraceId(), isSampled ? subsegment.getId() : null, isSampled ? TraceHeader.SampleDecision.SAMPLED : TraceHeader.SampleDecision.NOT_SAMPLED ); return httpRequest.toBuilder().appendHeader(TraceHeader.HEADER_KEY, header.toString()).build(); }
@Override public SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) { SdkHttpRequest httpRequest = context.httpRequest(); Subsegment subsegment = executionAttributes.getAttribute(entityKey); if (subsegment == null) { return httpRequest; } boolean isSampled = subsegment.getParentSegment().isSampled(); TraceHeader header = new TraceHeader( subsegment.getParentSegment().getTraceId(), isSampled ? subsegment.getId() : null, isSampled ? TraceHeader.SampleDecision.SAMPLED : TraceHeader.SampleDecision.NOT_SAMPLED ); return httpRequest.toBuilder().appendHeader(TraceHeader.HEADER_KEY, header.toString()).build(); }