Package io.sentry
Class Sentry
- java.lang.Object
-
- io.sentry.Sentry
-
public final class Sentry extends java.lang.Object
Sentry SDK main API entry point
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Sentry.OptionsConfiguration<T extends SentryOptions>
Configuration options callback
-
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 Scopestatic void
addBreadcrumb(@NotNull Breadcrumb breadcrumb, @Nullable java.lang.Object hint)
Adds a breadcrumb to the current Scopestatic void
addBreadcrumb(@NotNull java.lang.String message)
Adds a breadcrumb to the current Scopestatic void
addBreadcrumb(@NotNull java.lang.String message, @NotNull java.lang.String category)
Adds a breadcrumb to the current Scopestatic void
bindClient(@NotNull ISentryClient client)
Binds a different client to the current hubstatic @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 SDKstatic void
configureScope(@NotNull ScopeCallback callback)
Configures the scope through the callback.static void
endSession()
Ends the current sessionstatic 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 scopestatic @Nullable ISpan
getSpan()
Gets the current active transaction or span.static void
init()
Initializes the SDKstatic <T extends SentryOptions>
voidinit(@NotNull OptionsContainer<T> clazz, @NotNull Sentry.OptionsConfiguration<T> optionsConfiguration)
Initializes the SDKstatic <T extends SentryOptions>
voidinit(@NotNull OptionsContainer<T> clazz, @NotNull Sentry.OptionsConfiguration<T> optionsConfiguration, boolean globalHubMode)
Initializes the SDKstatic 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 SDKstatic @Nullable java.lang.Boolean
isCrashedLastRun()
Returns if the App has crashed (Process has terminated) during the last run.static boolean
isEnabled()
Check if the current Hub is enabled/active.static void
popScope()
Removes the first scopestatic 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 Scopestatic void
removeTag(@NotNull java.lang.String key)
Removes the tag to a string value to the current Scopestatic 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 valuestatic 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 Scopestatic 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 valuestatic 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 ornull
if no transaction is active.static void
withScope(@NotNull ScopeCallback callback)
Runs the callback with a new scope which gets dropped at the end
-
-
-
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 SentryOptionsoptionsConfiguration
- configuration options callback- Throws:
java.lang.IllegalAccessException
- the IllegalAccessExceptionjava.lang.InstantiationException
- the InstantiationExceptionjava.lang.NoSuchMethodException
- the NoSuchMethodExceptionjava.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 SentryOptionsoptionsConfiguration
- configuration options callbackglobalHubMode
- the globalHubMode- Throws:
java.lang.IllegalAccessException
- the IllegalAccessExceptionjava.lang.InstantiationException
- the InstantiationExceptionjava.lang.NoSuchMethodException
- the NoSuchMethodExceptionjava.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 callbackglobalHubMode
- 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 eventhint
- 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 breadcrumbhint
- 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 keyvalue
- 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 keyvalue
- 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 nameoperation
- 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 nameoperation
- the operationbindToScope
- 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 nameoperation
- the operationdescription
- 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 nameoperation
- the operationdescription
- the descriptionbindToScope
- 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 contextsbindToScope
- 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 byTracesSampler
.- Parameters:
name
- the transaction nameoperation
- the operationcustomSamplingContext
- 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 byTracesSampler
.- Parameters:
name
- the transaction nameoperation
- the operationcustomSamplingContext
- the sampling contextbindToScope
- 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 byTracesSampler
.- Parameters:
transactionContexts
- the transaction contextcustomSamplingContext
- 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 byTracesSampler
.- Parameters:
transactionContexts
- the transaction contextcustomSamplingContext
- the sampling contextbindToScope
- 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 ornull
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
-
isCrashedLastRun
@Nullable public static @Nullable java.lang.Boolean isCrashedLastRun()
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.
- Returns:
- true if App has crashed, false otherwise, and null if not evaluated yet
-
-