Interface ReadableSpan

All Known Subinterfaces:
ReadWriteSpan
All Known Implementing Classes:
SdkSpan

public interface ReadableSpan
SDK representation of a Span that can be read.
  • Method Details

    • getSpanContext

      SpanContext getSpanContext()
      Returns the SpanContext of the Span.

      Equivalent with Span.getSpanContext().

      Returns:
      the SpanContext of the Span.
    • getParentSpanContext

      SpanContext getParentSpanContext()
      Returns the parent SpanContext of the Span, or SpanContext.getInvalid() if this is a root span.
      Returns:
      the parent SpanContext of the Span
    • getName

      String getName()
      Returns the name of the Span.

      The name can be changed during the lifetime of the Span by using the Span.updateName(String) so this value cannot be cached.

      Note: the implementation of this method performs locking to ensure thread-safe behavior.

      Returns:
      the name of the Span.
    • toSpanData

      SpanData toSpanData()
      This converts this instance into an immutable SpanData instance, for use in export.
      Returns:
      an immutable SpanData instance.
    • getInstrumentationLibraryInfo

      @Deprecated InstrumentationLibraryInfo getInstrumentationLibraryInfo()
      Returns the instrumentation library specified when creating the tracer which produced this span.
      Returns:
      an instance of InstrumentationLibraryInfo describing the instrumentation library
    • getInstrumentationScopeInfo

      default InstrumentationScopeInfo getInstrumentationScopeInfo()
      Returns the instrumentation scope specified when creating the tracer which produced this span.
      Returns:
      an instance of InstrumentationScopeInfo describing the instrumentation scope
    • hasEnded

      boolean hasEnded()
      Returns whether this Span has already been ended.

      Note: the implementation of this method performs locking to ensure thread-safe behavior.

      Returns:
      true if the span has already been ended, false if not.
    • getLatencyNanos

      long getLatencyNanos()
      Returns the latency of the Span in nanos. If still active then returns now() - start time.

      Note: the implementation of this method performs locking to ensure thread-safe behavior.

      Returns:
      the latency of the Span in nanos.
    • getKind

      SpanKind getKind()
      Returns the kind of the span.
      Returns:
      the kind of the span.
    • getAttribute

      @Nullable <T> T getAttribute(AttributeKey<T> key)
      Returns the value for the given AttributeKey, or null if not found.

      The attribute values can be changed during the lifetime of the Span by using Span.setAttribute(java.lang.String, java.lang.String)} so this value cannot be cached.

      Note: the implementation of this method performs locking to ensure thread-safe behavior.

      Returns:
      the value for the given AttributeKey, or null if not found.
    • getAttributes

      default Attributes getAttributes()
      Returns the Span attributes.

      Attributes can be changed during the lifetime of the Span by using Span.setAttribute(java.lang.String, java.lang.String)} so this value cannot be cached.

      Note: the implementation of this method performs locking and returns an immutable copy to ensure thread-safe behavior. If you only need a single attribute it is better to call getAttribute(AttributeKey).

      Returns:
      the Span attributes, or Attributes.empty() if the span has no attributes.
      Since:
      1.38.0