Package io.sentry

Class Hub

java.lang.Object
io.sentry.Hub
All Implemented Interfaces:
IHub, MetricsApi.IMetricsInterface

public final class Hub extends Object implements IHub, MetricsApi.IMetricsInterface
  • Constructor Details

  • Method Details

    • isEnabled

      public boolean isEnabled()
      Description copied from interface: IHub
      Check if the Hub is enabled/active.
      Specified by:
      isEnabled in interface IHub
      Returns:
      true if its enabled or false otherwise.
    • captureEvent

      @NotNull public @NotNull SentryId captureEvent(@NotNull @NotNull SentryEvent event, @Nullable @Nullable Hint hint)
      Description copied from interface: IHub
      Captures the event.
      Specified by:
      captureEvent in interface IHub
      Parameters:
      event - the event
      hint - SDK specific but provides high level information about the origin of the event
      Returns:
      The Id (SentryId object) of the event
    • captureEvent

      @NotNull public @NotNull SentryId captureEvent(@NotNull @NotNull SentryEvent event, @Nullable @Nullable Hint hint, @NotNull @NotNull ScopeCallback callback)
      Description copied from interface: IHub
      Captures the event.
      Specified by:
      captureEvent in interface IHub
      Parameters:
      event - the event
      hint - SDK specific but provides high level information about the origin of the event
      callback - The callback to configure the scope for a single invocation.
      Returns:
      The Id (SentryId object) of the event
    • captureMessage

      @NotNull public @NotNull SentryId captureMessage(@NotNull @NotNull String message, @NotNull @NotNull SentryLevel level)
      Description copied from interface: IHub
      Captures the message.
      Specified by:
      captureMessage in interface IHub
      Parameters:
      message - The message to send.
      level - The message level.
      Returns:
      The Id (SentryId object) of the event
    • captureMessage

      @NotNull public @NotNull SentryId captureMessage(@NotNull @NotNull String message, @NotNull @NotNull SentryLevel level, @NotNull @NotNull ScopeCallback callback)
      Description copied from interface: IHub
      Captures the message.
      Specified by:
      captureMessage in interface IHub
      Parameters:
      message - The message to send.
      level - The message level.
      callback - The callback to configure the scope for a single invocation.
      Returns:
      The Id (SentryId object) of the event
    • captureEnvelope

      @Internal @NotNull public @NotNull SentryId captureEnvelope(@NotNull @NotNull SentryEnvelope envelope, @Nullable @Nullable Hint hint)
      Description copied from interface: IHub
      Captures an envelope.
      Specified by:
      captureEnvelope in interface IHub
      Parameters:
      envelope - the SentryEnvelope to send.
      hint - SDK specific but provides high level information about the origin of the event
      Returns:
      The Id (SentryId object) of the event
    • captureException

      @NotNull public @NotNull SentryId captureException(@NotNull @NotNull Throwable throwable, @Nullable @Nullable Hint hint)
      Description copied from interface: IHub
      Captures the exception.
      Specified by:
      captureException in interface IHub
      Parameters:
      throwable - The exception.
      hint - SDK specific but provides high level information about the origin of the event
      Returns:
      The Id (SentryId object) of the event
    • captureException

      @NotNull public @NotNull SentryId captureException(@NotNull @NotNull Throwable throwable, @Nullable @Nullable Hint hint, @NotNull @NotNull ScopeCallback callback)
      Description copied from interface: IHub
      Captures the exception.
      Specified by:
      captureException in interface IHub
      Parameters:
      throwable - The exception.
      hint - SDK specific but provides high level information about the origin of the event
      callback - The callback to configure the scope for a single invocation.
      Returns:
      The Id (SentryId object) of the event
    • captureUserFeedback

      public void captureUserFeedback(@NotNull @NotNull UserFeedback userFeedback)
      Description copied from interface: IHub
      Captures a manually created user feedback and sends it to Sentry.
      Specified by:
      captureUserFeedback in interface IHub
      Parameters:
      userFeedback - The user feedback to send to Sentry.
    • startSession

      public void startSession()
      Description copied from interface: IHub
      Starts a new session. If there's a running session, it ends it before starting the new one.
      Specified by:
      startSession in interface IHub
    • endSession

      public void endSession()
      Description copied from interface: IHub
      Ends the current session
      Specified by:
      endSession in interface IHub
    • close

      public void close()
      Description copied from interface: IHub
      Flushes out the queue for up to timeout seconds and disable the Hub.
      Specified by:
      close in interface IHub
    • close

      public void close(boolean isRestarting)
      Description copied from interface: IHub
      Flushes out the queue for up to timeout seconds and disable the Hub.
      Specified by:
      close in interface IHub
      Parameters:
      isRestarting - if true, avoids locking the main thread when finishing the queue.
    • addBreadcrumb

      public void addBreadcrumb(@NotNull @NotNull Breadcrumb breadcrumb, @Nullable @Nullable Hint hint)
      Description copied from interface: IHub
      Adds a breadcrumb to the current Scope
      Specified by:
      addBreadcrumb in interface IHub
      Parameters:
      breadcrumb - the breadcrumb
      hint - SDK specific but provides high level information about the origin of the event
    • addBreadcrumb

      public void addBreadcrumb(@NotNull @NotNull Breadcrumb breadcrumb)
      Description copied from interface: IHub
      Adds a breadcrumb to the current Scope
      Specified by:
      addBreadcrumb in interface IHub
      Parameters:
      breadcrumb - the breadcrumb
    • setLevel

      public void setLevel(@Nullable @Nullable SentryLevel level)
      Description copied from interface: IHub
      Sets the level of all events sent within current Scope
      Specified by:
      setLevel in interface IHub
      Parameters:
      level - the Sentry level
    • setTransaction

      public void setTransaction(@Nullable @Nullable String transaction)
      Description copied from interface: IHub
      Sets the name of the current transaction to the current Scope.
      Specified by:
      setTransaction in interface IHub
      Parameters:
      transaction - the transaction
    • setUser

      public void setUser(@Nullable @Nullable User user)
      Description copied from interface: IHub
      Shallow merges user configuration (email, username, etc) to the current Scope.
      Specified by:
      setUser in interface IHub
      Parameters:
      user - the user
    • setFingerprint

      public void setFingerprint(@NotNull @NotNull List<String> fingerprint)
      Description copied from interface: IHub
      Sets the fingerprint to group specific events together to the current Scope.
      Specified by:
      setFingerprint in interface IHub
      Parameters:
      fingerprint - the fingerprints
    • clearBreadcrumbs

      public void clearBreadcrumbs()
      Description copied from interface: IHub
      Deletes current breadcrumbs from the current scope.
      Specified by:
      clearBreadcrumbs in interface IHub
    • setTag

      public void setTag(@NotNull @NotNull String key, @NotNull @NotNull String value)
      Description copied from interface: IHub
      Sets the tag to a string value to the current Scope, overwriting a potential previous value
      Specified by:
      setTag in interface IHub
      Parameters:
      key - the key
      value - the value
    • removeTag

      public void removeTag(@NotNull @NotNull String key)
      Description copied from interface: IHub
      Removes the tag to a string value to the current Scope
      Specified by:
      removeTag in interface IHub
      Parameters:
      key - the key
    • setExtra

      public void setExtra(@NotNull @NotNull String key, @NotNull @NotNull String value)
      Description copied from interface: IHub
      Sets the extra key to an arbitrary value to the current Scope, overwriting a potential previous value
      Specified by:
      setExtra in interface IHub
      Parameters:
      key - the key
      value - the value
    • removeExtra

      public void removeExtra(@NotNull @NotNull String key)
      Description copied from interface: IHub
      Removes the extra key to an arbitrary value to the current Scope
      Specified by:
      removeExtra in interface IHub
      Parameters:
      key - the key
    • getLastEventId

      @NotNull public @NotNull SentryId getLastEventId()
      Description copied from interface: IHub
      Last event id recorded in the current scope
      Specified by:
      getLastEventId in interface IHub
      Returns:
      last SentryId
    • pushScope

      public void pushScope()
      Description copied from interface: IHub
      Pushes a new scope while inheriting the current scope's data.
      Specified by:
      pushScope in interface IHub
    • getOptions

      @NotNull public @NotNull SentryOptions getOptions()
      Description copied from interface: IHub
      Gets the SentryOptions attached to current scope.
      Specified by:
      getOptions in interface IHub
      Returns:
      the options attached to current scope.
    • isCrashedLastRun

      @Nullable public @Nullable Boolean isCrashedLastRun()
      Description copied from interface: IHub
      Returns if the App has crashed (Process has terminated) during the last run. It only returns true or false if offline caching {SentryOptions.getCacheDirPath() } is set with a valid dir.

      If the call to this method is early in the App lifecycle and the SDK could not check if the App has crashed in the background, the check is gonna do IO in the calling thread.

      Specified by:
      isCrashedLastRun in interface IHub
      Returns:
      true if App has crashed, false otherwise, and null if not evaluated yet
    • reportFullyDisplayed

      public void reportFullyDisplayed()
      Description copied from interface: IHub
      Report a screen has been fully loaded. That means all data needed by the UI was loaded. If time-to-full-display tracing {SentryOptions.isEnableTimeToFullDisplayTracing() } is disabled this call is ignored.

      This method is safe to be called multiple times. If the time-to-full-display span is already finished, this call will be ignored.

      Specified by:
      reportFullyDisplayed in interface IHub
    • popScope

      public void popScope()
      Description copied from interface: IHub
      Removes the first scope
      Specified by:
      popScope in interface IHub
    • withScope

      public void withScope(@NotNull @NotNull ScopeCallback callback)
      Description copied from interface: IHub
      Runs the callback with a new scope which gets dropped at the end. If you're using the Sentry SDK in globalHubMode (defaults to true on Android) Sentry.init(Sentry.OptionsConfiguration, boolean) calling withScope is discouraged, as scope changes may be dropped when executed in parallel. Use IHub.configureScope(ScopeCallback) instead.
      Specified by:
      withScope in interface IHub
      Parameters:
      callback - the callback
    • configureScope

      public void configureScope(@NotNull @NotNull ScopeCallback callback)
      Description copied from interface: IHub
      Configures the scope through the callback.
      Specified by:
      configureScope in interface IHub
      Parameters:
      callback - The configure scope callback.
    • bindClient

      public void bindClient(@NotNull @NotNull ISentryClient client)
      Description copied from interface: IHub
      Binds a different client to the hub
      Specified by:
      bindClient in interface IHub
      Parameters:
      client - the client.
    • isHealthy

      public boolean isHealthy()
      Description copied from interface: IHub
      Whether the transport is healthy.
      Specified by:
      isHealthy in interface IHub
      Returns:
      true if the transport is healthy
    • flush

      public void flush(long timeoutMillis)
      Description copied from interface: IHub
      Flushes events queued up, but keeps the Hub enabled. Not implemented yet.
      Specified by:
      flush in interface IHub
      Parameters:
      timeoutMillis - time in milliseconds
    • clone

      @NotNull public @NotNull IHub clone()
      Description copied from interface: IHub
      Clones the Hub
      Specified by:
      clone in interface IHub
      Overrides:
      clone in class Object
      Returns:
      the cloned Hub
    • captureTransaction

      @Internal @NotNull public @NotNull SentryId captureTransaction(@NotNull @NotNull SentryTransaction transaction, @Nullable @Nullable TraceContext traceContext, @Nullable @Nullable Hint hint, @Nullable @Nullable ProfilingTraceData profilingTraceData)
      Description copied from interface: IHub
      Captures the transaction and enqueues it for sending to Sentry server.
      Specified by:
      captureTransaction in interface IHub
      Parameters:
      transaction - the transaction
      traceContext - the trace context
      hint - the hints
      profilingTraceData - the profiling trace data
      Returns:
      transaction's id
    • startTransaction

      @NotNull public @NotNull ITransaction startTransaction(@NotNull @NotNull TransactionContext transactionContext, @NotNull @NotNull TransactionOptions transactionOptions)
      Description copied from interface: IHub
      Creates a Transaction and returns the instance. Based on the passed transaction context and transaction options the decision if transaction is sampled will be taken by TracesSampler.
      Specified by:
      startTransaction in interface IHub
      Parameters:
      transactionContext - the transaction context
      transactionOptions - the transaction options
      Returns:
      created transaction.
    • traceHeaders

      @Deprecated @Nullable public @Nullable SentryTraceHeader traceHeaders()
      Deprecated.
      Description copied from interface: IHub
      Returns the "sentry-trace" header that allows tracing across services. Can also be used in <meta> HTML tags. Also see IHub.getBaggage().
      Specified by:
      traceHeaders in interface IHub
      Returns:
      sentry trace header or null
    • getSpan

      @Nullable public @Nullable ISpan getSpan()
      Description copied from interface: IHub
      Gets the current active transaction or span.
      Specified by:
      getSpan in interface IHub
      Returns:
      the active span or null when no active transaction is running
    • getTransaction

      @Internal @Nullable public @Nullable ITransaction getTransaction()
      Description copied from interface: IHub
      Returns the transaction.
      Specified by:
      getTransaction in interface IHub
      Returns:
      the transaction or null when no active transaction is running.
    • setSpanContext

      @Internal public void setSpanContext(@NotNull @NotNull Throwable throwable, @NotNull @NotNull ISpan span, @NotNull @NotNull String transactionName)
      Description copied from interface: IHub
      Associates ISpan and the transaction name with the Throwable. Used to determine in which trace the exception has been thrown in framework integrations.
      Specified by:
      setSpanContext in interface IHub
      Parameters:
      throwable - the throwable
      span - the span context
      transactionName - the transaction name
    • continueTrace

      @Nullable public @Nullable TransactionContext continueTrace(@Nullable @Nullable String sentryTrace, @Nullable @Nullable List<String> baggageHeaders)
      Description copied from interface: IHub
      Continue a trace based on HTTP header values. If no "sentry-trace" header is provided a random trace ID and span ID is created.
      Specified by:
      continueTrace in interface IHub
      Parameters:
      sentryTrace - "sentry-trace" header
      baggageHeaders - "baggage" headers
      Returns:
      a transaction context for starting a transaction or null if performance is disabled
    • getTraceparent

      @Nullable public @Nullable SentryTraceHeader getTraceparent()
      Description copied from interface: IHub
      Returns the "sentry-trace" header that allows tracing across services. Can also be used in <meta> HTML tags. Also see IHub.getBaggage().
      Specified by:
      getTraceparent in interface IHub
      Returns:
      sentry trace header or null
    • getBaggage

      @Nullable public @Nullable BaggageHeader getBaggage()
      Description copied from interface: IHub
      Returns the "baggage" header that allows tracing across services. Can also be used in <meta> HTML tags. Also see IHub.getTraceparent().
      Specified by:
      getBaggage in interface IHub
      Returns:
      baggage header or null
    • captureCheckIn

      @Experimental @NotNull public @NotNull SentryId captureCheckIn(@NotNull @NotNull CheckIn checkIn)
      Specified by:
      captureCheckIn in interface IHub
    • captureReplay

      @NotNull public @NotNull SentryId captureReplay(@NotNull @NotNull SentryReplayEvent replay, @Nullable @Nullable Hint hint)
      Specified by:
      captureReplay in interface IHub
    • getRateLimiter

      @Internal @Nullable public @Nullable RateLimiter getRateLimiter()
      Specified by:
      getRateLimiter in interface IHub
    • metrics

      @NotNull public @NotNull MetricsApi metrics()
      Specified by:
      metrics in interface IHub
    • getMetricsAggregator

      @NotNull public @NotNull IMetricsAggregator getMetricsAggregator()
      Specified by:
      getMetricsAggregator in interface MetricsApi.IMetricsInterface
    • getDefaultTagsForMetrics

      @NotNull public @NotNull Map<String,String> getDefaultTagsForMetrics()
      Specified by:
      getDefaultTagsForMetrics in interface MetricsApi.IMetricsInterface
    • startSpanForMetric

      @Nullable public @Nullable ISpan startSpanForMetric(@NotNull @NotNull String op, @NotNull @NotNull String description)
      Specified by:
      startSpanForMetric in interface MetricsApi.IMetricsInterface
    • getLocalMetricsAggregator

      @Nullable public @Nullable LocalMetricsAggregator getLocalMetricsAggregator()
      Specified by:
      getLocalMetricsAggregator in interface MetricsApi.IMetricsInterface