Package io.opencensus.implcore.trace
Class SpanBuilderImpl
- java.lang.Object
-
- io.opencensus.trace.SpanBuilder
-
- io.opencensus.implcore.trace.SpanBuilderImpl
-
final class SpanBuilderImpl extends SpanBuilder
Implementation of theSpanBuilder.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classSpanBuilderImpl.Options
-
Field Summary
Fields Modifier and Type Field Description private Span.Kindkindprivate java.lang.Stringnameprivate static TraceOptionsNOT_SAMPLED_TRACE_OPTIONSprivate SpanBuilderImpl.Optionsoptionsprivate Spanparentprivate java.util.List<Span>parentLinksprivate java.lang.BooleanrecordEventsprivate SpanContextremoteParentSpanContextprivate static TraceOptionsSAMPLED_TRACE_OPTIONSprivate Samplersamplerprivate static TracestateTRACESTATE_DEFAULT
-
Constructor Summary
Constructors Modifier Constructor Description privateSpanBuilderImpl(java.lang.String name, SpanContext remoteParentSpanContext, Span parent, SpanBuilderImpl.Options options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) static SpanBuilderImplcreateWithParent(java.lang.String spanName, Span parent, SpanBuilderImpl.Options options)(package private) static SpanBuilderImplcreateWithRemoteParent(java.lang.String spanName, SpanContext remoteParentSpanContext, SpanBuilderImpl.Options options)private static booleanisAnyParentLinkSampled(java.util.List<Span> parentLinks)private static voidlinkSpans(Span span, java.util.List<Span> parentLinks)private static booleanmakeSamplingDecision(SpanContext parent, java.lang.Boolean hasRemoteParent, java.lang.String name, Sampler sampler, java.util.List<Span> parentLinks, TraceId traceId, SpanId spanId, TraceParams activeTraceParams)SpanBuilderImplsetParentLinks(java.util.List<Span> parentLinks)Sets theListof parent links.SpanBuilderImplsetRecordEvents(boolean recordEvents)Sets the optionSpan.Options.RECORD_EVENTSfor the newly createdSpan.SpanBuilderImplsetSampler(Sampler sampler)Sets theSamplerto use.SpanBuilderImplsetSpanKind(Span.Kind kind)Sets theSpan.Kindfor the newly createdSpan.SpanstartSpan()Starts a newSpan.private SpanstartSpanInternal(SpanContext parentContext, java.lang.Boolean hasRemoteParent, java.lang.String name, Sampler sampler, java.util.List<Span> parentLinks, java.lang.Boolean recordEvents, Span.Kind kind, Span parentSpan)-
Methods inherited from class io.opencensus.trace.SpanBuilder
startScopedSpan, startSpanAndCall, startSpanAndRun
-
-
-
-
Field Detail
-
TRACESTATE_DEFAULT
private static final Tracestate TRACESTATE_DEFAULT
-
SAMPLED_TRACE_OPTIONS
private static final TraceOptions SAMPLED_TRACE_OPTIONS
-
NOT_SAMPLED_TRACE_OPTIONS
private static final TraceOptions NOT_SAMPLED_TRACE_OPTIONS
-
options
private final SpanBuilderImpl.Options options
-
name
private final java.lang.String name
-
parent
@Nullable private final Span parent
-
remoteParentSpanContext
@Nullable private final SpanContext remoteParentSpanContext
-
sampler
@Nullable private Sampler sampler
-
parentLinks
private java.util.List<Span> parentLinks
-
recordEvents
@Nullable private java.lang.Boolean recordEvents
-
kind
@Nullable private Span.Kind kind
-
-
Constructor Detail
-
SpanBuilderImpl
private SpanBuilderImpl(java.lang.String name, @Nullable SpanContext remoteParentSpanContext, @Nullable Span parent, SpanBuilderImpl.Options options)
-
-
Method Detail
-
startSpanInternal
private Span startSpanInternal(@Nullable SpanContext parentContext, @Nullable java.lang.Boolean hasRemoteParent, java.lang.String name, @Nullable Sampler sampler, java.util.List<Span> parentLinks, @Nullable java.lang.Boolean recordEvents, @Nullable Span.Kind kind, @Nullable Span parentSpan)
-
makeSamplingDecision
private static boolean makeSamplingDecision(@Nullable SpanContext parent, @Nullable java.lang.Boolean hasRemoteParent, java.lang.String name, @Nullable Sampler sampler, java.util.List<Span> parentLinks, TraceId traceId, SpanId spanId, TraceParams activeTraceParams)
-
isAnyParentLinkSampled
private static boolean isAnyParentLinkSampled(java.util.List<Span> parentLinks)
-
createWithParent
static SpanBuilderImpl createWithParent(java.lang.String spanName, @Nullable Span parent, SpanBuilderImpl.Options options)
-
createWithRemoteParent
static SpanBuilderImpl createWithRemoteParent(java.lang.String spanName, @Nullable SpanContext remoteParentSpanContext, SpanBuilderImpl.Options options)
-
startSpan
public Span startSpan()
Description copied from class:SpanBuilderStarts a newSpan.Users must manually call
Span.end()orSpan.end(EndSpanOptions)to end thisSpan.Does not install the newly created
Spanto the current Context.Example of usage:
class MyClass { private static final Tracer tracer = Tracing.getTracer(); void DoWork(Span parent) { Span childSpan = tracer.spanBuilderWithExplicitParent("MyChildSpan", parent).startSpan(); childSpan.addAnnotation("my annotation"); try { doSomeWork(childSpan); // Manually propagate the new span down the stack. } finally { // To make sure we end the span even in case of an exception. childSpan.end(); // Manually end the span. } } }- Specified by:
startSpanin classSpanBuilder- Returns:
- the newly created
Span.
-
setSampler
public SpanBuilderImpl setSampler(Sampler sampler)
Description copied from class:SpanBuilderSets theSamplerto use. If not set, the implementation will provide a default.- Specified by:
setSamplerin classSpanBuilder- Parameters:
sampler- theSamplerto use when determining sampling for aSpan.- Returns:
- this.
-
setParentLinks
public SpanBuilderImpl setParentLinks(java.util.List<Span> parentLinks)
Description copied from class:SpanBuilderSets theListof parent links. Links are used to linkSpans in different traces. Used (for example) in batching operations, where a single batch handler processes multiple requests from different traces.- Specified by:
setParentLinksin classSpanBuilder- Parameters:
parentLinks- new links to be added.- Returns:
- this.
-
setRecordEvents
public SpanBuilderImpl setRecordEvents(boolean recordEvents)
Description copied from class:SpanBuilderSets the optionSpan.Options.RECORD_EVENTSfor the newly createdSpan. If not called, the implementation will provide a default.- Specified by:
setRecordEventsin classSpanBuilder- Parameters:
recordEvents- new value determining if thisSpanshould have events recorded.- Returns:
- this.
-
setSpanKind
public SpanBuilderImpl setSpanKind(@Nullable Span.Kind kind)
Description copied from class:SpanBuilderSets theSpan.Kindfor the newly createdSpan. If not called, the implementation will provide a default.- Overrides:
setSpanKindin classSpanBuilder- Parameters:
kind- the kind of the newly createdSpan.- Returns:
- this.
-
-