Class DefaultTracer.NoopSpanBuilder
- java.lang.Object
-
- io.opentelemetry.api.trace.DefaultTracer.NoopSpanBuilder
-
- All Implemented Interfaces:
SpanBuilder
- Enclosing class:
- DefaultTracer
private static final class DefaultTracer.NoopSpanBuilder extends java.lang.Object implements SpanBuilder
-
-
Field Summary
Fields Modifier and Type Field Description private SpanContext
spanContext
-
Constructor Summary
Constructors Modifier Constructor Description private
NoopSpanBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DefaultTracer.NoopSpanBuilder
addLink(SpanContext spanContext)
Adds a link to the newly createdSpan
.DefaultTracer.NoopSpanBuilder
addLink(SpanContext spanContext, Attributes attributes)
Adds a link to the newly createdSpan
.(package private) static DefaultTracer.NoopSpanBuilder
create()
DefaultTracer.NoopSpanBuilder
setAllAttributes(Attributes attributes)
Sets attributes to theSpanBuilder
.<T> DefaultTracer.NoopSpanBuilder
setAttribute(AttributeKey<T> key, T value)
Sets an attribute to the newly createdSpan
.DefaultTracer.NoopSpanBuilder
setAttribute(java.lang.String key, boolean value)
Sets an attribute to the newly createdSpan
.DefaultTracer.NoopSpanBuilder
setAttribute(java.lang.String key, double value)
Sets an attribute to the newly createdSpan
.DefaultTracer.NoopSpanBuilder
setAttribute(java.lang.String key, long value)
Sets an attribute to the newly createdSpan
.DefaultTracer.NoopSpanBuilder
setAttribute(java.lang.String key, java.lang.String value)
Sets an attribute to the newly createdSpan
.DefaultTracer.NoopSpanBuilder
setNoParent()
Sets the option to become a rootSpan
for a new trace.DefaultTracer.NoopSpanBuilder
setParent(Context context)
Sets the parent to use from the specifiedContext
.DefaultTracer.NoopSpanBuilder
setSpanKind(SpanKind spanKind)
Sets theSpanKind
for the newly createdSpan
.DefaultTracer.NoopSpanBuilder
setStartTimestamp(long startTimestamp, java.util.concurrent.TimeUnit unit)
Sets an explicit start timestamp for the newly createdSpan
.Span
startSpan()
Starts a newSpan
.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.opentelemetry.api.trace.SpanBuilder
setStartTimestamp
-
-
-
-
Field Detail
-
spanContext
@Nullable private SpanContext spanContext
-
-
Method Detail
-
create
static DefaultTracer.NoopSpanBuilder create()
-
startSpan
public Span startSpan()
Description copied from interface:SpanBuilder
Starts a newSpan
.Users must manually call
Span.end()
to end thisSpan
.Does not install the newly created
Span
to the current Context.IMPORTANT: This method can be called only once per
SpanBuilder
instance and as the last method called. After this method is called calling any method is undefined behavior.Example of usage:
class MyClass { private final Tracer tracer; MyClass(OpenTelemetry openTelemetry) { tracer = openTelemetry.getTracer("com.example.rpc"); } void doWork(Span parent) { Span childSpan = tracer.spanBuilder("MyChildSpan") .setParent(Context.current().with(parent)) .startSpan(); childSpan.addEvent("my event"); 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:
startSpan
in interfaceSpanBuilder
- Returns:
- the newly created
Span
.
-
setParent
public DefaultTracer.NoopSpanBuilder setParent(Context context)
Description copied from interface:SpanBuilder
Sets the parent to use from the specifiedContext
. If not set, the value ofSpan.current()
atSpanBuilder.startSpan()
time will be used as parent.If no
Span
is available in the specifiedContext
, the resultingSpan
will become a root instance, as ifSpanBuilder.setNoParent()
had been called.If called multiple times, only the last specified value will be used. Observe that the state defined by a previous call to
SpanBuilder.setNoParent()
will be discarded.- Specified by:
setParent
in interfaceSpanBuilder
- Parameters:
context
- theContext
.- Returns:
- this.
-
setNoParent
public DefaultTracer.NoopSpanBuilder setNoParent()
Description copied from interface:SpanBuilder
Sets the option to become a rootSpan
for a new trace. If not set, the value ofSpan.current()
atSpanBuilder.startSpan()
time will be used as parent.Observe that any previously set parent will be discarded.
- Specified by:
setNoParent
in interfaceSpanBuilder
- Returns:
- this.
-
addLink
public DefaultTracer.NoopSpanBuilder addLink(SpanContext spanContext)
Description copied from interface:SpanBuilder
Adds a link to the newly createdSpan
.Links are used to link
Span
s in different traces. Used (for example) in batching operations, where a single batch handler processes multiple requests from different traces or the same trace.Implementations may ignore calls with an invalid span context.
- Specified by:
addLink
in interfaceSpanBuilder
- Parameters:
spanContext
- the context of the linkedSpan
.- Returns:
- this.
-
addLink
public DefaultTracer.NoopSpanBuilder addLink(SpanContext spanContext, Attributes attributes)
Description copied from interface:SpanBuilder
Adds a link to the newly createdSpan
.Links are used to link
Span
s in different traces. Used (for example) in batching operations, where a single batch handler processes multiple requests from different traces or the same trace.Implementations may ignore calls with an invalid span context.
- Specified by:
addLink
in interfaceSpanBuilder
- Parameters:
spanContext
- the context of the linkedSpan
.attributes
- the attributes of theLink
.- Returns:
- this.
-
setAttribute
public DefaultTracer.NoopSpanBuilder setAttribute(java.lang.String key, java.lang.String value)
Description copied from interface:SpanBuilder
Sets an attribute to the newly createdSpan
. IfSpanBuilder
previously contained a mapping for the key, the old value is replaced by the specified value.If a null or empty String
value
is passed in, the behavior is undefined, and hence strongly discouraged.Note: It is strongly recommended to use
SpanBuilder.setAttribute(AttributeKey, Object)
, and pre-allocate your keys, if possible.- Specified by:
setAttribute
in interfaceSpanBuilder
- Parameters:
key
- the key for this attribute.value
- the value for this attribute.- Returns:
- this.
-
setAttribute
public DefaultTracer.NoopSpanBuilder setAttribute(java.lang.String key, long value)
Description copied from interface:SpanBuilder
Sets an attribute to the newly createdSpan
. IfSpanBuilder
previously contained a mapping for the key, the old value is replaced by the specified value.Note: It is strongly recommended to use
SpanBuilder.setAttribute(AttributeKey, Object)
, and pre-allocate your keys, if possible.- Specified by:
setAttribute
in interfaceSpanBuilder
- Parameters:
key
- the key for this attribute.value
- the value for this attribute.- Returns:
- this.
-
setAttribute
public DefaultTracer.NoopSpanBuilder setAttribute(java.lang.String key, double value)
Description copied from interface:SpanBuilder
Sets an attribute to the newly createdSpan
. IfSpanBuilder
previously contained a mapping for the key, the old value is replaced by the specified value.Note: It is strongly recommended to use
SpanBuilder.setAttribute(AttributeKey, Object)
, and pre-allocate your keys, if possible.- Specified by:
setAttribute
in interfaceSpanBuilder
- Parameters:
key
- the key for this attribute.value
- the value for this attribute.- Returns:
- this.
-
setAttribute
public DefaultTracer.NoopSpanBuilder setAttribute(java.lang.String key, boolean value)
Description copied from interface:SpanBuilder
Sets an attribute to the newly createdSpan
. IfSpanBuilder
previously contained a mapping for the key, the old value is replaced by the specified value.Note: It is strongly recommended to use
SpanBuilder.setAttribute(AttributeKey, Object)
, and pre-allocate your keys, if possible.- Specified by:
setAttribute
in interfaceSpanBuilder
- Parameters:
key
- the key for this attribute.value
- the value for this attribute.- Returns:
- this.
-
setAttribute
public <T> DefaultTracer.NoopSpanBuilder setAttribute(AttributeKey<T> key, T value)
Description copied from interface:SpanBuilder
Sets an attribute to the newly createdSpan
. IfSpanBuilder
previously contained a mapping for the key, the old value is replaced by the specified value.Note: the behavior of null values is undefined, and hence strongly discouraged.
- Specified by:
setAttribute
in interfaceSpanBuilder
- Parameters:
key
- the key for this attribute.value
- the value for this attribute.- Returns:
- this.
-
setAllAttributes
public DefaultTracer.NoopSpanBuilder setAllAttributes(Attributes attributes)
Description copied from interface:SpanBuilder
Sets attributes to theSpanBuilder
. If theSpanBuilder
previously contained a mapping for any of the keys, the old values are replaced by the specified values.- Specified by:
setAllAttributes
in interfaceSpanBuilder
- Parameters:
attributes
- the attributes- Returns:
- this.
-
setSpanKind
public DefaultTracer.NoopSpanBuilder setSpanKind(SpanKind spanKind)
Description copied from interface:SpanBuilder
Sets theSpanKind
for the newly createdSpan
. If not called, the implementation will provide a default valueSpanKind.INTERNAL
.- Specified by:
setSpanKind
in interfaceSpanBuilder
- Parameters:
spanKind
- the kind of the newly createdSpan
.- Returns:
- this.
-
setStartTimestamp
public DefaultTracer.NoopSpanBuilder setStartTimestamp(long startTimestamp, java.util.concurrent.TimeUnit unit)
Description copied from interface:SpanBuilder
Sets an explicit start timestamp for the newly createdSpan
.LIRInstruction.Use this method to specify an explicit start timestamp. If not called, the implementation will use the timestamp value at
SpanBuilder.startSpan()
time, which should be the default case.Important this is NOT equivalent with System.nanoTime().
- Specified by:
setStartTimestamp
in interfaceSpanBuilder
- Parameters:
startTimestamp
- the explicit start timestamp from the epoch of the newly createdSpan
.unit
- the unit of the timestamp.- Returns:
- this.
-
-