public interface Tracer
Modifier and Type | Interface and Description |
---|---|
static interface |
Tracer.SpanBuilder |
Modifier and Type | Method and Description |
---|---|
Tracer.SpanBuilder |
buildSpan(String operationName)
Return a new SpanBuilder for a Span with the given `operationName`.
|
SpanContext |
extract(Object carrier)
Extract a SpanContext from a `carrier` of a given type, presumably after propagation across a process boundary.
|
void |
inject(SpanContext spanContext,
Object carrier)
Inject a SpanContext into a `carrier` of a given type, presumably for propagation across process boundaries.
|
Tracer.SpanBuilder buildSpan(String operationName)
A contrived example:
Tracer tracer = ...
Span parentSpan = tracer.buildSpan("DoWork")
.start();
Span http = tracer.buildSpan("HandleHTTPRequest")
.asChildOf(parentSpan.context())
.withTag("user_agent", req.UserAgent)
.withTag("lucky_number", 42)
.start();
void inject(SpanContext spanContext, Object carrier)
Example:
Tracer tracer = ...
Span clientSpan = ...
HttpHeaderWriter httpHeaderWriter = new AnHttpHeaderCarrier(httpRequest);
tracer.inject(span.context(), httpHeaderWriter);
spanContext
- the SpanContext instance to inject into the carriercarrier
- the carrier for the SpanContext state; when inject() returns, the Tracer implementation will have represented the SpanContext within `carrier`. All Tracer.inject() implementations must support io.opentracing.propagation.TextMapWriter, io.opentracing.propagation.HttpHeaderWriter, and java.nio.ByteBuffer.io.opentracing.propagation
SpanContext extract(Object carrier)
Example:
Tracer tracer = ...
HttpHeaderReader httpHeaderReader = new AnHttpHeaderCarrier(httpRequest);
SpanContext spanCtx = tracer.extract(httpHeaderReader);
tracer.buildSpan('...').withChildOf(spanCtx).start();
If the span serialized state is invalid (corrupt, wrong version, etc) inside the carrier this will result in an IllegalArgumentException.carrier
- the carrier for the SpanContext state. All Tracer.extract() implementations must support io.opentracing.propagation.TextMapReader, io.opentracing.propagation.HttpHeaderReader, and java.nio.ByteBuffer.io.opentracing.propagation
Copyright © 2016 OpenTracing. All rights reserved.