github getsentry/sentry-java 8.48.0

5 hours ago

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.

Don't miss a new sentry-java release

NewReleases is sending notifications on new releases.