Package io.sentry

Class Sentry


  • public final class Sentry
    extends java.lang.Object
    Sentry SDK main API entry point
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void addBreadcrumb​(@NotNull Breadcrumb breadcrumb)
      Adds a breadcrumb to the current Scope
      static void addBreadcrumb​(@NotNull Breadcrumb breadcrumb, @Nullable java.lang.Object hint)
      Adds a breadcrumb to the current Scope
      static void addBreadcrumb​(@NotNull java.lang.String message)
      Adds a breadcrumb to the current Scope
      static void addBreadcrumb​(@NotNull java.lang.String message, @NotNull java.lang.String category)
      Adds a breadcrumb to the current Scope
      static void bindClient​(@NotNull ISentryClient client)
      Binds a different client to the current hub
      static @NotNull SentryId captureEvent​(@NotNull SentryEvent event)
      Captures the event.
      static @NotNull SentryId captureEvent​(@NotNull SentryEvent event, @Nullable java.lang.Object hint)
      Captures the event.
      static @NotNull SentryId captureException​(@NotNull java.lang.Throwable throwable)
      Captures the exception.
      static @NotNull SentryId captureException​(@NotNull java.lang.Throwable throwable, @Nullable java.lang.Object hint)
      Captures the exception.
      static @NotNull SentryId captureMessage​(@NotNull java.lang.String message)
      Captures the message.
      static @NotNull SentryId captureMessage​(@NotNull java.lang.String message, @NotNull SentryLevel level)
      Captures the message.
      static void captureUserFeedback​(@NotNull UserFeedback userFeedback)
      Captures a manually created user feedback and sends it to Sentry.
      static void clearBreadcrumbs()
      Deletes current breadcrumbs from the current scope.
      static void close()
      Close the SDK
      static void configureScope​(@NotNull ScopeCallback callback)
      Configures the scope through the callback.
      static void endSession()
      Ends the current session
      static void flush​(long timeoutMillis)
      Flushes events queued up to the current hub.
      static @NotNull IHub getCurrentHub()
      Returns the current (threads) hub, if none, clones the mainHub and returns it.
      static @NotNull SentryId getLastEventId()
      Last event id recorded in the current scope
      static @Nullable ISpan getSpan()
      Gets the current active transaction or span.
      static void init()
      Initializes the SDK
      static <T extends SentryOptions>
      void
      init​(@NotNull OptionsContainer<T> clazz, @NotNull Sentry.OptionsConfiguration<T> optionsConfiguration)
      Initializes the SDK
      static <T extends SentryOptions>
      void
      init​(@NotNull OptionsContainer<T> clazz, @NotNull Sentry.OptionsConfiguration<T> optionsConfiguration, boolean globalHubMode)
      Initializes the SDK
      static void init​(@NotNull Sentry.OptionsConfiguration<SentryOptions> optionsConfiguration)
      Initializes the SDK with an optional configuration options callback.
      static void init​(@NotNull Sentry.OptionsConfiguration<SentryOptions> optionsConfiguration, boolean globalHubMode)
      Initializes the SDK with an optional configuration options callback.
      static void init​(@NotNull SentryOptions options)
      Initializes the SDK with a SentryOptions.
      static void init​(@NotNull java.lang.String dsn)
      Initializes the SDK
      static boolean isEnabled()
      Check if the current Hub is enabled/active.
      static void popScope()
      Removes the first scope
      static void pushScope()
      Pushes a new scope while inheriting the current scope's data.
      static void removeExtra​(@NotNull java.lang.String key)
      Removes the extra key to an arbitrary value to the current Scope
      static void removeTag​(@NotNull java.lang.String key)
      Removes the tag to a string value to the current Scope
      static void setCurrentHub​(@NotNull IHub hub)  
      static void setExtra​(@NotNull java.lang.String key, @NotNull java.lang.String value)
      Sets the extra key to an arbitrary value to the current Scope, overwriting a potential previous value
      static void setFingerprint​(@NotNull java.util.List<java.lang.String> fingerprint)
      Sets the fingerprint to group specific events together to the current Scope.
      static void setLevel​(@Nullable SentryLevel level)
      Sets the level of all events sent within current Scope
      static void setTag​(@NotNull java.lang.String key, @NotNull java.lang.String value)
      Sets the tag to a string value to the current Scope, overwriting a potential previous value
      static void setTransaction​(@Nullable java.lang.String transaction)
      Sets the name of the current transaction to the current Scope.
      static void setUser​(@Nullable User user)
      Shallow merges user configuration (email, username, etc) to the current Scope.
      static void startSession()
      Starts a new session.
      static @NotNull ITransaction startTransaction​(@NotNull TransactionContext transactionContexts)
      Creates a Transaction and returns the instance.
      static @NotNull ITransaction startTransaction​(@NotNull TransactionContext transactionContexts, boolean bindToScope)
      Creates a Transaction and returns the instance.
      static @NotNull ITransaction startTransaction​(@NotNull TransactionContext transactionContexts, @NotNull CustomSamplingContext customSamplingContext)
      Creates a Transaction and returns the instance.
      static @NotNull ITransaction startTransaction​(@NotNull TransactionContext transactionContexts, @Nullable CustomSamplingContext customSamplingContext, boolean bindToScope)
      Creates a Transaction and returns the instance.
      static @NotNull ITransaction startTransaction​(@NotNull TransactionContext transactionContexts, @Nullable CustomSamplingContext customSamplingContext, boolean bindToScope, @Nullable java.util.Date startTimestamp)  
      static @NotNull ITransaction startTransaction​(@NotNull TransactionContext transactionContexts, @Nullable CustomSamplingContext customSamplingContext, boolean bindToScope, @Nullable java.util.Date startTimestamp, boolean waitForChildren, @Nullable TransactionFinishedCallback transactionFinishedCallback)  
      static @NotNull ITransaction startTransaction​(@NotNull java.lang.String name, @NotNull java.lang.String operation)
      Creates a Transaction and returns the instance.
      static @NotNull ITransaction startTransaction​(@NotNull java.lang.String name, @NotNull java.lang.String operation, boolean bindToScope)
      Creates a Transaction and returns the instance.
      static @NotNull ITransaction startTransaction​(@NotNull java.lang.String name, @NotNull java.lang.String operation, @NotNull CustomSamplingContext customSamplingContext)
      Creates a Transaction and returns the instance.
      static @NotNull ITransaction startTransaction​(@NotNull java.lang.String name, @NotNull java.lang.String operation, @NotNull CustomSamplingContext customSamplingContext, boolean bindToScope)
      Creates a Transaction and returns the instance.
      static @NotNull ITransaction startTransaction​(@NotNull java.lang.String name, @NotNull java.lang.String operation, @Nullable java.lang.String description)
      Creates a Transaction and returns the instance.
      static @NotNull ITransaction startTransaction​(@NotNull java.lang.String name, @NotNull java.lang.String operation, @Nullable java.lang.String description, boolean bindToScope)
      Creates a Transaction and returns the instance.
      static @Nullable SentryTraceHeader traceHeaders()
      Returns trace header of active transaction or null if no transaction is active.
      static void withScope​(@NotNull ScopeCallback callback)
      Runs the callback with a new scope which gets dropped at the end
      • Methods inherited from class java.lang.Object

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

      • getCurrentHub

        @Internal
        @NotNull
        public static @NotNull IHub getCurrentHub()
        Returns the current (threads) hub, if none, clones the mainHub and returns it.
        Returns:
        the hub
      • setCurrentHub

        @Internal
        public static void setCurrentHub​(@NotNull
                                         @NotNull IHub hub)
      • isEnabled

        public static boolean isEnabled()
        Check if the current Hub is enabled/active.
        Returns:
        true if its enabled or false otherwise.
      • init

        public static void init()
        Initializes the SDK
      • init

        public static void init​(@NotNull
                                @NotNull java.lang.String dsn)
        Initializes the SDK
        Parameters:
        dsn - The Sentry DSN
      • init

        public static <T extends SentryOptions> void init​(@NotNull
                                                          @NotNull OptionsContainer<T> clazz,
                                                          @NotNull
                                                          @NotNull Sentry.OptionsConfiguration<T> optionsConfiguration)
                                                   throws java.lang.IllegalAccessException,
                                                          java.lang.InstantiationException,
                                                          java.lang.NoSuchMethodException,
                                                          java.lang.reflect.InvocationTargetException
        Initializes the SDK
        Type Parameters:
        T - class that extends SentryOptions
        Parameters:
        clazz - OptionsContainer for SentryOptions
        optionsConfiguration - configuration options callback
        Throws:
        java.lang.IllegalAccessException - the IllegalAccessException
        java.lang.InstantiationException - the InstantiationException
        java.lang.NoSuchMethodException - the NoSuchMethodException
        java.lang.reflect.InvocationTargetException - the InvocationTargetException
      • init

        public static <T extends SentryOptions> void init​(@NotNull
                                                          @NotNull OptionsContainer<T> clazz,
                                                          @NotNull
                                                          @NotNull Sentry.OptionsConfiguration<T> optionsConfiguration,
                                                          boolean globalHubMode)
                                                   throws java.lang.IllegalAccessException,
                                                          java.lang.InstantiationException,
                                                          java.lang.NoSuchMethodException,
                                                          java.lang.reflect.InvocationTargetException
        Initializes the SDK
        Type Parameters:
        T - class that extends SentryOptions
        Parameters:
        clazz - OptionsContainer for SentryOptions
        optionsConfiguration - configuration options callback
        globalHubMode - the globalHubMode
        Throws:
        java.lang.IllegalAccessException - the IllegalAccessException
        java.lang.InstantiationException - the InstantiationException
        java.lang.NoSuchMethodException - the NoSuchMethodException
        java.lang.reflect.InvocationTargetException - the InvocationTargetException
      • init

        public static void init​(@NotNull
                                @NotNull Sentry.OptionsConfiguration<SentryOptions> optionsConfiguration)
        Initializes the SDK with an optional configuration options callback.
        Parameters:
        optionsConfiguration - configuration options callback
      • init

        public static void init​(@NotNull
                                @NotNull Sentry.OptionsConfiguration<SentryOptions> optionsConfiguration,
                                boolean globalHubMode)
        Initializes the SDK with an optional configuration options callback.
        Parameters:
        optionsConfiguration - configuration options callback
        globalHubMode - the globalHubMode
      • init

        @Internal
        public static void init​(@NotNull
                                @NotNull SentryOptions options)
        Initializes the SDK with a SentryOptions.
        Parameters:
        options - options the SentryOptions
      • close

        public static void close()
        Close the SDK
      • captureEvent

        @NotNull
        public static @NotNull SentryId captureEvent​(@NotNull
                                                     @NotNull SentryEvent event)
        Captures the event.
        Parameters:
        event - the event
        Returns:
        The Id (SentryId object) of the event
      • captureEvent

        @NotNull
        public static @NotNull SentryId captureEvent​(@NotNull
                                                     @NotNull SentryEvent event,
                                                     @Nullable
                                                     @Nullable java.lang.Object hint)
        Captures the event.
        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
      • captureMessage

        @NotNull
        public static @NotNull SentryId captureMessage​(@NotNull
                                                       @NotNull java.lang.String message)
        Captures the message.
        Parameters:
        message - The message to send.
        Returns:
        The Id (SentryId object) of the event
      • captureMessage

        @NotNull
        public static @NotNull SentryId captureMessage​(@NotNull
                                                       @NotNull java.lang.String message,
                                                       @NotNull
                                                       @NotNull SentryLevel level)
        Captures the message.
        Parameters:
        message - The message to send.
        level - The message level.
        Returns:
        The Id (SentryId object) of the event
      • captureException

        @NotNull
        public static @NotNull SentryId captureException​(@NotNull
                                                         @NotNull java.lang.Throwable throwable)
        Captures the exception.
        Parameters:
        throwable - The exception.
        Returns:
        The Id (SentryId object) of the event
      • captureException

        @NotNull
        public static @NotNull SentryId captureException​(@NotNull
                                                         @NotNull java.lang.Throwable throwable,
                                                         @Nullable
                                                         @Nullable java.lang.Object hint)
        Captures the exception.
        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
      • captureUserFeedback

        public static void captureUserFeedback​(@NotNull
                                               @NotNull UserFeedback userFeedback)
        Captures a manually created user feedback and sends it to Sentry.
        Parameters:
        userFeedback - The user feedback to send to Sentry.
      • addBreadcrumb

        public static void addBreadcrumb​(@NotNull
                                         @NotNull Breadcrumb breadcrumb,
                                         @Nullable
                                         @Nullable java.lang.Object hint)
        Adds a breadcrumb to the current Scope
        Parameters:
        breadcrumb - the breadcrumb
        hint - SDK specific but provides high level information about the origin of the event
      • addBreadcrumb

        public static void addBreadcrumb​(@NotNull
                                         @NotNull Breadcrumb breadcrumb)
        Adds a breadcrumb to the current Scope
        Parameters:
        breadcrumb - the breadcrumb
      • addBreadcrumb

        public static void addBreadcrumb​(@NotNull
                                         @NotNull java.lang.String message)
        Adds a breadcrumb to the current Scope
        Parameters:
        message - rendered as text and the whitespace is preserved.
      • addBreadcrumb

        public static void addBreadcrumb​(@NotNull
                                         @NotNull java.lang.String message,
                                         @NotNull
                                         @NotNull java.lang.String category)
        Adds a breadcrumb to the current Scope
        Parameters:
        message - rendered as text and the whitespace is preserved.
        category - Categories are dotted strings that indicate what the crumb is or where it comes from.
      • setLevel

        public static void setLevel​(@Nullable
                                    @Nullable SentryLevel level)
        Sets the level of all events sent within current Scope
        Parameters:
        level - the Sentry level
      • setTransaction

        public static void setTransaction​(@Nullable
                                          @Nullable java.lang.String transaction)
        Sets the name of the current transaction to the current Scope.
        Parameters:
        transaction - the transaction
      • setUser

        public static void setUser​(@Nullable
                                   @Nullable User user)
        Shallow merges user configuration (email, username, etc) to the current Scope.
        Parameters:
        user - the user
      • setFingerprint

        public static void setFingerprint​(@NotNull
                                          @NotNull java.util.List<java.lang.String> fingerprint)
        Sets the fingerprint to group specific events together to the current Scope.
        Parameters:
        fingerprint - the fingerprints
      • clearBreadcrumbs

        public static void clearBreadcrumbs()
        Deletes current breadcrumbs from the current scope.
      • setTag

        public static void setTag​(@NotNull
                                  @NotNull java.lang.String key,
                                  @NotNull
                                  @NotNull java.lang.String value)
        Sets the tag to a string value to the current Scope, overwriting a potential previous value
        Parameters:
        key - the key
        value - the value
      • removeTag

        public static void removeTag​(@NotNull
                                     @NotNull java.lang.String key)
        Removes the tag to a string value to the current Scope
        Parameters:
        key - the key
      • setExtra

        public static void setExtra​(@NotNull
                                    @NotNull java.lang.String key,
                                    @NotNull
                                    @NotNull java.lang.String value)
        Sets the extra key to an arbitrary value to the current Scope, overwriting a potential previous value
        Parameters:
        key - the key
        value - the value
      • removeExtra

        public static void removeExtra​(@NotNull
                                       @NotNull java.lang.String key)
        Removes the extra key to an arbitrary value to the current Scope
        Parameters:
        key - the key
      • getLastEventId

        @NotNull
        public static @NotNull SentryId getLastEventId()
        Last event id recorded in the current scope
        Returns:
        last SentryId
      • pushScope

        public static void pushScope()
        Pushes a new scope while inheriting the current scope's data.
      • popScope

        public static void popScope()
        Removes the first scope
      • withScope

        public static void withScope​(@NotNull
                                     @NotNull ScopeCallback callback)
        Runs the callback with a new scope which gets dropped at the end
        Parameters:
        callback - the callback
      • configureScope

        public static void configureScope​(@NotNull
                                          @NotNull ScopeCallback callback)
        Configures the scope through the callback.
        Parameters:
        callback - The configure scope callback.
      • bindClient

        public static void bindClient​(@NotNull
                                      @NotNull ISentryClient client)
        Binds a different client to the current hub
        Parameters:
        client - the client.
      • flush

        public static void flush​(long timeoutMillis)
        Flushes events queued up to the current hub. Not implemented yet.
        Parameters:
        timeoutMillis - time in milliseconds
      • startSession

        public static void startSession()
        Starts a new session. If there's a running session, it ends it before starting the new one.
      • endSession

        public static void endSession()
        Ends the current session
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull java.lang.String name,
                                                             @NotNull
                                                             @NotNull java.lang.String operation)
        Creates a Transaction and returns the instance. Started transaction is set on the scope.
        Parameters:
        name - the transaction name
        operation - the operation
        Returns:
        created transaction
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull java.lang.String name,
                                                             @NotNull
                                                             @NotNull java.lang.String operation,
                                                             boolean bindToScope)
        Creates a Transaction and returns the instance.
        Parameters:
        name - the transaction name
        operation - the operation
        bindToScope - if transaction should be bound to scope
        Returns:
        created transaction
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull java.lang.String name,
                                                             @NotNull
                                                             @NotNull java.lang.String operation,
                                                             @Nullable
                                                             @Nullable java.lang.String description)
        Creates a Transaction and returns the instance.
        Parameters:
        name - the transaction name
        operation - the operation
        description - the description
        Returns:
        created transaction
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull java.lang.String name,
                                                             @NotNull
                                                             @NotNull java.lang.String operation,
                                                             @Nullable
                                                             @Nullable java.lang.String description,
                                                             boolean bindToScope)
        Creates a Transaction and returns the instance.
        Parameters:
        name - the transaction name
        operation - the operation
        description - the description
        bindToScope - if transaction should be bound to scope
        Returns:
        created transaction
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull TransactionContext transactionContexts)
        Creates a Transaction and returns the instance.
        Parameters:
        transactionContexts - the transaction contexts
        Returns:
        created transaction
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull TransactionContext transactionContexts,
                                                             boolean bindToScope)
        Creates a Transaction and returns the instance.
        Parameters:
        transactionContexts - the transaction contexts
        bindToScope - if transaction should be bound to scope
        Returns:
        created transaction
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull java.lang.String name,
                                                             @NotNull
                                                             @NotNull java.lang.String operation,
                                                             @NotNull
                                                             @NotNull CustomSamplingContext customSamplingContext)
        Creates a Transaction and returns the instance. Based on the passed sampling context the decision if transaction is sampled will be taken by TracesSampler.
        Parameters:
        name - the transaction name
        operation - the operation
        customSamplingContext - the sampling context
        Returns:
        created transaction.
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull java.lang.String name,
                                                             @NotNull
                                                             @NotNull java.lang.String operation,
                                                             @NotNull
                                                             @NotNull CustomSamplingContext customSamplingContext,
                                                             boolean bindToScope)
        Creates a Transaction and returns the instance. Based on the passed sampling context the decision if transaction is sampled will be taken by TracesSampler.
        Parameters:
        name - the transaction name
        operation - the operation
        customSamplingContext - the sampling context
        bindToScope - if transaction should be bound to scope
        Returns:
        created transaction.
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull TransactionContext transactionContexts,
                                                             @NotNull
                                                             @NotNull CustomSamplingContext customSamplingContext)
        Creates a Transaction and returns the instance. Based on the passed transaction and sampling contexts the decision if transaction is sampled will be taken by TracesSampler.
        Parameters:
        transactionContexts - the transaction context
        customSamplingContext - the sampling context
        Returns:
        created transaction.
      • startTransaction

        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull TransactionContext transactionContexts,
                                                             @Nullable
                                                             @Nullable CustomSamplingContext customSamplingContext,
                                                             boolean bindToScope)
        Creates a Transaction and returns the instance. Based on the passed transaction and sampling contexts the decision if transaction is sampled will be taken by TracesSampler.
        Parameters:
        transactionContexts - the transaction context
        customSamplingContext - the sampling context
        bindToScope - if transaction should be bound to scope
        Returns:
        created transaction.
      • startTransaction

        @Internal
        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull TransactionContext transactionContexts,
                                                             @Nullable
                                                             @Nullable CustomSamplingContext customSamplingContext,
                                                             boolean bindToScope,
                                                             @Nullable
                                                             @Nullable java.util.Date startTimestamp)
      • startTransaction

        @Internal
        @NotNull
        public static @NotNull ITransaction startTransaction​(@NotNull
                                                             @NotNull TransactionContext transactionContexts,
                                                             @Nullable
                                                             @Nullable CustomSamplingContext customSamplingContext,
                                                             boolean bindToScope,
                                                             @Nullable
                                                             @Nullable java.util.Date startTimestamp,
                                                             boolean waitForChildren,
                                                             @Nullable
                                                             @Nullable TransactionFinishedCallback transactionFinishedCallback)
      • traceHeaders

        @Nullable
        public static @Nullable SentryTraceHeader traceHeaders()
        Returns trace header of active transaction or null if no transaction is active.
        Returns:
        trace header or null
      • getSpan

        @Nullable
        public static @Nullable ISpan getSpan()
        Gets the current active transaction or span.
        Returns:
        the active span or null when no active transaction is running