Package io.sentry
Class Sentry
java.lang.Object
io.sentry.Sentry
Sentry SDK main API entry point
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Sentry.OptionsConfiguration<T extends SentryOptions>
Configuration options callback -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic void
addBreadcrumb
(@NotNull Breadcrumb breadcrumb) Adds a breadcrumb to the current Scopestatic void
addBreadcrumb
(@NotNull Breadcrumb breadcrumb, @Nullable Hint hint) Adds a breadcrumb to the current Scopestatic void
addBreadcrumb
(@NotNull String message) Adds a breadcrumb to the current Scopestatic void
addBreadcrumb
(@NotNull String message, @NotNull String category) Adds a breadcrumb to the current Scopestatic void
bindClient
(@NotNull ISentryClient client) Binds a different client to the current Scopesstatic @NotNull SentryId
captureCheckIn
(@NotNull CheckIn checkIn) static @NotNull SentryId
captureEvent
(@NotNull SentryEvent event) Captures the event.static @NotNull SentryId
captureEvent
(@NotNull SentryEvent event, @NotNull ScopeCallback callback) Captures the event.static @NotNull SentryId
captureEvent
(@NotNull SentryEvent event, @Nullable Hint hint) Captures the event.static @NotNull SentryId
captureEvent
(@NotNull SentryEvent event, @Nullable Hint hint, @NotNull ScopeCallback callback) Captures the event.static @NotNull SentryId
captureException
(@NotNull Throwable throwable) Captures the exception.static @NotNull SentryId
captureException
(@NotNull Throwable throwable, @NotNull ScopeCallback callback) Captures the exception.static @NotNull SentryId
captureException
(@NotNull Throwable throwable, @Nullable Hint hint) Captures the exception.static @NotNull SentryId
captureException
(@NotNull Throwable throwable, @Nullable Hint hint, @NotNull ScopeCallback callback) Captures the exception.static @NotNull SentryId
captureMessage
(@NotNull String message) Captures the message.static @NotNull SentryId
captureMessage
(@NotNull String message, @NotNull ScopeCallback callback) Captures the message.static @NotNull SentryId
captureMessage
(@NotNull String message, @NotNull SentryLevel level) Captures the message.static @NotNull SentryId
captureMessage
(@NotNull String message, @NotNull SentryLevel level, @NotNull ScopeCallback callback) Captures the message.static void
captureUserFeedback
(@NotNull UserFeedback userFeedback) Captures a manually created user feedback and sends it to Sentry.static void
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
configureScope
(@Nullable ScopeType scopeType, @NotNull ScopeCallback callback) Configures the scope through the callback.static @Nullable TransactionContext
continueTrace
(@Nullable String sentryTrace, @Nullable List<String> baggageHeaders) Continue a trace based on HTTP header values.static void
Ends the current sessionstatic void
flush
(long timeoutMillis) Flushes events queued up to the current Scopes.static @NotNull IScopes
forkedCurrentScope
(@NotNull String creator) static @NotNull IScopes
forkedRootScopes
(@NotNull String creator) Returns a new Scopes which is cloned from the rootScopes.static @NotNull IScopes
forkedScopes
(@NotNull String creator) static @Nullable BaggageHeader
Returns the "baggage" header that allows tracing across services.static @NotNull IHub
Deprecated.static @NotNull IScopes
static @NotNull IScope
static @NotNull SentryId
Last event id recorded in the current scopestatic @Nullable ISpan
getSpan()
Gets the current active transaction or span.static @Nullable SentryTraceHeader
Returns the "sentry-trace" header that allows tracing across services.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
Initializes the SDKstatic @Nullable Boolean
Returns if the App has crashed (Process has terminated) during the last run.static boolean
Check if Sentry is enabled/active.static boolean
static void
popScope()
Deprecated.please callISentryLifecycleToken.close()
on the token returned bypushScope()
orpushIsolationScope()
instead.static @NotNull ISentryLifecycleToken
Pushes a new isolation and current scope while inheriting the current scope's data.static @NotNull ISentryLifecycleToken
Pushes a new scope while inheriting the current scope's data.static void
removeExtra
(@NotNull String key) Removes the extra key to an arbitrary value to the current Scopestatic void
Removes the tag to a string value to the current Scopestatic void
Report a screen has been fully loaded.static @NotNull ISentryLifecycleToken
setCurrentHub
(@NotNull IHub hub) Deprecated.please usesetCurrentScopes(io.sentry.IScopes)
instead.static @NotNull ISentryLifecycleToken
setCurrentScopes
(@NotNull IScopes scopes) static void
Sets the extra key to an arbitrary value to the current Scope, overwriting a potential previous valuestatic void
setFingerprint
(@NotNull List<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
Sets the tag to a string value to the current Scope, overwriting a potential previous valuestatic void
setTransaction
(@Nullable String transaction) Sets the name of the current transaction to the current Scope.static void
Shallow merges user configuration (email, username, etc) to the current Scope.static void
Starts a new session.static @NotNull ITransaction
startTransaction
(@NotNull TransactionContext transactionContexts) Creates a Transaction and returns the instance.static @NotNull ITransaction
startTransaction
(@NotNull TransactionContext transactionContext, @NotNull TransactionOptions transactionOptions) Creates a Transaction and returns the instance.static @NotNull ITransaction
startTransaction
(@NotNull String name, @NotNull String operation) Creates a Transaction and returns the instance.static @NotNull ITransaction
startTransaction
(@NotNull String name, @NotNull String operation, @NotNull TransactionOptions transactionOptions) Creates a Transaction and returns the instance.static @NotNull ITransaction
startTransaction
(@NotNull String name, @NotNull String operation, @Nullable String description, @NotNull TransactionOptions transactionOptions) Creates a Transaction and returns the instance.static void
withIsolationScope
(@NotNull ScopeCallback callback) Runs the callback with a new isolation scope which gets dropped at the end.static void
withScope
(@NotNull ScopeCallback callback) Runs the callback with a new current scope which gets dropped at the end
-
Field Details
-
APP_START_PROFILING_CONFIG_FILE_NAME
- See Also:
-
-
Method Details
-
getCurrentHub
Deprecated.please usegetCurrentScopes()
insteadReturns the current (threads) hub, if none, clones the rootScopes and returns it.- Returns:
- the hub
-
getCurrentScopes
-
forkedRootScopes
@Internal @NotNull public static @NotNull IScopes forkedRootScopes(@NotNull @NotNull String creator) Returns a new Scopes which is cloned from the rootScopes.- Returns:
- the forked scopes
-
forkedScopes
-
forkedCurrentScope
-
setCurrentHub
@Internal @Deprecated @NotNull public static @NotNull ISentryLifecycleToken setCurrentHub(@NotNull @NotNull IHub hub) Deprecated.please usesetCurrentScopes(io.sentry.IScopes)
instead. -
setCurrentScopes
@Internal @NotNull public static @NotNull ISentryLifecycleToken setCurrentScopes(@NotNull @NotNull IScopes scopes) -
getGlobalScope
-
isEnabled
public static boolean isEnabled()Check if Sentry is enabled/active.- Returns:
- true if its enabled or false otherwise.
-
init
public static void init()Initializes the SDK -
init
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 IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException Initializes the SDK- Type Parameters:
T
- class that extends SentryOptions- Parameters:
clazz
- OptionsContainer for SentryOptionsoptionsConfiguration
- configuration options callback- Throws:
IllegalAccessException
- the IllegalAccessExceptionInstantiationException
- the InstantiationExceptionNoSuchMethodException
- the NoSuchMethodExceptionInvocationTargetException
- the InvocationTargetException
-
init
public static <T extends SentryOptions> void init(@NotNull @NotNull OptionsContainer<T> clazz, @NotNull @NotNull Sentry.OptionsConfiguration<T> optionsConfiguration, boolean globalHubMode) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException Initializes the SDK- Type Parameters:
T
- class that extends SentryOptions- Parameters:
clazz
- OptionsContainer for SentryOptionsoptionsConfiguration
- configuration options callbackglobalHubMode
- the globalHubMode- Throws:
IllegalAccessException
- the IllegalAccessExceptionInstantiationException
- the InstantiationExceptionNoSuchMethodException
- the NoSuchMethodExceptionInvocationTargetException
- 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
Initializes the SDK with a SentryOptions.- Parameters:
options
- options the SentryOptions
-
close
public static void close()Close the SDK -
captureEvent
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, @NotNull @NotNull ScopeCallback callback) Captures the event.- Parameters:
event
- The event.callback
- The callback to configure the scope for a single invocation.- Returns:
- The Id (SentryId object) of the event
-
captureEvent
@NotNull public static @NotNull SentryId captureEvent(@NotNull @NotNull SentryEvent event, @Nullable @Nullable Hint 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
-
captureEvent
@NotNull public static @NotNull SentryId captureEvent(@NotNull @NotNull SentryEvent event, @Nullable @Nullable Hint hint, @NotNull @NotNull ScopeCallback callback) Captures the event.- Parameters:
event
- The event.hint
- SDK specific but provides high level information about the origin of the eventcallback
- The callback to configure the scope for a single invocation.- Returns:
- The Id (SentryId object) of the event
-
captureMessage
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 String message, @NotNull @NotNull ScopeCallback callback) Captures the message.- Parameters:
message
- The message to send.callback
- The callback to configure the scope for a single invocation.- Returns:
- The Id (SentryId object) of the event
-
captureMessage
@NotNull public static @NotNull SentryId captureMessage(@NotNull @NotNull 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
-
captureMessage
@NotNull public static @NotNull SentryId captureMessage(@NotNull @NotNull String message, @NotNull @NotNull SentryLevel level, @NotNull @NotNull ScopeCallback callback) Captures the message.- 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
-
captureException
Captures the exception.- Parameters:
throwable
- The exception.- Returns:
- The Id (SentryId object) of the event
-
captureException
@NotNull public static @NotNull SentryId captureException(@NotNull @NotNull Throwable throwable, @NotNull @NotNull ScopeCallback callback) Captures the exception.- Parameters:
throwable
- The exception.callback
- The callback to configure the scope for a single invocation.- Returns:
- The Id (SentryId object) of the event
-
captureException
@NotNull public static @NotNull SentryId captureException(@NotNull @NotNull Throwable throwable, @Nullable @Nullable Hint 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
-
captureException
@NotNull public static @NotNull SentryId captureException(@NotNull @NotNull Throwable throwable, @Nullable @Nullable Hint hint, @NotNull @NotNull ScopeCallback callback) Captures the exception.- Parameters:
throwable
- The exception.hint
- SDK specific but provides high level information about the origin of the eventcallback
- The callback to configure the scope for a single invocation.- Returns:
- The Id (SentryId object) of the event
-
captureUserFeedback
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 Hint 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
Adds a breadcrumb to the current Scope- Parameters:
breadcrumb
- the breadcrumb
-
addBreadcrumb
Adds a breadcrumb to the current Scope- Parameters:
message
- rendered as text and the whitespace is preserved.
-
addBreadcrumb
public static void addBreadcrumb(@NotNull @NotNull String message, @NotNull @NotNull 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
Sets the level of all events sent within current Scope- Parameters:
level
- the Sentry level
-
setTransaction
Sets the name of the current transaction to the current Scope.- Parameters:
transaction
- the transaction
-
setUser
Shallow merges user configuration (email, username, etc) to the current Scope.- Parameters:
user
- the user
-
setFingerprint
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
Sets the tag to a string value to the current Scope, overwriting a potential previous value- Parameters:
key
- the keyvalue
- the value
-
removeTag
Removes the tag to a string value to the current Scope- Parameters:
key
- the key
-
setExtra
Sets the extra key to an arbitrary value to the current Scope, overwriting a potential previous value- Parameters:
key
- the keyvalue
- the value
-
removeExtra
Removes the extra key to an arbitrary value to the current Scope- Parameters:
key
- the key
-
getLastEventId
Last event id recorded in the current scope- Returns:
- last SentryId
-
pushScope
Pushes a new scope while inheriting the current scope's data. -
pushIsolationScope
Pushes a new isolation and current scope while inheriting the current scope's data. -
popScope
Deprecated.please callISentryLifecycleToken.close()
on the token returned bypushScope()
orpushIsolationScope()
instead.Removes the first scope and restores its parent. -
withScope
Runs the callback with a new current scope which gets dropped at the end- Parameters:
callback
- the callback
-
withIsolationScope
Runs the callback with a new isolation scope which gets dropped at the end. Current scope is also forked.- Parameters:
callback
- the callback
-
configureScope
Configures the scope through the callback.- Parameters:
callback
- The configure scope callback.
-
configureScope
public static void configureScope(@Nullable @Nullable ScopeType scopeType, @NotNull @NotNull ScopeCallback callback) Configures the scope through the callback.- Parameters:
callback
- The configure scope callback.
-
bindClient
Binds a different client to the current Scopes- Parameters:
client
- the client.
-
isHealthy
public static boolean isHealthy() -
flush
public static void flush(long timeoutMillis) Flushes events queued up to the current Scopes. 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 String name, @NotNull @NotNull 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 String name, @NotNull @NotNull String operation, @NotNull @NotNull TransactionOptions transactionOptions) Creates a Transaction and returns the instance.- Parameters:
name
- the transaction nameoperation
- the operationtransactionOptions
- options for the transaction- Returns:
- created transaction
-
startTransaction
@NotNull public static @NotNull ITransaction startTransaction(@NotNull @NotNull String name, @NotNull @NotNull String operation, @Nullable @Nullable String description, @NotNull @NotNull TransactionOptions transactionOptions) Creates a Transaction and returns the instance.- Parameters:
name
- the transaction nameoperation
- the operationdescription
- the descriptiontransactionOptions
- options for the transaction- 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 transactionContext, @NotNull @NotNull TransactionOptions transactionOptions) Creates a Transaction and returns the instance.- Parameters:
transactionContext
- the transaction contexttransactionOptions
- options for the transaction- Returns:
- created transaction.
-
getSpan
Gets the current active transaction or span.- Returns:
- the active span or null when no active transaction is running. In case of globalHubMode=true, always the active transaction is returned, rather than the last active span.
-
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
-
reportFullyDisplayed
public static void reportFullyDisplayed()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.
-
continueTrace
@Nullable public static @Nullable TransactionContext continueTrace(@Nullable @Nullable String sentryTrace, @Nullable @Nullable List<String> baggageHeaders) Continue a trace based on HTTP header values. If no "sentry-trace" header is provided a random trace ID and span ID is created.- Parameters:
sentryTrace
- "sentry-trace" headerbaggageHeaders
- "baggage" headers- Returns:
- a transaction context for starting a transaction or null if performance is disabled
-
getTraceparent
Returns the "sentry-trace" header that allows tracing across services. Can also be used in <meta> HTML tags. Also seegetBaggage()
.- Returns:
- sentry trace header or null
-
getBaggage
Returns the "baggage" header that allows tracing across services. Can also be used in <meta> HTML tags. Also seegetTraceparent()
.- Returns:
- baggage header or null
-
captureCheckIn
-
getCurrentScopes()
instead