Releases: DataDog/dd-sdk-android
2.19.1
2.19.0
If you are using Session Replay, please upgrade to version 2.19.1
When Session Replay is enabled, we identified a crash when using StateListDrawable and Drawable.getCurrent returns null (#2545)
Changelog
- [FEATURE] Core: Introduce anonymous RUM Identifier. See #2487
- [BUGFIX] Fixing telemetry sampling rate reporting. See #2503
- [BUGFIX] Allow first build complete to be any number format. See #2527
- [IMPROVEMENT] RUM View Ended Telemetry now includes TNS and INV. See #2495
- [IMPROVEMENT] Trace: Forward RUM Session ID in trace headers. See #2502
- [IMPROVEMENT] View ended instrumentation type attribute support. See #2504
- [IMPROVEMENT] Support for configuration schema updates for time based strategy of TNS and INV metrics. See #2505
- [IMPROVEMENT] Core: Change
UploadWorkervisibility frominternaltopublic. See #2511 - [IMPROVEMENT] Ensure span logs use 128 bits trace id as hex string. See #2512
- [IMPROVEMENT] RUM: Refactor
JankStatsActivityLifecycleListener. See #2513 - [IMPROVEMENT] Core: Update
UserInfoAPI to make id mandatory. See #2509
WARNING: If SDK is used from Java,setUserInfomethod requires User ID to be non-null. UsesetUserInfoDeprecatedfor the backward-compatibility. - [IMPROVEMENT] Improvements to the upload mechanism. See #2514
- [IMPROVEMENT] Catch Coroutines errors while getting all threads stacktraces. See #2522
- [IMPROVEMENT] Support Flutter's FBC and custom INV values. See #2520
- [IMPROVEMENT] RUM: Add ability to manually add an activity to
JankStats. See #2524 - [IMPROVEMENT] Session Replay: Allow definition of custom implementations of specific Session Replay methods. See #2516
- [IMPROVEMENT] Session Replay: Improve
StateListDrawablesupport in session replay. See #2531 - [MAINTENANCE] Next dev iteration
2.19.0. See #2498 - [MAINTENANCE] Fix flaky test in Head-based sampling test suite. See #2499
- [MAINTENANCE] Session Replay: Add support for Detekt checks for Session Replay Compose module. See #2507
- [MAINTENANCE] Update AGP version to
8.8.2. See #2515 - [MAINTENANCE] RUM: Avoid logging initial
nullviewLoadingTimeon first call toaddViewLoadingTime. See #2517 - [MAINTENANCE] Upgrade github action to use
ubuntu-latest. See #2523 - [DOCS] Update SDK performance doc with Session Replay measurements. See #2481
2.18.0
- [FEATURE] Allow disabling 404 span redaction. See #2496
- [IMPROVEMENT] Improve telemetry on invalid view duration. See #2466
- [IMPROVEMENT] Improve the view duration accuracy. See #2467
- [IMPROVEMENT] Fix internal telemetry on invalid loading time usage. See #2468
- [IMPROVEMENT] Add
Slidersemantics node mapper. See #2459 - [IMPROVEMENT] Fix ProGuard rules for Compose
Checkbox. See #2470 - [IMPROVEMENT] Remove non-critical Compose reflection error from telemetry. See #2476
- [IMPROVEMENT] Add Semantics mapper for
Switch. See #2471 - [IMPROVEMENT] Apply contrasting color to
Semanticscomponent. See #2477 - [IMPROVEMENT] Fix center crop image is not cropped in wireframe. See #2479
- [IMPROVEMENT] Add
RadioButtoncolor. See #2478 - [IMPROVEMENT] Update enums to match RUM event schema. See #2482
- [IMPROVEMENT] Fix
_dd.rule_psrattribute calculation for RUM. See #2485 - [IMPROVEMENT] Implement Head-based sampling for network instrumentation. See #2483
- [IMPROVEMENT] Add OpenTracing API as exported dependency to OkHttp instrumentation. See #2488
- [IMPROVEMENT] Improve
updateFeatureContextperformances. See #2489 - [IMPROVEMENT] Adjust telemetry metrics sampling rates. See #2490
- [MAINTENANCE] Bump develop version to 2.18.0 snapshot. See #2465
- [MAINTENANCE] Update dependencies, adjusting detekt rules, fix tests. See #2463
- [MAINTENANCE] Update AGP to version 8.7.3. See #2484
- [MAINTENANCE] Include Java API surface file in the API changes check. See #2493
- [MAINTENANCE] Update RUM Schema. See #2492
- [MAINTENANCE] Pin github actions to exact commit hash. See #2494
- [DOCS] Fix KDoc for
RumMonitor#stopSession. See #2480
2.17.0
Important
Session Replay has now reached General Availability and is no longer offered free of charge. Billing for this feature will begin starting from this version.
- [FEATURE] Implement the basic logic for
time-to-network-settleview metric. See #2397 - [FEATURE] Add a Jetpack Compose fine grained masking override API. See #2416
- [FEATURE] Implement the basic logic for
interaction-to-next-view-metric. See #2417 - [FEATURE] Support
is_main_processproperty in telemetry configuration. See #2422 - [FEATURE] Introduce the
setNetworkSettledInitialResourceIdentifierAPI. See #2424 - [FEATURE] Introduce the
setLastInteractionIdentifierpublic API. See #2428 - [IMPROVEMENT] Refactor
TextSemanticsNodeMapperto commonize the text wireframe logic. See #2401 - [IMPROVEMENT] Add
TextFieldsemantics mapper for Session Replay Compose. See #2406 - [IMPROVEMENT] Decouple Jetpack Compose reflection functions and report to Telemetry. See #2415
- [IMPROVEMENT] Move
ImageSemanticsMapperreflection functions intoReflectionUtils. See #2419 - [IMPROVEMENT] Handle readOnly
additionalProperties. See #2423 - [IMPROVEMENT] Improve the log message when exception happen during upload. See #2411
- [IMPROVEMENT] Apply global privacy level to semantics node mappers. See #2413
- [IMPROVEMENT] Apply touch privacy override in
RootSemanticsMapper. See #2421 - [IMPROVEMENT] Get rid of
Thread.sleep(SHORT_SLEEP_MS)in unit tests atDatadogEventListenerTest. See #2430 - [IMPROVEMENT] Add backwards compatibility for Coil
AsyncImage. See #2432 - [IMPROVEMENT] Change the
logApiUsagemethod signature - making event parameter computation lazy. See #2433 - [IMPROVEMENT] Apply the
hideview override on Semantics nodes. See #2434 - [IMPROVEMENT] Correctly handle
TTNSwhen a resource was stopped with an error. See #2444 - [IMPROVEMENT] Add integration tests for the
TTNSmetric. See #2442 - [IMPROVEMENT] Add integration tests for
ITNVmetric. See #2445 - [IMPROVEMENT] Display captured text when the text has
Ellipsisoverflow. See #2446 - [IMPROVEMENT] Support interop view from Jetpack Compose. See #2452
- [IMPROVEMENT] Add an "effective sample rate" to telemetry events. See #2453
- [IMPROVEMENT] Handle traces with coroutines. See #2457
- [IMPROVEMENT] Add support for Jetpack Compose Checkbox. See #2414
- [IMPROVEMENT] Replace
joinToStringwhen possible. See #2456 - [MAINTENANCE] Fix flaky test in the Deterministic Sampler. See #2412
- [MAINTENANCE] Fix
TextFieldSemanticsNodeMapperflaky test. See #2410 - [MAINTENANCE] Fix potential issues with subdomain host lookups. See #2436
- [MAINTENANCE] Fix the way we are recording the last interaction for the
ITNVmetric. See #2431 - [MAINTENANCE] Deprecate Datadog
GlobalTracerclass. See #2438 - [MAINTENANCE] Correct the way we register the initial resources for the
TTNSmetric. See #2439 - [MAINTENANCE] Explicit Fragment dependency. See #2443
- [MAINTENANCE] Don't warn about missing views on
PerformanceMetricevents. See #2454
2.16.1
What's Changed
- Patch version to allow support for React Native Session Replay by @jonathanmos in #2458
Full Changelog: 2.16.0...2.16.1
2.16.0
- [FEATURE] Session Replay: Create Session Replay Compose module.
See #1879 - [FEATURE] Session Replay: Add
TabandTabRowComposable groups mappers.
See #2171 - [FEATURE] Session Replay: Add Abstract and Text semantics mapper for Compose Session Replay.
See #2292 - [FEATURE] Session Replay: Add Semantics Mapper for Button role.
See #2296 - [FEATURE] Session Replay: Add
ImageSemanticsNodeMapperto support image role for Session Replay.
See #2322 - [FEATURE] Session Replay: Add Tab semantics mapper.
See #2378 - [FEATURE] Session Replay: Add
RadioButtonSemantics Node Mapper.
See #2381 - [FEATURE] Session Replay: Add Material Chip mapper and improve
CompoundButtontelemetry.
See #2364 - [FEATURE] Session Replay: Add Compose Session Replay scenario for benchmark sample application.
See #2379 - [FEATURE] Session Replay: Add multiple extension support.
See #2384 - [FEATURE] Session Replay: Add Compose Session Replay selector sample screen.
See #2394 - [FEATURE] Session Replay: Add
AndroidComposeViewMapperto support popup.
See #2395 - [FEATURE] Session Replay: Integrate benchmark profiler in Compose mapper.
See #2397 - [IMPROVEMENT] Add
MethodCalltelemetry for compose mapper.
See #2123 - [IMPROVEMENT] Apply privacy settings to
TextCompositionGroupMapperfor Compose.
See #2121 - [IMPROVEMENT] Use
SurfaceCompositionGroupMapperto support container components in Session
Replay.
See #2182 - [IMPROVEMENT] Fix padding and resizing issue for
ImageViewmapper.
See #2372 - [IMPROVEMENT] Add warning log when initializing the SDK outside of the main process.
See #2376 - [IMPROVEMENT] breaking API change: Allow typed
Sampler.
See #2385 - [IMPROVEMENT] Create the
DeterministicSampler.
See #2387 - [IMPROVEMENT] Use deterministic sampling by default when tracing.
See #2388 - [IMPROVEMENT] Align log levels for Session Replay already enabled.
See #2399 - [IMPROVEMENT] Adjust Webview Replay storage configuration limits.
See #2400 - [MAINTENANCE] Update Gradle to version
8.10.2.
See #2359 - [MAINTENANCE] Fix
ButtonCompositionGroupMappercrash while calculating the corner radius.
See #2173 - [MAINTENANCE] Fix Image reflection issue and update ProGuard rules.
See #2337 - [MAINTENANCE] Fix
CompoundButtonmapper drawable clone issue.
See #2365 - [MAINTENANCE] Fix crash while using recycled bitmap in Session Replay.
See #2396 - [MAINTENANCE] Add experimental annotation for Session Replay for Compose.
See #2377 - [MAINTENANCE] Lazy RUM raw event creation in event generator methods.
See #2363 - [MAINTENANCE] Remove legacy code using Compose
sourceInfo.
See #2386
2.15.1
What's Changed
- [MAINTENANCE] Fix
resolveResourceIdnot correctly calling job finished when drawable cloning
failed #2367
Full Changelog: 2.15.0...2.15.1
2.15.0
Note that Session Replay has an issue in this version with replays not recording correctly. We will release a fix for this shortly.
What's Changed
- [FEATURE] Add
TimeBankin Session Replay recorder for dynamic optimisation See #2247 - [FEATURE] Add Session Replay skipped frames count in
session endedmetrics. See #2256 - [FEATURE] Add a touch privacy override. See #2334
- [FEATURE] Add precheck conditions when registering the Session Replay feature. See #2264
- [FEATURE] Add a privacy override for hidden views. See #2291
- [FEATURE] Add image and textAndInput privacy overrides. See #2312
- [IMPROVEMENT] Add a dynamic optimization configuration field in
SessionReplayConfiguration. See #2259 - [IMPROVEMENT] Use layout text to display
TextViewoverflow correctly. See #2279 - [IMPROVEMENT] Remove the Session Replay
ButtonMapperborder. See #2280 - [IMPROVEMENT] Force single core for Session Replay. See #2324
- [IMPROVEMENT] Add a
ViewGroupsSession Replay demo screen in sample app. See #2285 - [IMPROVEMENT] Run integration tests on API 35 in the testing pyramid. See #2272
- [IMPROVEMENT] Add
MaterialCardViewsupport in the Material Session Replay extension. See #2290 - [IMPROVEMENT] Use an SDK source value in the Session Replay
MobileSegment.sourceproperty. See #2293 - [IMPROVEMENT] Update the Session Replay schema with a Kotlin Multiplatform source for Mobile segment. See #2297
- [IMPROVEMENT] Improve test coverage of core unit tests. See #2294
- [IMPROVEMENT] Improve unit test coverage for RUM, Logs and Trace features. See #2299
- [IMPROVEMENT] Send retry information into RUM data upload requests. See #2298
- [IMPROVEMENT] Make the
DataOkHttpUploaderstate volatile. See #2305 - [IMPROVEMENT] Read Session Replay system requirements synchronously with strict mode allowance. See #2307
- [IMPROVEMENT] Override process importance for Session Replay integration tests. See #2304
- [IMPROVEMENT] Detekt the api coverage in integration tests. See #2300
- [IMPROVEMENT] Resolve
PorterDuffColorFiltercase in drawable to color mapper. See #2319 - [IMPROVEMENT] Prevent obfuscation of Fine Grained Masking enums. See #2321
- [IMPROVEMENT] Make sure
ConsentAwareFileOrchestratoris thread safe. See #2313 - [IMPROVEMENT] Improve RUM integration tests. See #2317
- [IMPROVEMENT] Add a default sample rate for Session Replay. See #2323
- [IMPROVEMENT] Remove batch metrics inner sampler to increase sample rate. See #2328
- [IMPROVEMENT] Add missing integration test for Logs. See #2330
- [IMPROVEMENT] Update Session Replay integration test payloads. See #2318
- [MAINTENANCE] Update Datadog Agent to 1.41.0. See #2331
- [MAINTENANCE] Fix the decompression in Session Replay instrumented tests for API 21. See #2341
- [MAINTENANCE] Reactivate Session Replay instrumented test for API 21. See #2342
- [MAINTENANCE] Fix some flaky tests. See #2281
- [MAINTENANCE] Fix a StrictMode warning regarding I/O disk operation on the main thread. See #2284
- [MAINTENANCE] Fix flaky feature context integration tests. See #2295
- [MAINTENANCE] Fix
SeekBarWireframeMapperflaky test. See #2308 - [MAINTENANCE] Fix
SpanEventSerializerTestflakiness. See #2311 - [MAINTENANCE] Remove an unnecessary legacy privacy line from the sampleApplication. See #2314
- [MAINTENANCE] Use Java 11 bytecode for public modules. See #2315
- [MAINTENANCE] Fix RUM integration test
verifyViewEventsOnSwipe. See #2326 - [MAINTENANCE] Fix the regression for the
TelemetryErrorEventwith throwable. See #2325 - [MAINTENANCE] Fix the execution of legacy instrumentation tests in CI. See #2329
Full Changelog: 2.14.0...2.15.0
2.14.0
What's Changed
Note that this version contains a behavior change. Previously if no masking strategy was specified for Session Replay, user-input fields would be masked by default. With this release, if nothing is specified, everything will be masked - text, touches and images. In this version, Session Replay begins moving over to using fine grained masking, allowing masking levels to be set individually for text and input, images and touch, and deprecates the previous setPrivacy api.
- [FEATURE] Add stop and start APIs for Session Replay. See #2169
- [FEATURE] Add touch privacy fine grained masking API to Session Replay. See #2196
- [FEATURE] Add text and input privacy fine grained masking API to Session Replay. See #2235
- [FEATURE] Introduce the
RumMonitor#addViewLoadingTimeAPI. See #2243 - [FEATURE] Introduce the API usage telemetry event and API. See #2258
- [IMPROVEMENT] Enable Kotlin test fixtures support. See #2234
- [IMPROVEMENT] Add
isContainerattribute to session replay span. See #2244 - [IMPROVEMENT] Update custom detekt CI Job. See #2118
- [IMPROVEMENT] Randomize privacy levels to support Fine Grained Masking in E2E. See #2265
- [IMPROVEMENT] Update AGP to 8.6.1. See #2269
- [IMPROVEMENT] Add telemetry and logs related with
RumMonitor#addViewLoadingTimeAPI. See #2267 - [IMPROVEMENT] Handle SSE requests. See #2270
- [IMPROVEMENT] Do not use magic numbers in
InternalLoggerAPI. See #2271 - [IMPROVEMENT] Optimize MD5 byte array to hex string conversion. See #2273
- [IMPROVEMENT]
CONTRIBUTINGdoc changes. See #2275 - [IMPROVEMENT] Add env tag in benchmark metrics. See #2276
- [MAINTENANCE] Make image privacy fine grained masking API public in Session Replay. See #2204
- [MAINTENANCE] Update benchmark metrics memory reader probe interval. See #2228
- [MAINTENANCE] Fix the flakiness in the
KioskTrackingTest. See #2226 - [MAINTENANCE] Fix placeholder dimensions. See #2248
- [MAINTENANCE] Send fine grained masking instead of legacy privacy in config telemetry. See #2253
- [MAINTENANCE] Ensure
UploadWorkeruses the SDK instance name. See #2257 - [MAINTENANCE] Explicitly set
antlr-runtimetransitive dependency version. See #2261 - [MAINTENANCE] Add the integration tests related with
RumMonitor#addViewLoadingTimeAPI. See #2268 - [MAINTENANCE] Fix
DatadogInterceptorflaky test. See #2274 - [MAINTENANCE] Fix typos and links in Github issue templates. See #2277
Full Changelog: 2.13.1...2.14.0