@Override public <Req> Boolean trySample(HttpAdapter<Req, ?> adapter, Req request) { // If either decision is false, return false Boolean leftDecision = this.left.trySample(adapter, request); if (Boolean.FALSE.equals(leftDecision)) { return false; } Boolean rightDecision = this.right.trySample(adapter, request); if (Boolean.FALSE.equals(rightDecision)) { return false; } // If either decision is null, return the other if (leftDecision == null) { return rightDecision; } if (rightDecision == null) { return leftDecision; } // Neither are null and at least one is true return leftDecision && rightDecision; }
/** * Creates a potentially noop span representing this request. This is used when you need to * provision a span in a different scope than where the request is executed. * * @since 4.4 */ public Span nextSpan(Req request) { Sampler override = httpSampler.toSampler(adapter, request, sampler); return tracer.withSampler(override).nextSpan(); }
@Override public boolean isSampled(long traceId) { Boolean decision = trySample(adapter, request); if (decision == null) return delegate.isSampled(traceId); return decision; } };
/** Creates a potentially noop span representing this request */ // copy/pasted from HttpServerHandler.nextSpan Span nextSpan(TraceContextOrSamplingFlags extracted, HttpRequest request) { Boolean sampled = extracted.sampled(); // only recreate the context if the http sampler made a decision if (sampled == null && (sampled = sampler.trySample(adapter, request)) != null) { extracted = extracted.sampled(sampled.booleanValue()); } return extracted.context() != null ? tracer.joinSpan(extracted.context()) : tracer.nextSpan(extracted); }
/** Creates a potentially noop span representing this request */ Span nextSpan(TraceContextOrSamplingFlags extracted, Req request) { Boolean sampled = extracted.sampled(); // only recreate the context if the http sampler made a decision if (sampled == null && (sampled = sampler.trySample(adapter, request)) != null) { extracted = extracted.sampled(sampled.booleanValue()); } return extracted.context() != null ? tracer.joinSpan(extracted.context()) : tracer.nextSpan(extracted); }
@Override public <Req> Boolean trySample(HttpAdapter<Req, ?> adapter, Req request) { // If either decision is false, return false Boolean leftDecision = this.left.trySample(adapter, request); if (Boolean.FALSE.equals(leftDecision)) { return false; } Boolean rightDecision = this.right.trySample(adapter, request); if (Boolean.FALSE.equals(rightDecision)) { return false; } // If either decision is null, return the other if (leftDecision == null) { return rightDecision; } if (rightDecision == null) { return leftDecision; } // Neither are null and at least one is true return leftDecision && rightDecision; }