Requested by: @adinauer
Merge target: (default)
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
Features
-
Add Sentry.extendAppStart(), Sentry.finishExtendedAppStart(), and Sentry.getExtendedAppStartSpan() to extend the app start measurement past the first frame for extra launch-time work on Android (#5604)
- Requires standalone app start tracing (
options.isEnableStandaloneAppStartTracing). Call extendAppStart() in Application.onCreate after SDK init and finishExtendedAppStart() when done:
Sentry.extendAppStart()
// Optionally, retrieve the extended app start span to attach your own child spans
val child = Sentry.getExtendedAppStartSpan()?.startChild("preload", "Preload resources")
// ... extra launch-time work ...
child?.finish()
Sentry.finishExtendedAppStart()
-
Add trace_metric_byte data category and record byte-level client reports when trace metrics are discarded (#5626)
-
Support the io.sentry.tombstone.report-historical manifest option to enable historical tombstone reporting via AndroidManifest.xml <meta-data> (#5683)
Fixes
- Fix
NoSuchMethodError when using Math.floorDiv/Math.floorMod on Android < 24 (#5743)
- Fix main thread identification parsing for ApplicationExitInfo ANRs (#5733)
- Do not send threads without stacktraces for ApplicationExitInfo ANRs (#5733)
- Record byte-level client reports when event processors discard logs or trace metrics (#5718)
- Name the device-info caching thread
SentryDeviceInfoCache so all threads spawned by the SDK are identifiable (#5684)
- Apply byte-category rate limits to log and trace metric envelope items (#5716)
Performance
- Skip
Hint allocation in Scope.addBreadcrumb when no beforeBreadcrumb callback is set (#5689)
- Speed up scope persistence by detecting the Sentry executor thread via a marker instead of a
Thread.getName() name scan on every scope mutation (#5691)
- Remove executor prewarm during SDK init (#5681)
- The single-threaded
SentryExecutorService queued the prewarm work ahead of the first useful task, so it could only delay init work, never speed it up; the thread and class loading it warmed are paid identically by the first real task submitted right after.
Requested by: @adinauer
Merge target: (default)
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
Features
Add
Sentry.extendAppStart(),Sentry.finishExtendedAppStart(), andSentry.getExtendedAppStartSpan()to extend the app start measurement past the first frame for extra launch-time work on Android (#5604)options.isEnableStandaloneAppStartTracing). CallextendAppStart()inApplication.onCreateafter SDK init andfinishExtendedAppStart()when done:Add
trace_metric_bytedata category and record byte-level client reports when trace metrics are discarded (#5626)Support the
io.sentry.tombstone.report-historicalmanifest option to enable historical tombstone reporting viaAndroidManifest.xml<meta-data>(#5683)Fixes
NoSuchMethodErrorwhen usingMath.floorDiv/Math.floorModon Android < 24 (#5743)SentryDeviceInfoCacheso all threads spawned by the SDK are identifiable (#5684)Performance
Hintallocation inScope.addBreadcrumbwhen nobeforeBreadcrumbcallback is set (#5689)Thread.getName()name scan on every scope mutation (#5691)SentryExecutorServicequeued the prewarm work ahead of the first useful task, so it could only delay init work, never speed it up; the thread and class loading it warmed are paid identically by the first real task submitted right after.