|
2 | 2 |
|
3 | 3 | ## Unreleased |
4 | 4 |
|
| 5 | +### Features |
| 6 | + |
| 7 | +- Add option to capture additional OkHttp network request/response details in session replays ([#4919](https://github.com/getsentry/sentry-java/pull/4919)) |
| 8 | + - Depends on `SentryOkHttpInterceptor` to intercept the request and extract request/response bodies |
| 9 | + - To enable, add url regexes via the `io.sentry.session-replay.network-detail-allow-urls` metadata tag in AndroidManifest ([code sample](https://github.com/getsentry/sentry-java/blob/b03edbb1b0d8b871c62a09bc02cbd8a4e1f6fea1/sentry-samples/sentry-samples-android/src/main/AndroidManifest.xml#L196-L205)) |
| 10 | + - Or you can manually specify SentryReplayOptions via `SentryAndroid#init`: |
| 11 | +_(Make sure you disable the auto init via manifest meta-data: io.sentry.auto-init=false)_ |
| 12 | + |
| 13 | +<details> |
| 14 | + <summary>Kotlin</summary> |
| 15 | + |
| 16 | +```kotlin |
| 17 | +SentryAndroid.init( |
| 18 | + this, |
| 19 | + options -> { |
| 20 | + // options.dsn = "https://examplePublicKey@o0.ingest.sentry.io/0" |
| 21 | + // options.sessionReplay.sessionSampleRate = 1.0 |
| 22 | + // options.sessionReplay.onErrorSampleRate = 1.0 |
| 23 | + // .. |
| 24 | + |
| 25 | + options.sessionReplay.networkDetailAllowUrls = listOf(".*") |
| 26 | + options.sessionReplay.networkDetailDenyUrls = listOf(".*deny.*") |
| 27 | + options.sessionReplay.networkRequestHeaders = listOf("Authorization", "X-Custom-Header", "X-Test-Request") |
| 28 | + options.sessionReplay.networkResponseHeaders = listOf("X-Response-Time", "X-Cache-Status", "X-Test-Response") |
| 29 | + }); |
| 30 | +``` |
| 31 | + |
| 32 | +</details> |
| 33 | + |
| 34 | +<details> |
| 35 | + <summary>Java</summary> |
| 36 | + |
| 37 | +```java |
| 38 | +SentryAndroid.init( |
| 39 | + this, |
| 40 | + options -> { |
| 41 | + options.getSessionReplay().setNetworkDetailAllowUrls(Arrays.asList(".*")); |
| 42 | + options.getSessionReplay().setNetworkDetailDenyUrls(Arrays.asList(".*deny.*")); |
| 43 | + options.getSessionReplay().setNetworkRequestHeaders( |
| 44 | + Arrays.asList("Authorization", "X-Custom-Header", "X-Test-Request")); |
| 45 | + options.getSessionReplay().setNetworkResponseHeaders( |
| 46 | + Arrays.asList("X-Response-Time", "X-Cache-Status", "X-Test-Response")); |
| 47 | + }); |
| 48 | + |
| 49 | +``` |
| 50 | + |
| 51 | +</details> |
| 52 | +- Android: Flush logs when app enters background ([#4873](https://github.com/getsentry/sentry-java/pull/4873)) |
| 53 | + |
| 54 | + |
| 55 | +### Improvements |
| 56 | + |
| 57 | +- Avoid forking `rootScopes` for Reactor if current thread has `NoOpScopes` ([#4793](https://github.com/getsentry/sentry-java/pull/4793)) |
| 58 | + - This reduces the SDKs overhead by avoiding unnecessary scope forks |
| 59 | + |
| 60 | +### Fixes |
| 61 | + |
| 62 | +- Fix missing thread stacks for ANRv1 events ([#4918](https://github.com/getsentry/sentry-java/pull/4918)) |
| 63 | + |
| 64 | +### Internal |
| 65 | + |
| 66 | +- Support `span` envelope item type ([#4935](https://github.com/getsentry/sentry-java/pull/4935)) |
| 67 | + |
| 68 | +## 8.27.1 |
| 69 | + |
| 70 | +### Fixes |
| 71 | + |
| 72 | +- Do not log if `sentry.properties` in rundir has not been found ([#4929](https://github.com/getsentry/sentry-java/pull/4929)) |
| 73 | + |
| 74 | +## 8.27.0 |
| 75 | + |
| 76 | +### Features |
| 77 | + |
| 78 | +- Implement OpenFeature Integration that tracks Feature Flag evaluations ([#4910](https://github.com/getsentry/sentry-java/pull/4910)) |
| 79 | + - To make use of it, add the `sentry-openfeature` dependency and register the the hook using: `openFeatureApiInstance.addHooks(new SentryOpenFeatureHook());` |
| 80 | +- Implement LaunchDarkly Integrations that track Feature Flag evaluations ([#4917](https://github.com/getsentry/sentry-java/pull/4917)) |
| 81 | + - For Android, please add `sentry-launchdarkly-android` as a dependency and register the `SentryLaunchDarklyAndroidHook` |
| 82 | + - For Server / JVM, please add `sentry-launchdarkly-server` as a dependency and register the `SentryLaunchDarklyServerHook` |
| 83 | +- Detect oversized events and reduce their size ([#4903](https://github.com/getsentry/sentry-java/pull/4903)) |
| 84 | + - You can opt into this new behaviour by setting `enableEventSizeLimiting` to `true` (`sentry.enable-event-size-limiting=true` for Spring Boot `application.properties`) |
| 85 | + - You may optionally register an `onOversizedEvent` callback to implement custom logic that is executed in case an oversized event is detected |
| 86 | + - This is executed first and if event size was reduced sufficiently, no further truncation is performed |
| 87 | + - 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 |
| 88 | + |
| 89 | +### Improvements |
| 90 | + |
| 91 | +- Do not send manual log origin ([#4897](https://github.com/getsentry/sentry-java/pull/4897)) |
| 92 | + |
| 93 | +### Dependencies |
| 94 | + |
| 95 | +- Bump Spring Boot 4 to GA ([#4923](https://github.com/getsentry/sentry-java/pull/4923)) |
| 96 | + |
| 97 | +## 8.26.0 |
| 98 | + |
| 99 | +### Features |
| 100 | + |
| 101 | +- Add feature flags API ([#4812](https://github.com/getsentry/sentry-java/pull/4812)) and ([#4831](https://github.com/getsentry/sentry-java/pull/4831)) |
| 102 | + - You may now keep track of your feature flag evaluations and have them show up in Sentry. |
| 103 | + - Top level API (`Sentry.addFeatureFlag("my-feature-flag", true);`) writes to scopes and the current span (if there is one) |
| 104 | + - It is also possible to use API on `IScope`, `IScopes`, `ISpan` and `ITransaction` directly |
| 105 | + - Feature flag evaluations tracked on scope(s) will be added to any errors reported to Sentry. |
| 106 | + - The SDK keeps the latest 100 evaluations from scope(s), replacing old entries as new evaluations are added. |
| 107 | + - For feature flag evaluations tracked on spans: |
| 108 | + - Only 10 evaluations are tracked per span, existing flags are updated but new ones exceeding the limit are ignored |
| 109 | + - Spans do not inherit evaluations from their parent |
| 110 | +- Drop log events once buffer hits hard limit ([#4889](https://github.com/getsentry/sentry-java/pull/4889)) |
| 111 | + - If we have 1000 log events queued up, we drop any new logs coming in to prevent OOM |
| 112 | +- Remove vendored code and upgrade to async profiler 4.2 ([#4856](https://github.com/getsentry/sentry-java/pull/4856)) |
| 113 | + - This adds support for JDK 23+ |
| 114 | + |
5 | 115 | ### Fixes |
6 | 116 |
|
7 | 117 | - Removed SentryExecutorService limit for delayed scheduled tasks ([#4846](https://github.com/getsentry/sentry-java/pull/4846)) |
8 | 118 | - Fix visual artifacts for the Canvas strategy on some devices ([#4861](https://github.com/getsentry/sentry-java/pull/4861)) |
| 119 | +- [Config] Trim whitespace on properties path ([#4880](https://github.com/getsentry/sentry-java/pull/4880)) |
| 120 | +- Only set `DefaultReplayBreadcrumbConverter` if replay is available ([#4888](https://github.com/getsentry/sentry-java/pull/4888)) |
| 121 | +- Session Replay: Cache connection status instead of using blocking calls ([#4891](https://github.com/getsentry/sentry-java/pull/4891)) |
| 122 | +- Fix log count in client reports ([#4869](https://github.com/getsentry/sentry-java/pull/4869)) |
| 123 | +- Fix profilerId propagation ([#4833](https://github.com/getsentry/sentry-java/pull/4833)) |
| 124 | +- Fix profiling init for Spring and Spring Boot w Agent auto-init ([#4815](https://github.com/getsentry/sentry-java/pull/4815)) |
| 125 | +- Copy active span on scope clone ([#4878](https://github.com/getsentry/sentry-java/pull/4878)) |
9 | 126 |
|
10 | 127 | ### Improvements |
11 | 128 |
|
12 | 129 | - Fallback to distinct-id as user.id logging attribute when user is not set ([#4847](https://github.com/getsentry/sentry-java/pull/4847)) |
13 | 130 | - Report Timber.tag() as `timber.tag` log attribute ([#4845](https://github.com/getsentry/sentry-java/pull/4845)) |
14 | 131 | - Session Replay: Add screenshot strategy serialization to RRWeb events ([#4851](https://github.com/getsentry/sentry-java/pull/4851)) |
15 | | -- Android: Flush log when app enters background ([#4873](https://github.com/getsentry/sentry-java/pull/4873)) |
| 132 | +- Report discarded log bytes ([#4871](https://github.com/getsentry/sentry-java/pull/4871)) |
| 133 | +- Log why a properties file was not loaded ([#4879](https://github.com/getsentry/sentry-java/pull/4879)) |
16 | 134 |
|
17 | 135 | ### Dependencies |
18 | 136 |
|
19 | 137 | - Bump Native SDK from v0.11.3 to v0.12.1 ([#4859](https://github.com/getsentry/sentry-java/pull/4859)) |
20 | 138 | - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0121) |
21 | 139 | - [diff](https://github.com/getsentry/sentry-native/compare/0.11.3...0.12.1) |
| 140 | +- Bump Spring Boot 4 to RC2 ([#4886](https://github.com/getsentry/sentry-java/pull/4886)) |
22 | 141 |
|
23 | 142 | ## 8.25.0 |
24 | 143 |
|
|
0 commit comments