fix(deps): update dependency io.sentry:sentry-spring-boot-starter-jakarta to v8
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| io.sentry:sentry-spring-boot-starter-jakarta | 7.22.5 -> 8.27.1 |
[!WARNING] Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
getsentry/sentry-java (io.sentry:sentry-spring-boot-starter-jakarta)
v8.27.1
Fixes
- Do not log if
sentry.propertiesin rundir has not been found (#4929)
v8.27.0
Features
- Implement OpenFeature Integration that tracks Feature Flag evaluations (#4910)
- To make use of it, add the
sentry-openfeaturedependency and register the the hook using:openFeatureApiInstance.addHooks(new SentryOpenFeatureHook());
- To make use of it, add the
- Implement LaunchDarkly Integrations that track Feature Flag evaluations (#4917)
- For Android, please add
sentry-launchdarkly-androidas a dependency and register theSentryLaunchDarklyAndroidHook - For Server / JVM, please add
sentry-launchdarkly-serveras a dependency and register theSentryLaunchDarklyServerHook
- For Android, please add
- Detect oversized events and reduce their size (#4903)
- You can opt into this new behaviour by setting
enableEventSizeLimitingtotrue(sentry.enable-event-size-limiting=truefor Spring Bootapplication.properties) - You may optionally register an
onOversizedEventcallback to implement custom logic that is executed in case an oversized event is detected- This is executed first and if event size was reduced sufficiently, no further truncation is performed
- In case we detect an oversized event, we first drop breadcrumbs and if that isn't sufficient we also drop stack frames in order to get an events size down
- You can opt into this new behaviour by setting
Improvements
- Do not send manual log origin (#4897)
Dependencies
- Bump Spring Boot 4 to GA (#4923)
v8.26.0
Features
- Add feature flags API (#4812) and (#4831)
- You may now keep track of your feature flag evaluations and have them show up in Sentry.
- Top level API (
Sentry.addFeatureFlag("my-feature-flag", true);) writes to scopes and the current span (if there is one) - It is also possible to use API on
IScope,IScopes,ISpanandITransactiondirectly - Feature flag evaluations tracked on scope(s) will be added to any errors reported to Sentry.
- The SDK keeps the latest 100 evaluations from scope(s), replacing old entries as new evaluations are added.
- For feature flag evaluations tracked on spans:
- Only 10 evaluations are tracked per span, existing flags are updated but new ones exceeding the limit are ignored
- Spans do not inherit evaluations from their parent
- Drop log events once buffer hits hard limit (#4889)
- If we have 1000 log events queued up, we drop any new logs coming in to prevent OOM
- Remove vendored code and upgrade to async profiler 4.2 (#4856)
- This adds support for JDK 23+
Fixes
- Removed SentryExecutorService limit for delayed scheduled tasks (#4846)
- Fix visual artifacts for the Canvas strategy on some devices (#4861)
- [Config] Trim whitespace on properties path (#4880)
- Only set
DefaultReplayBreadcrumbConverterif replay is available (#4888) - Session Replay: Cache connection status instead of using blocking calls (#4891)
- Fix log count in client reports (#4869)
- Fix profilerId propagation (#4833)
- Fix profiling init for Spring and Spring Boot w Agent auto-init (#4815)
- Copy active span on scope clone (#4878)
Improvements
- Fallback to distinct-id as user.id logging attribute when user is not set (#4847)
- Report Timber.tag() as
timber.taglog attribute (#4845) - Session Replay: Add screenshot strategy serialization to RRWeb events (#4851)
- Report discarded log bytes (#4871)
- Log why a properties file was not loaded (#4879)
Dependencies
v8.25.0
Fixes
- [ANR] Removed AndroidTransactionProfiler lock (#4817)
- Avoid ExecutorService for DefaultCompositePerformanceCollector timeout (#4841)
- This avoids infinite data collection for never stopped transactions, leading to OOMs
- Fix wrong .super() call in SentryTimberTree (#4844)
Improvements
- [ANR] Defer some class availability checks (#4825)
- Collect PerformanceCollectionData only for sampled transactions (#4834)
- Breaking change: Transactions with a deferred sampling decision (
sampled == null) won't be collecting any performance data anymore (CPU, RAM, slow/frozen frames).
- Breaking change: Transactions with a deferred sampling decision (
Dependencies
v8.24.0
Features
- Attach MDC properties to logs as attributes (#4786)
- MDC properties set using supported logging frameworks (Logback, Log4j2, java.util.Logging) are now attached to structured logs as attributes.
- The attribute reflected on the log is
mdc.<key>, where<key>is the original key in the MDC. - This means that you will be able to filter/aggregate logs in the product based on these properties.
- Only properties with keys matching the configured
contextTagsare sent as log attributes.- You can configure which properties are sent using
options.setContextTagsif initalizing manually, or by specifying a comma-separated list of keys with acontext-tagsentry insentry.propertiesorsentry.context-tagsinapplication.properties. - Note that keys containing spaces are not supported.
- You can configure which properties are sent using
- Add experimental Sentry Android Distribution module for integrating with Sentry Build Distribution to check for and install updates (#4804)
- Allow passing a different
HandlertoSystemEventsBreadcrumbsIntegrationandAndroidConnectionStatusProviderso their callbacks are deliver to that handler (#4808) - Session Replay: Add new experimental Canvas Capture Strategy (#4777)
- A new screenshot capture strategy that uses Android's Canvas API for more accurate and reliable text and image masking
- Any
.drawText()or.drawBitmap()calls are replaced by rectangles, ensuring no text or images are present in the resulting output - Note: If this strategy is used, all text and images will be masked, regardless of any masking configuration
- To enable this feature, set the
screenshotStrategy, either via code:
or AndroidManifest.xml:SentryAndroid.init(context) { options -> options.sessionReplay.screenshotStrategy = ScreenshotStrategyType.CANVAS }<application> <meta-data android:name="io.sentry.session-replay.screenshot-strategy" android:value="canvas" /> </application>
Fixes
- Avoid StrictMode warnings (#4724)
- Use logger from options for JVM profiler (#4771)
- Session Replay: Avoid deadlock when pausing replay if no connection (#4788)
- Session Replay: Fix capturing roots with no windows (#4805)
- Session Replay: Fix
java.lang.IllegalArgumentException: width and height must be > 0(#4805) - Handle
NoOpScopesinContextwhen starting a span through OpenTelemetry (#4823)- This fixes "java.lang.IllegalArgumentException: The DSN is required" when combining WebFlux and OpenTelemetry
- Session Replay: Do not use recycled screenshots for masking (#4790)
- This fixes native crashes seen in
Canvas.<init>/ScreenshotRecorder.capture
- This fixes native crashes seen in
- Session Replay: Ensure bitmaps are recycled properly (#4820)
Miscellaneous
- Mark SentryClient(SentryOptions) constructor as not internal (#4787)
Dependencies
v8.23.0
Features
- Add session replay id to Sentry Logs (#4740)
- Add support for continuous profiling of JVM applications on macOS and Linux (#4556)
- Sentry continuous profiling on the JVM is using async-profiler under the hood.
- By default this feature is disabled. Set a profile sample rate and chose a lifecycle (see below) to enable it.
- Add the
sentry-async-profilerdependency to your project - Set a sample rate for profiles, e.g.
1.0to send all of them. You may useoptions.setProfileSessionSampleRate(1.0)in code orprofile-session-sample-rate=1.0insentry.properties - Set a profile lifecycle via
options.setProfileLifecycle(ProfileLifecycle.TRACE)in code orprofile-lifecycle=TRACEinsentry.properties- By default the lifecycle is set to
MANUAL, meaning you have to explicitly callSentry.startProfiler()andSentry.stopProfiler() - You may change it to
TRACEwhich will create a profile for each transaction
- By default the lifecycle is set to
- To automatically upload Profiles for each transaction in a Spring Boot application
- set
sentry.profile-session-sample-rate=1.0andsentry.profile-lifecycle=TRACEinapplication.properties - or set
sentry.profile-session-sample-rate: 1.0andsentry.profile-lifecycle: TRACEinapplication.yml
- set
- Profiling can also be combined with our OpenTelemetry integration
Fixes
- Start performance collection on AppStart continuous profiling (#4752)
- Preserve modifiers in
SentryTraced(#4757)
Improvements
v8.22.0
Features
- Move SentryLogs out of experimental (#4710)
- Add support for w3c traceparent header (#4671)
- This feature is disabled by default. If enabled, outgoing requests will include the w3c
traceparentheader. - See https://develop.sentry.dev/sdk/telemetry/traces/distributed-tracing/#w3c-trace-context-header for more details.
Sentry(Android).init(context) { options -> // ... options.isPropagateTraceparent = true } - This feature is disabled by default. If enabled, outgoing requests will include the w3c
- Sentry now supports Spring Boot 4 M3 pre-release (#4739)
Improvements
- Remove internal API status from get/setDistinctId (#4708)
- Remove ApiStatus.Experimental annotation from check-in API (#4721)
Fixes
- Session Replay: Fix
NoSuchElementExceptioninBufferCaptureStrategy(#4717) - Session Replay: Fix continue recording in Session mode after Buffer is triggered (#4719)
Dependencies
v8.21.1
Fixes
- Use Kotlin stdlib 1.9.24 dependency instead of 2.2.0 for all Android modules (#4707)
- This fixes compile time issues if your app is using Kotlin < 2.x
v8.21.0
Fixes
- Only set log template for logging integrations if formatted message differs from template (#4682)
Features
- Add support for Spring Boot 4 and Spring 7 (#4601)
- NOTE: Our
sentry-opentelemetry-agentless-springis not working yet for Spring Boot 4. Please usesentry-opentelemetry-agentuntil OpenTelemetry has support for Spring Boot 4.
- NOTE: Our
- Replace
UUIDGeneratorimplementation with Apache licensed code (#4662) - Replace
Randomimplementation with MIT licensed code (#4664) - Add support for
varsattribute inSentryStackFrame(#4686)- Breaking change: The type of the
varsattribute has been changed fromMap<String, String>toMap<String, Object>.
- Breaking change: The type of the
v8.20.0
Fixes
- Do not use named capturing groups for regular expressions (#4652)
- This fixes a crash on Android versions below 8.0 (API level 26)
Features
- Add onDiscard to enable users to track the type and amount of data discarded before reaching Sentry (#4612)
- Stub for setting the callback on
Sentry.init:Sentry.init(options -> { ... options.setOnDiscard( (reason, category, number) -> { // Your logic to process discarded data }); });
- Stub for setting the callback on
v8.19.1
[!Warning] Android: This release is incompatible with API levels below 26. We recommend using SDK version 8.20.0 or higher instead.
Fixes
- Do not store No-Op scopes onto OpenTelemetry Context when wrapping (#4631)
- In 8.18.0 and 8.19.0 the SDK could break when initialized too late.
v8.19.0
[!Warning] Android: This release is incompatible with API levels below 26. We recommend using SDK version 8.20.0 or higher instead.
Features
- Add a
isEnableSystemEventBreadcrumbsExtrasoption to disable reporting system events extras for breadcrumbs (#4625)
Improvements
- Session Replay: Use main thread looper to schedule replay capture (#4542)
- Use single
LifecycleObserverand multi-cast it to the integrations interested in lifecycle states (#4567) - Add
sentry.originattribute to logs (#4618)- This helps identify which integration captured a log event
- Prewarm
SentryExecutorServicefor better performance at runtime (#4606)
Fixes
- Cache network capabilities and status to reduce IPC calls (#4560)
- Deduplicate battery breadcrumbs (#4561)
- Remove unused method in ManifestMetadataReader (#4585)
- Have single
NetworkCallbackregistered at a time to reduce IPC calls (#4562) - Do not register for SystemEvents and NetworkCallbacks immediately when launched with non-foreground importance (#4579)
- Limit ProGuard keep rules for native methods within
sentry-android-ndkto theio.sentry.**namespace. (#4427)- If you relied on the Sentry SDK to keep native method names for JNI compatibility within your namespace, please review your ProGuard rules and ensure the configuration still works. Especially when you're not consuming any of the default Android proguard rules (
proguard-android.txtorproguard-android-optimize.txt) the following config should be present:
-keepclasseswithmembernames class * { native <methods>; } - If you relied on the Sentry SDK to keep native method names for JNI compatibility within your namespace, please review your ProGuard rules and ensure the configuration still works. Especially when you're not consuming any of the default Android proguard rules (
- Fix abstract method error in
SentrySupportSQLiteDatabase(#4597) - Ensure frame metrics listeners are registered/unregistered on the main thread (#4582)
- Do not report cached events as lost (#4575)
- Previously events were recorded as lost early despite being retried later through the cache
- Move and flush unfinished previous session on init (#4624)
- This removes the need for unnecessary blocking our background queue for 15 seconds in the case of a background app start
- Switch to compileOnly dependency for compose-ui-material (#4630)
- This fixes
StackOverflowErrorwhen using OSS Licenses plugin
- This fixes
Dependencies
v8.18.0
Features
- Add
SentryUserFeedbackButtonComposable (#4559)- Also added
Sentry.showUserFeedbackDialogstatic method
- Also added
- Add deadlineTimeout option (#4555)
- Add Ktor client integration (#4527)
- To use the integration, add a dependency on
io.sentry:sentry-ktor-client, then install theSentryKtorClientPluginon yourHttpClient, e.g.:val client = HttpClient(Java) { install(io.sentry.ktorClient.SentryKtorClientPlugin) { captureFailedRequests = true failedRequestTargets = listOf(".*") failedRequestStatusCodes = listOf(HttpStatusCodeRange(500, 599)) } }
- To use the integration, add a dependency on
Fixes
- Allow multiple UncaughtExceptionHandlerIntegrations to be active at the same time (#4462)
- Prevent repeated scroll target determination during a single scroll gesture (#4557)
- This should reduce the number of ANRs seen in
SentryGestureListener
- This should reduce the number of ANRs seen in
- Do not use Sentry logging API in JUL if logs are disabled (#4574)
- This was causing Sentry SDK to log warnings: "Sentry Log is disabled and this 'logger' call is a no-op."
- Do not use Sentry logging API in Log4j2 if logs are disabled (#4573)
- This was causing Sentry SDK to log warnings: "Sentry Log is disabled and this 'logger' call is a no-op."
- SDKs send queue is no longer shutdown immediately on re-init (#4564)
- This means we're no longer losing events that have been enqueued right before SDK re-init.
- Reduce scope forking when using OpenTelemetry (#4565)
Sentry.withScopenow has the correct current scope passed to the callback. Previously our OpenTelemetry integration forked scopes an additional.- Overall the SDK is now forking scopes a bit less often.
v8.17.0
Features
- Send Timber logs through Sentry Logs (#4490)
- Enable the Logs feature in your
SentryOptionsor with theio.sentry.logs.enabledmanifest option and the SDK will automatically send Timber logs to Sentry, if the TimberIntegration is enabled. - The SDK will automatically detect Timber and use it to send logs to Sentry.
- Enable the Logs feature in your
- Send logcat through Sentry Logs (#4487)
- Enable the Logs feature in your
SentryOptionsor with theio.sentry.logs.enabledmanifest option and the SDK will automatically send logcat logs to Sentry, if the Sentry Android Gradle plugin is applied. - To set the logcat level check the Logcat integration documentation.
- Enable the Logs feature in your
- Read build tool info from
sentry-debug-meta.propertiesand attach it to events (#4314)
Dependencies
- Bump OpenTelemetry (#4532)
opentelemetry-sdkto1.51.0opentelemetry-instrumentationto2.17.0opentelemetry-javaagentto2.17.0opentelemetry-semconvto1.34.0- We are now configuring OpenTelemetry to still behave the same way it did before for span names it generates in GraphQL auto instrumentation (#4537)
- Bump Gradle from v8.14.2 to v8.14.3 (#4540)
Fixes
- Use Spring Boot Starter 3 in
sentry-spring-boot-starter-jakarta(#4545)- While refactoring our dependency management, we accidentally added Spring Boot 2 and Spring Boot Starter 2 as dependencies of
sentry-spring-boot-starter-jakarta, which is intended for Spring Boot 3. - Now, the correct dependencies (Spring Boot 3 and Spring Boot Starter 3) are being added.
- While refactoring our dependency management, we accidentally added Spring Boot 2 and Spring Boot Starter 2 as dependencies of
v8.16.0
Features
- Send JUL logs to Sentry as logs (#4518)
- You need to enable the logs feature, either in
sentry.properties:logs.enabled=true - Or, if you manually initialize Sentry, you may also enable logs on
Sentry.init:Sentry.init(options -> { ... options.getLogs().setEnabled(true); }); - It is also possible to set the
minimumLevelinlogging.properties, meaning any log message >= the configured level will be sent to Sentry and show up under Logs:io.sentry.jul.SentryHandler.minimumLevel=CONFIG
- You need to enable the logs feature, either in
- Send Log4j2 logs to Sentry as logs (#4517)
- You need to enable the logs feature either in
sentry.properties:logs.enabled=true - If you manually initialize Sentry, you may also enable logs on
Sentry.init:Sentry.init(options -> { ... options.getLogs().setEnabled(true); }); - It is also possible to set the
minimumLevelinlog4j2.xml, meaning any log message >= the configured level will be sent to Sentry and show up under Logs:<Sentry name="Sentry" dsn="your DSN" minimumBreadcrumbLevel="DEBUG" minimumEventLevel="WARN" minimumLevel="DEBUG" />
- You need to enable the logs feature either in
v8.15.1
Fixes
- Enabling Sentry Logs through Logback in Spring Boot config did not work in 3.15.0 (#4523)
v8.15.0
Features
- Add chipset to device context (#4512)
Fixes
- No longer send out empty log envelopes (#4497)
- Session Replay: Expand fix for crash on devices to all Unisoc/Spreadtrum chipsets (#4510)
- Log parameter objects are now turned into
StringviatoString(#4515)- One of the two
SentryLogEventAttributeValueconstructors did not convert the value previously.
- One of the two
- Logs are now flushed on shutdown (#4503)
- User Feedback: Do not redefine system attributes for
SentryUserFeedbackButton, but reference them instead (#4519)
Features
- Send Logback logs to Sentry as logs (#4502)
- You need to enable the logs feature and can also set the
minimumLevelfor log events:<appender name="sentry" class="io.sentry.logback.SentryAppender"> <options> <!-- NOTE: Replace the test DSN below with YOUR OWN DSN to see the events from this app in your Sentry project/dashboard --> <dsn>https://502f25099c204a2fbf4cb16edc5975d1@​o447951.ingest.sentry.io/5428563</dsn> <logs> <enabled>true</enabled> </logs> </options> <!-- Demonstrates how to modify the minimum values --> <!-- Default for Events is ERROR --> <minimumEventLevel>WARN</minimumEventLevel> <!-- Default for Breadcrumbs is INFO --> <minimumBreadcrumbLevel>DEBUG</minimumBreadcrumbLevel> <!-- Default for Log Events is INFO --> <minimumLevel>INFO</minimumLevel> </appender> - For Spring Boot you may also enable it in
application.properties/application.yml:sentry.logs.enabled=true sentry.logging.minimum-level=error - If you manually initialize Sentry, you may also enable logs on
Sentry.init:Sentry.init(options -> { ... options.getLogs().setEnabled(true); }); - Enabling via
sentry.propertiesis also possible:logs.enabled=true
- You need to enable the logs feature and can also set the
- Automatically use
SentryOptions.Logs.BeforeSendLogCallbackSpring beans (#4509)
Dependencies
v8.14.0
Fixes
- Fix Session Replay masking for newer versions of Jetpack Compose (1.8+) (#4485)
Features
- Add New User Feedback Widget (#4450)
- This widget is a custom button that can be used to show the user feedback form
- Add New User Feedback form (#4384)
- We now introduce SentryUserFeedbackDialog, which extends AlertDialog, inheriting the show() and cancel() methods, among others.
To use it, just instantiate it and call show() on the instance (Sentry must be previously initialized).
For customization options, please check the User Feedback documentation.
import io.sentry.android.core.SentryUserFeedbackDialog; new SentryUserFeedbackDialog.Builder(context).create().show();import io.sentry.android.core.SentryUserFeedbackDialog SentryUserFeedbackDialog.Builder(context).create().show()
- We now introduce SentryUserFeedbackDialog, which extends AlertDialog, inheriting the show() and cancel() methods, among others.
To use it, just instantiate it and call show() on the instance (Sentry must be previously initialized).
For customization options, please check the User Feedback documentation.
- Add
user.id,user.nameanduser.emailto log attributes (#4486) - User
nameattribute has been deprecated, please useusernameinstead (#4486) - Add device (
device.brand,device.modelanddevice.family) and OS (os.nameandos.version) attributes to logs (#4493) - Serialize
preContextandpostContextinSentryStackFrame(#4482)
Internal
- User Feedback now uses SentryUser.username instead of SentryUser.name (#4494)
v8.13.3
Fixes
- Send UI Profiling app start chunk when it finishes (#4423)
- Republish Javadoc #4457
- Finalize
OkHttpEventeven if no active span inSentryOkHttpInterceptor#4469 - Session Replay: Do not capture current replay for cached events from the past (#4474)
- Session Replay: Correctly capture Dialogs and non full-sized windows (#4354)
- Session Replay: Fix inconsistent
segment_id(#4471) - Session Replay: Fix crash on devices with the Unisoc/Spreadtrum T606 chipset (#4477)
v8.13.2
Fixes
- Don't apply Spring Boot plugin in
sentry-spring-boot-jakarta(#4456)- The jar for
io.sentry:sentry-spring-boot-jakartais now correctly being built and published to Maven Central.
- The jar for
v8.13.1
Fixes
- Fix
SentryAndroid.initcrash if SDK is initialized from a background thread while anActivityis in resumed state (#4449)
Dependencies
v8.13.0
Features
- Add debug mode for Session Replay masking (#4357)
- Use
Sentry.replay().enableDebugMaskingOverlay()to overlay the screen with the Session Replay masks. - The masks will be invalidated at most once per
frameRate(default 1 fps).
- Use
- Extend Logs API to allow passing in
attributes(#4402)Sentry.logger.lognow takes aSentryLogParameters- Use
SentryLogParameters.create(SentryAttributes.of(...))to pass attributes- Attribute values may be of type
string,boolean,integerordouble. - Other types will be converted to
string. Currently we simply calltoString()but we might offer more in the future. - You may manually flatten complex types into multiple separate attributes of simple types.
- e.g. intead of
SentryAttribute.named("point", Point(10, 20))you may store it asSentryAttribute.integerAttribute("point.x", point.x)andSentryAttribute.integerAttribute("point.y", point.y)
- e.g. intead of
SentryAttribute.named()will automatically infer the type or fall back tostring.SentryAttribute.booleanAttribute()takes aBooleanvalueSentryAttribute.integerAttribute()takes aIntegervalueSentryAttribute.doubleAttribute()takes aDoublevalueSentryAttribute.stringAttribute()takes aStringvalue
- Attribute values may be of type
- We opted for handling parameters via
SentryLogParametersto avoid creating tons of overloads that are ambiguous.
Fixes
- Isolation scope is now forked in
OtelSentrySpanProcessorinstead ofOtelSentryPropagator(#4434)- Since propagator may never be invoked we moved the location where isolation scope is forked.
- Not invoking
OtelSentryPropagator.extractor having asentry-traceheader that failed to parse would cause isolation scope not to be forked. - This in turn caused data to bleed between scopes, e.g. from one request into another
Dependencies
- Bump Spring Boot to
3.5.0(#4111)
v8.12.0
Features
- Add new User Feedback API (#4286)
- We now introduced Sentry.captureFeedback, which supersedes Sentry.captureUserFeedback
- Add Sentry Log Feature (#4372)
- The feature is disabled by default and needs to be enabled by:
options.getLogs().setEnabled(true)inSentry.init/SentryAndroid.init<meta-data android:name="io.sentry.logs.enabled" android:value="true" />inAndroidManifest.xmllogs.enabled=trueinsentry.propertiessentry.logs.enabled=trueinapplication.propertiessentry.logs.enabled: trueinapplication.yml
- Logs can be captured using
Sentry.logger().info()and similar methods. - Logs also take a format string and arguments which we then send through
String.format. - Please use
options.getLogs().setBeforeSend()to filter outgoing logs
- The feature is disabled by default and needs to be enabled by:
Fixes
- Hook User Interaction integration into running Activity in case of deferred SDK init (#4337)
Dependencies
v8.11.1
Fixes
- Fix Android profile chunk envelope type for UI Profiling (#4366)
v8.11.0
Features
- Make
RequestDetailsResolverpublic (#4326)RequestDetailsResolveris now public and has an additional constructor, making it easier to use a customTransportFactory
Fixes
- Session Replay: Fix masking of non-styled
TextComposables (#4361) - Session Replay: Fix masking read-only
TextFieldComposables (#4362)
v8.10.0
Features
- Wrap configured OpenTelemetry
ContextStorageProviderif available (#4359)- This is only relevant if you see
java.lang.IllegalStateException: Found multiple ContextStorageProvider. Set the io.opentelemetry.context.ContextStorageProvider property to the fully qualified class name of the provider to use. Falling back to default ContextStorage. Found providers: ... - Set
-Dio.opentelemetry.context.contextStorageProvider=io.sentry.opentelemetry.SentryContextStorageProvideron yourjavacommand - Sentry will then wrap the other
ContextStorageProviderthat has been configured by loading it through SPI - If no other
ContextStorageProvideris available or there are problems loading it, we fall back to usingSentryOtelThreadLocalStorage
- This is only relevant if you see
Fixes
- Update profile chunk rate limit and client report (#4353)
Dependencies
v8.9.0
Features
- Add
SentryWrapper.wrapRunnableto wrapRunnablefor use with Sentry (#4332)
Fixes
- Fix TTFD measurement when API called too early (#4297)
- Tag sockets traffic originating from Sentry's HttpConnection (#4340)
- This should suppress the StrictMode's
UntaggedSocketViolation
- This should suppress the StrictMode's
- Reduce debug logs verbosity (#4341)
- Fix unregister
SystemEventsBroadcastReceiverwhen entering background (#4338)- This should reduce ANRs seen with this class in the stack trace for Android 14 and above
Improvements
- Make user interaction tracing faster and do fewer allocations (#4347)
- Pre-load modules on a background thread upon SDK init (#4348)
v8.8.0
Features
- Add
CoroutineExceptionHandlerfor reporting uncaught exceptions in coroutines to Sentry (#4259)- This is now part of
sentry-kotlin-extensionsand can be used together withSentryContextwhen launching a coroutine - Any exceptions thrown in a coroutine when using the handler will be captured (not rethrown!) and reported to Sentry
- It's also possible to extend
CoroutineExceptionHandlerto implement custom behavior in addition to the one we provide by default
- This is now part of
Fixes
- Use thread context classloader when available (#4320)
- This ensures correct resource loading in environments like Spring Boot where the thread context classloader is used for resource loading.
- Improve low memory breadcrumb capturing (#4325)
- Fix do not initialize SDK for Jetpack Compose Preview builds (#4324)
- Fix Synchronize Baggage values (#4327)
Improvements
- Make
SystemEventsBreadcrumbsIntegrationfaster (#4330)
v8.7.0
Features
-
UI Profiling GA
Continuous Profiling is now GA, named UI Profiling. To enable it you can use one of the following options. More info can be found at https://docs.sentry.io/platforms/android/profiling/. Note: Both
options.profilesSamplerandoptions.profilesSampleRatemust not be set to enable UI Profiling. To keep the same transaction-based behaviour, without the 30 seconds limitation, you can use thetracelifecycle mode.<application> <!-- Enable UI profiling, adjust in production env. This is evaluated only once per session --> <meta-data android:name="io.sentry.traces.profiling.session-sample-rate" android:value="1.0" /> <!-- Set profiling lifecycle, can be `manual` (controlled through `Sentry.startProfiler()` and `Sentry.stopProfiler()`) or `trace` (automatically starts and stop a profile whenever a sampled trace starts and finishes) --> <meta-data android:name="io.sentry.traces.profiling.lifecycle" android:value="trace" /> <!-- Enable profiling on app start. The app start profile will be stopped automatically when the app start root span finishes --> <meta-data android:name="io.sentry.traces.profiling.start-on-app-start" android:value="true" /> </application>import io.sentry.ProfileLifecycle; import io.sentry.android.core.SentryAndroid; SentryAndroid.init(context, options -> { // Enable UI profiling, adjust in production env. This is evaluated only once per session options.setProfileSessionSampleRate(1.0); // Set profiling lifecycle, can be `manual` (controlled through `Sentry.startProfiler()` and `Sentry.stopProfiler()`) or `trace` (automatically starts and stop a profile whenever a sampled trace starts and finishes) options.setProfileLifecycle(ProfileLifecycle.TRACE); // Enable profiling on app start. The app start profile will be stopped automatically when the app start root span finishes options.setStartProfilerOnAppStart(true); });import io.sentry.ProfileLifecycle import io.sentry.android.core.SentryAndroid SentryAndroid.init(context, { options -> // Enable UI profiling, adjust in production env. This is evaluated only once per session options.profileSessionSampleRate = 1.0 // Set profiling lifecycle, can be `manual` (controlled through `Sentry.startProfiler()` and `Sentry.stopProfiler()`) or `trace` (automatically starts and stop a profile whenever a sampled trace starts and finishes) options.profileLifecycle = ProfileLifecycle.TRACE // Enable profiling on app start. The app start profile will be stopped automatically when the app start root span finishes options.isStartProfilerOnAppStart = true })
Fixes
- Compress Screenshots on a background thread (#4295)
v8.6.0
Behavioral Changes
- The Sentry SDK will now crash on startup if mixed versions have been detected (#4277)
- On
Sentry.init/SentryAndroid.initthe SDK now checks if all Sentry Java / Android SDK dependencies have the same version. - While this may seem like a bad idea at first glance, mixing versions of dependencies has a very high chance of causing a crash later. We opted for a controlled crash that's hard to miss.
- Note: This detection only works for new versions of the SDK, so please take this as a reminder to check your SDK version alignment manually when upgrading the SDK to this version and then you should be good.
- The SDK will also print log messages if mixed versions have been detected at a later point. (#4270)
- This takes care of cases missed by the startup check above due to older versions.
- On
Features
- Increase http timeouts from 5s to 30s to have a better chance of events being delivered without retry (#4276)
- Add
MANIFEST.MFto Sentry JARs (#4272) - Retain baggage sample rate/rand values as doubles (#4279)
- Introduce fatal SDK logger (#4288)
- We use this to print out messages when there is a problem that prevents the SDK from working correctly.
- One example for this is when the SDK has been configured with mixed dependency versions where we print out details, which module and version are affected.
Fixes
- Do not override user-defined
SentryOptions(#4262) - Session Replay: Change bitmap config to
ARGB_8888for screenshots (#4282) - The
MANIFEST.MFofsentry-opentelemetry-agentnow hasImplementation-Versionset to the raw version (#4291)- An example value would be
8.6.0 - The value of the
Sentry-Version-Nameattribute looks likesentry-8.5.0-otel-2.10.0
- An example value would be
- Fix tags missing for compose view hierarchies (#4275)
- Do not leak SentryFileInputStream/SentryFileOutputStream descriptors and channels (#4296)
- Remove "not yet implemented" from
Sentry.flushcomment (#4305)
Internal
- Added
platformto SentryEnvelopeItemHeader (#4287)- Set
androidplatform to ProfileChunk envelope item header
- Set
Dependencies
- Bump Native SDK from v0.8.1 to v0.8.3 (#4267, #4298)
- Bump Spring Boot from 2.7.5 to 2.7.18 (#3496)
v8.5.0
Features
-
Add native stack frame address information and debug image metadata to ANR events (#4061)
- This enables symbolication for stripped native code in ANRs
-
Add Continuous Profiling Support (#3710)
To enable Continuous Profiling use the
Sentry.startProfilerandSentry.stopProfilerexperimental APIs. Sampling rate can be set throughoptions.profileSessionSampleRate, which defaults to null (disabled).
Note: Bothoptions.profilesSamplerandoptions.profilesSampleRatemust not be set to enable Continuous Profiling.import io.sentry.ProfileLifecycle; import io.sentry.android.core.SentryAndroid; SentryAndroid.init(context) { options -> // Currently under experimental options: options.getExperimental().setProfileSessionSampleRate(1.0); // In manual mode, you need to start and stop the profiler manually using Sentry.startProfiler and Sentry.stopProfiler // In trace mode, the profiler will start and stop automatically whenever a sampled trace starts and finishes options.getExperimental().setProfileLifecycle(ProfileLifecycle.MANUAL); } // Start profiling Sentry.startProfiler(); // After all profiling is done, stop the profiler. Profiles can last indefinitely if not stopped. Sentry.stopProfiler();import io.sentry.ProfileLifecycle import io.sentry.android.core.SentryAndroid SentryAndroid.init(context) { options -> // Currently under experimental options: options.experimental.profileSessionSampleRate = 1.0 // In manual mode, you need to start and stop the profiler manually using Sentry.startProfiler and Sentry.stopProfiler // In tra
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
Deploy Preview for ree6-backend canceled.
| Name | Link |
|---|---|
| Latest commit | 78301f619d6b99959e7cc48a0d8b47a73217bfa1 |
| Latest deploy log | https://app.netlify.com/projects/ree6-backend/deploys/69412cd0093a3700083455df |
Quality Gate passed
Issues
0 New issues
0 Accepted issues
Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code