Interface SpanContext
Spans and across process boundaries. It contains the identifiers (a trace_id and span_id) associated with the Span and a set of options
(currently only whether the context is sampled or not), as well as the traceState and the remote flag.
Implementations of this interface *must* be immutable and have well-defined value-based
equals/hashCode implementations. If an implementation does not strictly conform to these
requirements, behavior of the OpenTelemetry APIs and default SDK cannot be guaranteed. It is
strongly suggested that you use the implementation that is provided here via create(String, String, TraceFlags, TraceState) or createFromRemoteParent(String, String, TraceFlags, TraceState).
-
Method Summary
Modifier and TypeMethodDescriptionstatic SpanContextcreate(String traceIdHex, String spanIdHex, TraceFlags traceFlags, TraceState traceState) Creates a newSpanContextwith the given identifiers and options.static SpanContextcreateFromRemoteParent(String traceIdHex, String spanIdHex, TraceFlags traceFlags, TraceState traceState) Creates a newSpanContextthat was propagated from a remote parent, with the given identifiers and options.static SpanContextReturns the invalidSpanContextthat can be used for no-op operations.Returns the span identifier associated with thisSpanContextas 16 character lowercase hex String.default byte[]Returns the span identifier associated with thisSpanContextas 8-byte array.Returns the trace flags associated with thisSpanContext.Returns the trace identifier associated with thisSpanContextas 32 character lowercase hex String.default byte[]Returns the trace identifier associated with thisSpanContextas 16-byte array.Returns theTraceStateassociated with thisSpanContext.booleanisRemote()Returnstrueif theSpanContextwas propagated from a remote parent.default booleanWhether the span in this context is sampled.default booleanisValid()Returnstrueif thisSpanContextis valid.
-
Method Details
-
getInvalid
Returns the invalidSpanContextthat can be used for no-op operations.- Returns:
- the invalid
SpanContext.
-
create
static SpanContext create(String traceIdHex, String spanIdHex, TraceFlags traceFlags, TraceState traceState) Creates a newSpanContextwith the given identifiers and options.If the traceId or the spanId are invalid (ie. do not conform to the requirements for hexadecimal ids of the appropriate lengths), both will be replaced with the standard "invalid" versions (i.e. all '0's). See
SpanId.isValid(CharSequence)andTraceId.isValid(CharSequence)for details.- Parameters:
traceIdHex- the trace identifier of theSpanContext.spanIdHex- the span identifier of theSpanContext.traceFlags- the trace flags of theSpanContext.traceState- the trace state for theSpanContext.- Returns:
- a new
SpanContextwith the given identifiers and options.
-
createFromRemoteParent
static SpanContext createFromRemoteParent(String traceIdHex, String spanIdHex, TraceFlags traceFlags, TraceState traceState) Creates a newSpanContextthat was propagated from a remote parent, with the given identifiers and options.If the traceId or the spanId are invalid (ie. do not conform to the requirements for hexadecimal ids of the appropriate lengths), both will be replaced with the standard "invalid" versions (i.e. all '0's). See
SpanId.isValid(CharSequence)andTraceId.isValid(CharSequence)for details.- Parameters:
traceIdHex- the trace identifier of theSpanContext.spanIdHex- the span identifier of theSpanContext.traceFlags- the trace flags of theSpanContext.traceState- the trace state for theSpanContext.- Returns:
- a new
SpanContextwith the given identifiers and options.
-
getTraceId
String getTraceId()Returns the trace identifier associated with thisSpanContextas 32 character lowercase hex String.- Returns:
- the trace identifier associated with this
SpanContextas lowercase hex.
-
getTraceIdBytes
default byte[] getTraceIdBytes()Returns the trace identifier associated with thisSpanContextas 16-byte array.- Returns:
- the trace identifier associated with this
SpanContextas 16-byte array.
-
getSpanId
String getSpanId()Returns the span identifier associated with thisSpanContextas 16 character lowercase hex String.- Returns:
- the span identifier associated with this
SpanContextas 16 character lowercase hex (base16) String.
-
getSpanIdBytes
default byte[] getSpanIdBytes()Returns the span identifier associated with thisSpanContextas 8-byte array.- Returns:
- the span identifier associated with this
SpanContextas 8-byte array.
-
isSampled
default boolean isSampled()Whether the span in this context is sampled. -
getTraceFlags
TraceFlags getTraceFlags()Returns the trace flags associated with thisSpanContext.- Returns:
- the trace flags associated with this
SpanContext.
-
getTraceState
TraceState getTraceState()Returns theTraceStateassociated with thisSpanContext.- Returns:
- the
TraceStateassociated with thisSpanContext.
-
isValid
default boolean isValid()Returnstrueif thisSpanContextis valid.- Returns:
trueif thisSpanContextis valid.
-
isRemote
boolean isRemote()Returnstrueif theSpanContextwas propagated from a remote parent.- Returns:
trueif theSpanContextwas propagated from a remote parent.
-