Package io.sentry

Class Span

  • All Implemented Interfaces:
    ISpan

    @Internal
    public final class Span
    extends java.lang.Object
    implements ISpan
    • Constructor Summary

      Constructors 
      Constructor Description
      Span​(@NotNull TransactionContext context, @NotNull SentryTracer sentryTracer, @NotNull IHub hub, @Nullable java.util.Date startTimestamp)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void finish()
      Sets span timestamp marking this span as finished.
      void finish​(@Nullable SpanStatus status)
      Sets span timestamp marking this span as finished.
      @NotNull java.util.Map<java.lang.String,​java.lang.Object> getData()  
      @Nullable java.lang.Object getData​(@NotNull java.lang.String key)
      Returns extra data from span or transaction.
      @Nullable java.lang.String getDescription()
      Returns the span description.
      @Nullable java.lang.Double getHighPrecisionTimestamp()  
      @NotNull java.lang.String getOperation()
      Returns the span operation.
      @Nullable SpanId getParentSpanId()  
      @Nullable TracesSamplingDecision getSamplingDecision()  
      @NotNull SpanContext getSpanContext()
      Gets the span context.
      @NotNull SpanId getSpanId()  
      @NotNull java.util.Date getStartTimestamp()  
      @Nullable SpanStatus getStatus()
      Returns the span status
      @Nullable java.lang.String getTag​(@NotNull java.lang.String key)  
      java.util.Map<java.lang.String,​java.lang.String> getTags()  
      @Nullable java.lang.Throwable getThrowable()
      Gets the throwable that was thrown during the execution of the span.
      @Nullable java.lang.Double getTimestamp()  
      @NotNull SentryId getTraceId()  
      boolean isFinished()
      Returns if span has finished.
      @Nullable java.lang.Boolean isProfileSampled()  
      @Nullable java.lang.Boolean isSampled()  
      void setData​(@NotNull java.lang.String key, @NotNull java.lang.Object value)
      Sets extra data on span or transaction.
      void setDescription​(@Nullable java.lang.String description)
      Sets span description.
      void setMeasurement​(@NotNull java.lang.String name, @NotNull java.lang.Number value)
      Set a measurement without unit.
      void setMeasurement​(@NotNull java.lang.String name, @NotNull java.lang.Number value, @NotNull MeasurementUnit unit)
      Set a measurement with specific unit.
      void setOperation​(@NotNull java.lang.String operation)
      Sets span operation.
      void setStatus​(@Nullable SpanStatus status)
      Sets span status.
      void setTag​(@NotNull java.lang.String key, @NotNull java.lang.String value)
      Sets the tag on span or transaction.
      void setThrowable​(@Nullable java.lang.Throwable throwable)
      Sets the throwable that was thrown during the execution of the span.
      @NotNull ISpan startChild​(@NotNull java.lang.String operation)
      Starts a child Span.
      @NotNull ISpan startChild​(@NotNull java.lang.String operation, @Nullable java.lang.String description)
      Starts a child Span.
      @NotNull ISpan startChild​(@NotNull java.lang.String operation, @Nullable java.lang.String description, @Nullable java.util.Date timestamp)  
      @Nullable BaggageHeader toBaggageHeader​(@Nullable java.util.List<java.lang.String> thirdPartyBaggageHeaders)
      Returns the baggage that can be sent as "baggage" header.
      @NotNull SentryTraceHeader toSentryTrace()
      Returns the trace information that could be sent as a sentry-trace header.
      @Nullable TraceContext traceContext()
      Returns the trace context.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Span

        @VisibleForTesting
        public Span​(@NotNull
                    @NotNull TransactionContext context,
                    @NotNull
                    @NotNull SentryTracer sentryTracer,
                    @NotNull
                    @NotNull IHub hub,
                    @Nullable
                    @Nullable java.util.Date startTimestamp)
    • Method Detail

      • getStartTimestamp

        @NotNull
        public @NotNull java.util.Date getStartTimestamp()
      • getTimestamp

        @Nullable
        public @Nullable java.lang.Double getTimestamp()
      • startChild

        @NotNull
        public @NotNull ISpan startChild​(@NotNull
                                         @NotNull java.lang.String operation)
        Description copied from interface: ISpan
        Starts a child Span.
        Specified by:
        startChild in interface ISpan
        Parameters:
        operation - - new span operation name
        Returns:
        a new transaction span
      • startChild

        @NotNull
        public @NotNull ISpan startChild​(@NotNull
                                         @NotNull java.lang.String operation,
                                         @Nullable
                                         @Nullable java.lang.String description,
                                         @Nullable
                                         @Nullable java.util.Date timestamp)
        Specified by:
        startChild in interface ISpan
      • startChild

        @NotNull
        public @NotNull ISpan startChild​(@NotNull
                                         @NotNull java.lang.String operation,
                                         @Nullable
                                         @Nullable java.lang.String description)
        Description copied from interface: ISpan
        Starts a child Span.
        Specified by:
        startChild in interface ISpan
        Parameters:
        operation - - new span operation name
        description - - new span description name
        Returns:
        a new transaction span
      • toSentryTrace

        @NotNull
        public @NotNull SentryTraceHeader toSentryTrace()
        Description copied from interface: ISpan
        Returns the trace information that could be sent as a sentry-trace header.
        Specified by:
        toSentryTrace in interface ISpan
        Returns:
        SentryTraceHeader.
      • toBaggageHeader

        @Nullable
        public @Nullable BaggageHeader toBaggageHeader​(@Nullable
                                                       @Nullable java.util.List<java.lang.String> thirdPartyBaggageHeaders)
        Description copied from interface: ISpan
        Returns the baggage that can be sent as "baggage" header.
        Specified by:
        toBaggageHeader in interface ISpan
        Returns:
        BaggageHeader or null if SentryOptions.isTraceSampling() is disabled.
      • finish

        public void finish()
        Description copied from interface: ISpan
        Sets span timestamp marking this span as finished.
        Specified by:
        finish in interface ISpan
      • finish

        public void finish​(@Nullable
                           @Nullable SpanStatus status)
        Description copied from interface: ISpan
        Sets span timestamp marking this span as finished.
        Specified by:
        finish in interface ISpan
        Parameters:
        status - - the status
      • setOperation

        public void setOperation​(@NotNull
                                 @NotNull java.lang.String operation)
        Description copied from interface: ISpan
        Sets span operation.
        Specified by:
        setOperation in interface ISpan
        Parameters:
        operation - - the operation
      • getOperation

        @NotNull
        public @NotNull java.lang.String getOperation()
        Description copied from interface: ISpan
        Returns the span operation.
        Specified by:
        getOperation in interface ISpan
        Returns:
        the operation
      • setDescription

        public void setDescription​(@Nullable
                                   @Nullable java.lang.String description)
        Description copied from interface: ISpan
        Sets span description.
        Specified by:
        setDescription in interface ISpan
        Parameters:
        description - - the description.
      • getDescription

        @Nullable
        public @Nullable java.lang.String getDescription()
        Description copied from interface: ISpan
        Returns the span description.
        Specified by:
        getDescription in interface ISpan
        Returns:
        the description
      • setStatus

        public void setStatus​(@Nullable
                              @Nullable SpanStatus status)
        Description copied from interface: ISpan
        Sets span status.
        Specified by:
        setStatus in interface ISpan
        Parameters:
        status - - the status.
      • getStatus

        @Nullable
        public @Nullable SpanStatus getStatus()
        Description copied from interface: ISpan
        Returns the span status
        Specified by:
        getStatus in interface ISpan
        Returns:
        the status
      • getSpanContext

        @NotNull
        public @NotNull SpanContext getSpanContext()
        Description copied from interface: ISpan
        Gets the span context.
        Specified by:
        getSpanContext in interface ISpan
        Returns:
        the span context
      • setTag

        public void setTag​(@NotNull
                           @NotNull java.lang.String key,
                           @NotNull
                           @NotNull java.lang.String value)
        Description copied from interface: ISpan
        Sets the tag on span or transaction.
        Specified by:
        setTag in interface ISpan
        Parameters:
        key - the tag key
        value - the tag value
      • getTag

        @Nullable
        public @Nullable java.lang.String getTag​(@NotNull
                                                 @NotNull java.lang.String key)
        Specified by:
        getTag in interface ISpan
      • isFinished

        public boolean isFinished()
        Description copied from interface: ISpan
        Returns if span has finished.
        Specified by:
        isFinished in interface ISpan
        Returns:
        if span has finished.
      • getData

        @NotNull
        public @NotNull java.util.Map<java.lang.String,​java.lang.Object> getData()
      • isSampled

        @Nullable
        public @Nullable java.lang.Boolean isSampled()
      • isProfileSampled

        @Nullable
        public @Nullable java.lang.Boolean isProfileSampled()
      • setThrowable

        public void setThrowable​(@Nullable
                                 @Nullable java.lang.Throwable throwable)
        Description copied from interface: ISpan
        Sets the throwable that was thrown during the execution of the span.
        Specified by:
        setThrowable in interface ISpan
        Parameters:
        throwable - - the throwable.
      • getThrowable

        @Nullable
        public @Nullable java.lang.Throwable getThrowable()
        Description copied from interface: ISpan
        Gets the throwable that was thrown during the execution of the span.
        Specified by:
        getThrowable in interface ISpan
        Returns:
        throwable or null if none
      • getTraceId

        @NotNull
        public @NotNull SentryId getTraceId()
      • getSpanId

        @NotNull
        public @NotNull SpanId getSpanId()
      • getParentSpanId

        @Nullable
        public @Nullable SpanId getParentSpanId()
      • getTags

        public java.util.Map<java.lang.String,​java.lang.String> getTags()
      • setData

        public void setData​(@NotNull
                            @NotNull java.lang.String key,
                            @NotNull
                            @NotNull java.lang.Object value)
        Description copied from interface: ISpan
        Sets extra data on span or transaction.
        Specified by:
        setData in interface ISpan
        Parameters:
        key - the data key
        value - the data value
      • getData

        @Nullable
        public @Nullable java.lang.Object getData​(@NotNull
                                                  @NotNull java.lang.String key)
        Description copied from interface: ISpan
        Returns extra data from span or transaction.
        Specified by:
        getData in interface ISpan
        Returns:
        the data
      • setMeasurement

        public void setMeasurement​(@NotNull
                                   @NotNull java.lang.String name,
                                   @NotNull
                                   @NotNull java.lang.Number value)
        Description copied from interface: ISpan
        Set a measurement without unit. When setting the measurement without the unit, no formatting will be applied to the measurement value in the Sentry product, and the value will be shown as is.

        NOTE: Setting a measurement with the same name on the same transaction multiple times only keeps the last value.

        Specified by:
        setMeasurement in interface ISpan
        Parameters:
        name - the name of the measurement
        value - the value of the measurement
      • setMeasurement

        public void setMeasurement​(@NotNull
                                   @NotNull java.lang.String name,
                                   @NotNull
                                   @NotNull java.lang.Number value,
                                   @NotNull
                                   @NotNull MeasurementUnit unit)
        Description copied from interface: ISpan
        Set a measurement with specific unit.

        NOTE: Setting a measurement with the same name on the same transaction multiple times only keeps the last value.

        Specified by:
        setMeasurement in interface ISpan
        Parameters:
        name - the name of the measurement
        value - the value of the measurement
        unit - the unit the value is measured in
      • getHighPrecisionTimestamp

        @Nullable
        public @Nullable java.lang.Double getHighPrecisionTimestamp()