Features
- Android: Flush logs when app enters background (#4951)
- Add option to capture additional OkHttp network request/response details in session replays (#4919)
- Depends on
SentryOkHttpInterceptorto intercept the request and extract request/response bodies - To enable, add url regexes via the
io.sentry.session-replay.network-detail-allow-urlsmetadata tag in AndroidManifest (code sample)- Or you can manually specify SentryReplayOptions via
SentryAndroid#init:
(Make sure you disable the auto init via manifest meta-data: io.sentry.auto-init=false)
- Or you can manually specify SentryReplayOptions via
- Depends on
Kotlin
SentryAndroid.init(
this,
options -> {
// options.dsn = "https://examplePublicKey@o0.ingest.sentry.io/0"
// options.sessionReplay.sessionSampleRate = 1.0
// options.sessionReplay.onErrorSampleRate = 1.0
// ..
options.sessionReplay.networkDetailAllowUrls = listOf(".*")
options.sessionReplay.networkDetailDenyUrls = listOf(".*deny.*")
options.sessionReplay.networkRequestHeaders = listOf("Authorization", "X-Custom-Header", "X-Test-Request")
options.sessionReplay.networkResponseHeaders = listOf("X-Response-Time", "X-Cache-Status", "X-Test-Response")
});Java
SentryAndroid.init(
this,
options -> {
options.getSessionReplay().setNetworkDetailAllowUrls(Arrays.asList(".*"));
options.getSessionReplay().setNetworkDetailDenyUrls(Arrays.asList(".*deny.*"));
options.getSessionReplay().setNetworkRequestHeaders(
Arrays.asList("Authorization", "X-Custom-Header", "X-Test-Request"));
options.getSessionReplay().setNetworkResponseHeaders(
Arrays.asList("X-Response-Time", "X-Cache-Status", "X-Test-Response"));
});Improvements
- Avoid forking
rootScopesfor Reactor if current thread hasNoOpScopes(#4793)- This reduces the SDKs overhead by avoiding unnecessary scope forks
Fixes
- Fix missing thread stacks for ANRv1 events (#4918)
- Fix handling of unparseable mime-type on request filter (#4939)
Internal
- Support
spanenvelope item type (#4935)