Class Span
- java.lang.Object
-
- io.opencensus.trace.Span
-
- Direct Known Subclasses:
BlankSpan
,NoRecordEventsSpanImpl
,RecordEventsSpanImpl
public abstract class Span extends java.lang.Object
An abstract class that represents a span. It has an associatedSpanContext
and a set ofSpan.Options
.Spans are created by the
SpanBuilder.startSpan()
method.Span
must be ended by callingend()
orend(EndSpanOptions)
- Since:
- 0.5
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Span.Kind
Type of span.static class
Span.Options
Span
options.
-
Field Summary
Fields Modifier and Type Field Description private SpanContext
context
private static java.util.Set<Span.Options>
DEFAULT_OPTIONS
private static java.util.Map<java.lang.String,AttributeValue>
EMPTY_ATTRIBUTES
private java.util.Set<Span.Options>
options
-
Constructor Summary
Constructors Modifier Constructor Description protected
Span(SpanContext context, java.util.EnumSet<Span.Options> options)
Creates a newSpan
.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description abstract void
addAnnotation(Annotation annotation)
Adds an annotation to theSpan
.void
addAnnotation(java.lang.String description)
Adds an annotation to theSpan
.abstract void
addAnnotation(java.lang.String description, java.util.Map<java.lang.String,AttributeValue> attributes)
Adds an annotation to theSpan
.void
addAttributes(java.util.Map<java.lang.String,AttributeValue> attributes)
Deprecated.abstract void
addLink(Link link)
Adds aLink
to theSpan
.void
addMessageEvent(MessageEvent messageEvent)
Adds a MessageEvent to theSpan
.void
addNetworkEvent(NetworkEvent networkEvent)
Deprecated.void
end()
Marks the end ofSpan
execution with the default options.abstract void
end(EndSpanOptions options)
Marks the end ofSpan
execution with the given options.SpanContext
getContext()
Returns theSpanContext
associated with thisSpan
.java.util.Set<Span.Options>
getOptions()
Returns the options associated with thisSpan
.void
putAttribute(java.lang.String key, AttributeValue value)
Sets an attribute to theSpan
.void
putAttributes(java.util.Map<java.lang.String,AttributeValue> attributes)
Sets a set of attributes to theSpan
.void
setStatus(Status status)
Sets theStatus
to theSpan
.
-
-
-
Field Detail
-
EMPTY_ATTRIBUTES
private static final java.util.Map<java.lang.String,AttributeValue> EMPTY_ATTRIBUTES
-
context
private final SpanContext context
-
options
private final java.util.Set<Span.Options> options
-
DEFAULT_OPTIONS
private static final java.util.Set<Span.Options> DEFAULT_OPTIONS
-
-
Constructor Detail
-
Span
protected Span(SpanContext context, @Nullable java.util.EnumSet<Span.Options> options)
Creates a newSpan
.- Parameters:
context
- the context associated with thisSpan
.options
- the options associated with thisSpan
. Ifnull
then default options will be set.- Throws:
java.lang.NullPointerException
- if context isnull
.java.lang.IllegalArgumentException
- if theSpanContext
is sampled but no RECORD_EVENTS options.- Since:
- 0.5
-
-
Method Detail
-
putAttribute
public void putAttribute(java.lang.String key, AttributeValue value)
Sets an attribute to theSpan
. If theSpan
previously contained a mapping for the key, the old value is replaced by the specified value.- Parameters:
key
- the key for this attribute.value
- the value for this attribute.- Since:
- 0.6
-
putAttributes
public void putAttributes(java.util.Map<java.lang.String,AttributeValue> attributes)
Sets a set of attributes to theSpan
. The effect of this call is equivalent to that of callingputAttribute(String, AttributeValue)
once for each element in the specified map.- Parameters:
attributes
- the attributes that will be added and associated with theSpan
.- Since:
- 0.6
-
addAttributes
@Deprecated public void addAttributes(java.util.Map<java.lang.String,AttributeValue> attributes)
Deprecated.Sets a set of attributes to theSpan
. The effect of this call is equivalent to that of callingputAttribute(String, AttributeValue)
once for each element in the specified map.- Parameters:
attributes
- the attributes that will be added and associated with theSpan
.- Since:
- 0.5
-
addAnnotation
public final void addAnnotation(java.lang.String description)
Adds an annotation to theSpan
.- Parameters:
description
- the description of the annotation time event.- Since:
- 0.5
-
addAnnotation
public abstract void addAnnotation(java.lang.String description, java.util.Map<java.lang.String,AttributeValue> attributes)
Adds an annotation to theSpan
.- Parameters:
description
- the description of the annotation time event.attributes
- the attributes that will be added; these are associated with this annotation, not theSpan
as forputAttributes(Map)
.- Since:
- 0.5
-
addAnnotation
public abstract void addAnnotation(Annotation annotation)
Adds an annotation to theSpan
.- Parameters:
annotation
- the annotations to add.- Since:
- 0.5
-
addNetworkEvent
@Deprecated public void addNetworkEvent(NetworkEvent networkEvent)
Deprecated.Adds a NetworkEvent to theSpan
.This function is only intended to be used by RPC systems (either client or server), not by higher level applications.
- Parameters:
networkEvent
- the network event to add.- Since:
- 0.5
-
addMessageEvent
public void addMessageEvent(MessageEvent messageEvent)
Adds a MessageEvent to theSpan
.This function can be used by higher level applications to record messaging event.
This method should always be overridden by users whose API versions are larger or equal to
0.12
.- Parameters:
messageEvent
- the message to add.- Since:
- 0.12
-
addLink
public abstract void addLink(Link link)
Adds aLink
to theSpan
.Used (for example) in batching operations, where a single batch handler processes multiple requests from different traces.
- Parameters:
link
- the link to add.- Since:
- 0.5
-
setStatus
public void setStatus(Status status)
Sets theStatus
to theSpan
.If used, this will override the default
Span
status. Default isStatus.OK
.Only the value of the last call will be recorded, and implementations are free to ignore previous calls. If the status is set via
EndSpanOptions.Builder.setStatus(Status)
that will always be the last call.- Parameters:
status
- theStatus
to set.- Since:
- 0.9
-
end
public abstract void end(EndSpanOptions options)
Marks the end ofSpan
execution with the given options.Only the timing of the first end call for a given
Span
will be recorded, and implementations are free to ignore all further calls.- Parameters:
options
- the options to be used for the end of theSpan
.- Since:
- 0.5
-
end
public final void end()
Marks the end ofSpan
execution with the default options.Only the timing of the first end call for a given
Span
will be recorded, and implementations are free to ignore all further calls.- Since:
- 0.5
-
getContext
public final SpanContext getContext()
Returns theSpanContext
associated with thisSpan
.- Returns:
- the
SpanContext
associated with thisSpan
. - Since:
- 0.5
-
getOptions
public final java.util.Set<Span.Options> getOptions()
Returns the options associated with thisSpan
.- Returns:
- the options associated with this
Span
. - Since:
- 0.5
-
-