- [FEATURE] Support interstitial Activities case for TTID reporting:
- [FEATURE] Capture
OkHttpnetwork headers. See #3204 - [BUGFIX] Fix
RecorderWindowCallbackcrash on null menu parameter. See #3239 - [BUGFIX] Use variant key instead of value in RUM feature flag tracking. See #3245
- [BUGFIX] Update Proguard rules for
GlobalDatadogTracer. See #3251 - [BUGFIX] Fix memory corruption in NDK module. See #3257
- [BUGFIX] Fix stale state context mismatch. See #3224
- [BUGFIX] Fix duplicate spans. See #3267
- [IMPROVEMENT] Telemetry support for Cronet integration. See #3210
- [IMPROVEMENT] Remove
PIIfromWebViewevent error logging. See #3250 - [IMPROVEMENT] Exempt telemetry configuration event from the session event count limit. See #3248
- [IMPROVEMENT] Propagate trace and session replay sample rates to RUM
ViewEvents. See #3247 - [IMPROVEMENT] Reduce
.sofile size. See #3190 - [IMPROVEMENT] Implement deterministic RUM session sampling. See #3264
- [IMPROVEMENT] Downgrade
androidx-coreto1.15.0in order to preserve AndroidcompileSdk 35compatibility. See #3266 - [IMPROVEMENT] Update profiling telemetry with more data. See #3240
- [IMPROVEMENT] Use schema defined in
rum-events-formatto generateProfileEvent. See #3268 - [MAINTENANCE] Fix self-referential test assertions in serialization round-trip tests. See #3242
- [MAINTENANCE] Fix flaky
AppStartupActivityPredicateTest. See #3218 - [MAINTENANCE] Migrate to unified
InternalLoggerUtils. See #3241 - [MAINTENANCE] Add Claude skill:
android-sdk-event-inspection. See #3220 - [MAINTENANCE] Add basic AI dev tooling. See #3243
- [MAINTENANCE] Add Play SDK console verification token to new modules. See #3217
- [MAINTENANCE] Only exclude files inside the repo. See #3246
- [MAINTENANCE] Remove
:tools:benchmarkmodule from sample app dependencies. See #3253 - [MAINTENANCE] Add Datadog code coverage upload. See #3255
- [MAINTENANCE] Add
TODOforgetResourceNameinconsistency. See #3252 - [MAINTENANCE] Remove FQCN usage. See #3261
- [MAINTENANCE] Relax offset for floating point numbers assertions. See #3262
- [MAINTENANCE] Avoid logging test assumptions failures to stderr. See #3263
- [MAINTENANCE] Update Gradle to version
9.4.0. See #3258 - [MAINTENANCE] Remove deprecation suppression from
Path.computeBoundscall site. See #3265
- [BUGFIX] Deprecated classes restored to preserve backward compatibility. See #3215
- [FEATURE] APM support for Cronet instrumentation:
- [FEATURE] Feature Flags Evaluation Logging:
- Event Schema & Data Models. See #3144
- Storage & Network Infrastructure. See #3146
- Aggregation Engine & Test Utilities. See #3145
- Integration. See #3147
- Flag evaluation schema. See #3166
- Evaluations subfeature. See #3159
- Evaluation aggregation followup. See #3178
- Use time-based periodic flush instead of cancel+reschedule. See #3189
- [BUGFIX] Fix missing feature flags in crash and ANR error events. See #3172
- [BUGFIX] Fix global attributes not copied when view stops. See #3177
- [BUGFIX] Fix evaluations feature startup deadlock. See #3186
- [BUGFIX] Fix typo in the CPU metric name of RUM Debug widget. See #3188
- [BUGFIX] Fix missing error tracking in
resolve()API. See #3187 - [BUGFIX] Address
ConcurrentModificationExceptionin the RUM pipeline. See #3196 - [BUGFIX] Fix more concurrency issues. See #3197
- [IMPROVEMENT] Support custom view instrumentation types for cross-platform SDKs. See #3167
- [IMPROVEMENT] Use read lock for
removeListener. See #3132 - [IMPROVEMENT] Add Profiling start reason for synthetics test. See #3160
- [IMPROVEMENT] Fix
stopResourceWithErroroverloads to usegetEventTime(attributes). See #3155 - [IMPROVEMENT] Include SDK name/version for flag config requests. See #3162
- [IMPROVEMENT] Remove
KeepAliveevent in RUM. See #3079 - [IMPROVEMENT] Improve
InsightsCollector.ktmethods signatures. See #3207 - [IMPROVEMENT] Add GraphQL errors support for cross-platform SDKs. See #3201
- [IMPROVEMENT] Lower
LayoutNodeUtilstelemetry towarningwith call site information. See #3208 - [IMPROVEMENT] Add
totalRam,logicalCpuCountandisLowRamtoDeviceInfo. See #3024 - [IMPROVEMENT] Update RUM schema. See #3193
- [IMPROVEMENT] Avoid blocking context call at the Flags feature initialization. See #3194
- [IMPROVEMENT] Address a warning about
ConcurrentHashMapparametrized with nullable value type. See #3195 - [IMPROVEMENT] Improve ANR detector runnable. See #3192
- [IMPROVEMENT] Close precomputed assignments response body. See #3198
- [MAINTENANCE] Fix NPE in
TracingInterceptortests. See #3181 - [MAINTENANCE] Redirect
TraceStructureWriterdefault output from stderr to stdout. See #3191 - [MAINTENANCE] Fix JSON model generation task caching. See #3179
- [MAINTENANCE] Use
developbuild cache as a fallback in Gitlab CI jobs. See #3140 - [MAINTENANCE] Make
ViewLoadingTimeMetricstests deterministic and faster with controlled time. See #3154 - [MAINTENANCE] Configure JUnit test tasks to log
FAILEDandSTANDARD_ERRORevents. See #3163 - [MAINTENANCE] Migrate from slack-notifier v1 to v3-sdm. See #3165
- [MAINTENANCE] Update dependencies plugin to version
0.5.0. See #3170 - [MAINTENANCE] Bump Datadog gradle plugin to
1.23.0. See #3176 - [MAINTENANCE] Merge evaluations into develop. See #3183
- [MAINTENANCE] Add detekt-cli jar to
.gitignore. See #3185
- [FEATURE] New feature - Profiling. See docs for more details.
- Create profiling module. See #2893
- Integrate Perfetto
ProfilingManagerAPI. See #2902 - Create Profiling Event schema. See #2912
- Implement Profiling writer and request factory. See #2915
- Implement Profiling Feature. See #2918
- Send TTID event to Profiling feature to stop profiling. See #2933
- Defer
requestProfilingto next app launch. See #2950 - Add file size in profiling telemetry & fix unit test. See #2964
- Rename
ProfilingEventtoProfileEvent. See #2969 - Add missing
ProfileEventtags. See #2992 - Attach RUM information on profiling event. See #3017
- Add profiling status in RUM vital event. See #3021
- Handle multi SDK instance in profiling. See #3026
- Fix RUM context bundling for
ProfileEvent. See #3036 - Reduce Profiling max duration to 10 seconds. See #3040
- Add build ID in profiling event tags. See #3046
- Add
Profiling.profileNextAppStartupAPI. See #3045 - Fix
nullbuild ID in profile event tags. See #3059= - Add
ProfilingFragmentinto Sample Application. See #3074 - Rebuild profiling request for every profiling start. See #3076
- Initialize Profiler only once for multiple start calls. See #3081
- Expose Profiling start/stop as public API. See #3092
- Address concurrency and app start detection issues in Profiling. See #3117
- Remove
profileNextAppStartupAPI. See #3121 - Add sample rate for App launch profiling. See #3109
- Set profiling sampling rate to 15%, improve profiling logic. See #3127
- Add
operation:launchtag for profiling. See #3133 - Update Profiling App launch telemetry. See #3134
- Add experimental annotation on Profiling APIs & Bug fix. See #3143
- Update Profiler sampling frequency to 201Hz. See #3148
- Remove custom profiling from public API. See #3152
- [FEATURE] Flags compatibility with OpenFeature
- [BUGFIX] Mark fatal ANR as processed before RUM events are written. See #3129
- [IMPROVEMENT] Flags: State change notification for flags client (for OpenFeature). See #3042
- [IMPROVEMENT] Flags: Resolve map of primitives. See #3044
- [IMPROVEMENT] Flags: Add support for global flags via
EvaluationContext.EMPTY. See #3104 - [IMPROVEMENT] Flags: Add
STATICresolution reason. See #3131 - [IMPROVEMENT] Add
setVersionmethod to the configuration. See #3137 - [MAINTENANCE] Update Kotlin AST parser dependency version. See #3112
- [MAINTENANCE] Skip profiling schema files in session replay module. See #3119
- [MAINTENANCE] Refactor publishing on CI to use a single job. See #3122
- [MAINTENANCE] Use a single gradle command for
customDetektRules. See #3123 - [MAINTENANCE] Drop
Rumprefix for the generatedVitalmodels. See #3125 - [MAINTENANCE] Move
:tools:benchmarktests to the correct package. See #3150 - [DOCS] Use Kotlin DSL for buildscript snippets in
READMEfiles. See #3138
- [FEATURE] RUM Debug Widget. See #2943
- [FEATURE] Cronet integration module and sample app support. See #2999
- [FEATURE] RUM support for Cronet. See #3029
- [FEATURE] RUM Resources instrumentation support for Cronet network library. See #3062
- [FEATURE] Add Coil3 Integration. See #3054
- [FEATURE] Support
process_uptimeattribute for telemetry debug/error events. See #3013 - [FEATURE] Introduce
vitalAppLaunchEventMapper. See #2987 - [FEATURE] Add callback support to
setEvaluationContextmethod. See #3056 - [FEATURE]
FlagsClientchanges to accommodate Flags React Native SDK sync flag evaluations. See #3049 - [FEATURE] Enable UI slow frames by default. See #3102
- [BUGFIX] Do not send TTID and TTFD vitals if they are too large. See #3031
- [BUGFIX] Fix service handling in
ddtagsofLogEvent. See #3052 - [BUGFIX] Fall back to
DdRumContentProvidercreation time. See #3055 - [BUGFIX] Fix Compose checkbox not sending RUM action. See #3077
- [BUGFIX] Handle ANR trace open exception. See #3082
- [BUGFIX] Fix issue with
OnWindowFocusChanged. See #3083 - [BUGFIX] Fix: set
currentStatein a blocking call. See #3068 - [BUGFIX] Avoid querying battery during initialization. See #3099
- [IMPROVEMENT] Move RUM Debug Widget code from RUM module to a new separate module. See #2960
- [IMPROVEMENT] Refactor the configuration and integration of the RUM Debug Widget. See #2975
- [IMPROVEMENT] Add light theme colors to the RUM Debug Widget. See #3037
- [IMPROVEMENT] Put Request tag with UUID in
DatadogInterceptor. See #3086 - [IMPROVEMENT] Add IDs to errors and long tasks. See #3073
- [IMPROVEMENT] Increase gap threshold for app launch scenario detection heuristic. See #3105
- [IMPROVEMENT] Replace System static calls with
TimeProvider. See #3011 - [IMPROVEMENT] Add telemetry to track WebView instrumentation usage. See #3087
- [IMPROVEMENT] Handle
RumVitalAppLaunchEventby default. See #3067 - [IMPROVEMENT] Correct the deprecation message of
setVitalEventMapper. See #3100 - [IMPROVEMENT] Move
HttpSpec,RequestInfo/ResponseInfointointernalmodule. See #3064 - [IMPROVEMENT] Remove JVM assert usage. See #3061
- [IMPROVEMENT] Generate Kotlin metadata ABI and JVM bytecode versions. See #3088
- [MAINTENANCE] Fix GitLab CI Pipeline. See #2948
- [MAINTENANCE] Add tests to core RUM Debug Widget components. See #2971
- [MAINTENANCE] Update Gradle version to 8.14.3, AGP version to 8.13.2. See #3089
- [MAINTENANCE] Update Datadog Gradle Plugin version used to 1.21.0. See #3090
- [MAINTENANCE] Bump CodeQL version to 3.31.9. See #3084
- [MAINTENANCE] Add scripts to set/get Vault secrets & Migrate CI. See #2974
- [MAINTENANCE] Use Gradle lazy APIs in build script files. See #3106
- [MAINTENANCE] Remove
ApiLevelExtension. See #3095 - [MAINTENANCE] Add
PreferTimeProviderdetekt rule. See #3096 - [MAINTENANCE] Remove unused
FileOrchestrator.getRootDirNameAPI. See #3108 - [MAINTENANCE] Refactoring of RUM schema cloning and parser generation tasks. See #3094
- [MAINTENANCE] Update command line tools version. See #3078
- [MAINTENANCE] Remove consumer ProGuard rules definition from buildscript of
dd-sdk-android-trace-internal. See #3091
- [FEATURE] State change notification for flags client. See #3025
- [BUGFIX] Fix crash in
KronosTimeProvider. See #3014 - [BUGFIX] Fix RUM resource duration breakdown. See #3010
- [BUGFIX] Handle potential
StackOverflowError. See #2990 - [IMPROVEMENT] Send text truncation mode in Session Replay. See #2978
- [IMPROVEMENT] Support svgs with
navigation3. See #3027 - [IMPROVEMENT] Support content scaling in Jetpack Compose. See #3035
- [IMPROVEMENT] Support non-ASCII GraphQL headers. See #3041
- [IMPROVEMENT] Add service name to
ddtagsofLogEvent. See #3006 - [IMPROVEMENT] Add
versionCodeandbuildIdin more places. See #3007 - [IMPROVEMENT] Add
anonymousIdto the emptyUserInfoobject check. See #3012 - [IMPROVEMENT] Override Metrics telemetry sample rate. See #3022
- [IMPROVEMENT] Stop using process importance when distinguishing between cold and warm launches. See #3030
- [MAINTENANCE] Merge
release/3.3.0intodevelop. See #3016 - [MAINTENANCE] Remove
resolveMeta&resolveMetricsmethods in tests. See #3005 - [MAINTENANCE] Revive Session Replay instrumentation tests. See #2965
- [MAINTENANCE] Next dev iteration. See #3009
- [FEATURE] Feature flags. See #2982 and #2879
- [FEATURE] Feature flags: Apply readme suggestions. See #2988
- [FEATURE] Feature flags: Fix detekt violations in the flags module. See #2994
- [FEATURE] Feature flags context management. See #2886
- [FEATURE] Feature flags: Send exposures as batches. See #2895
- [FEATURE] Feature flags: Add a persistence layer. See #2898
- [FEATURE] Feature flags:
DatadogSiteextension for Flags endpoint. See #2922 - [FEATURE] Feature flags:
Flags.enableandFlagsClientAPIs. See #2900 - [FEATURE] Feature flags: Support custom endpoints for exposures. See #2942
- [FEATURE] Feature flags: Custom flagging endpoint and assignment download refactoring. See #2917
- [FEATURE] Feature flags: RUM Evaluation Tracking. See #2926
- [FEATURE] Feature flags: Add
CountDownLatchtoFlagsRepository. See #2947 - [FEATURE] Feature flags: Add telemetry for critical paths. See #2952
- [FEATURE] Feature flags: Generic resolve method. See #2923
- [FEATURE] Feature flags: Generate
ExposureEventfrom schema. See #2957 - [FEATURE] Feature flags: Remove redundant
featureflagssubpackage. See #2966 - [FEATURE] Feature flags: Support for
PROVIDER_NOT_READYstate. See #2967 - [FEATURE] Feature flags: Graceful mode and error logging policies. See #2963
- [FEATURE] Feature flags: Update documentation. See #2955
- [FEATURE] Feature flags: Allow blank targeting keys. See #2981
- [BUGFIX] Fix GraphQL operation type header. See #2956
- [BUGFIX] Fix synthetic ids logging in
RumViewScope. See #2958 - [BUGFIX] Fix
RumWindowCallbacksRegistryfor multiple SDK instances. See #3003 - [BUGFIX] Fix vital events duplication in Feature Operations. See #2977
- [IMPROVEMENT] Support sending anonymous user ids in logs. See #2945
- [IMPROVEMENT] Feature flags: Fix and improve tests, context management. See #2896
- [IMPROVEMENT] Refactor
FlagsProviderandFlagsClientinto one. See #2899 - [IMPROVEMENT] Support long task reporting for multiple SDK instances. See #2934
- [IMPROVEMENT]
MIGRATION.MDupdate for missing SDK v3 changes. See #2936 - [IMPROVEMENT] Update RUM Schema to include app launch vitals. See #2937
- [IMPROVEMENT] Trace: Handle OTEL reserved attributes when using
AttributeKeys. See #2946 - [IMPROVEMENT] Use stub
ExecutorforWorkerParametersforgery factory. See #2949 - [IMPROVEMENT] Do not create a new session for TTID. See #2954
- [IMPROVEMENT] Add support of
oneOf(primitive|object)in the json parser generator. See #2972 - [IMPROVEMENT] Pass synthetic ids to RUM earlier in benchmark app. See #2959
- [IMPROVEMENT] Update RUM schema. See #2976
- [IMPROVEMENT] Updating
MIGRATION.MDwith the default sampling rate. See #2995 - [IMPROVEMENT] Add internal
disableJankStatsconfig option. See #3000 - [MAINTENANCE] Provide SDK commit SHA1 to the Shopist App. See #2993
- [MAINTENANCE] Fix detekt issues. See #2885
- [MAINTENANCE] Remove unused
isConstantClassvariable. See #2984
- [FEATURE] Support Apollo GraphQL. See #2845
- [FEATURE] Trace: Account ID and User ID propagation support via
baggageheader. See #2911 - [FEATURE] TTID (Time To Initial Display) reporting support. See #2921
- [BUGFIX] Fix tags which were missing in Vital event reported for Feature Operations. See #2928
- [BUGFIX] Fix RUM
sessionIdwhich was missing for automatic HTTP tracing viabaggageheader. See #2904 - [IMPROVEMENT] Move session properties to
ddtagsover query parameters. See #2866 - [IMPROVEMENT] Trace: Support
baggageheader updates. See #2881 - [IMPROVEMENT] Mute some Compose Reflection telemetry errors in Session Replay. See #2901
- [IMPROVEMENT] RUM: Set initialized flag to false when stop
RumFeature. See #2903 - [IMPROVEMENT] RUM: Update doc of
addViewLoadingTime. See #2909 - [IMPROVEMENT] Minor code improvements. See #2913
- [IMPROVEMENT] Session Replay: Extend resource handling to support multiple MIME types. See #2914
- [MAINTENANCE] Add
libs.versions.tomlinGenerateTransitiveDependenciesTaskas input. See #2905 - [MAINTENANCE] Move
TimeProviderintodd-sdk-android-internal. See #2906 - [MAINTENANCE] Bump
dd-trace-javaversion to1.54.0. See #2916 - [MAINTENANCE] Enhancing check last release script. See #2927
- [FEATURE] RUM: Feature Operations public API. See #2814
- [FEATURE] RUM: Feature Operations DTO schema integration. See #2816
- [FEATURE] RUM: Feature Operations user debug logs support. See #2819
- [FEATURE] RUM: Feature Operations usage telemetry support. See #2818
- [FEATURE] RUM: Feature Operations parameters validation support. See #2835
- [FEATURE] RUM: Feature Operations background processing support. See #2887
- [FEATURE] RUM: Feature Operations synthetics attribute support. See #2888
- [IMPROVEMENT] RUM: Feature Operations Fix RumVitalEvent serialization logic. See #2828
- [IMPROVEMENT] Refactor the vitals screen in the sample application. See #2820
- [IMPROVEMENT] Add feature operation block to the
VitalsFragment. See #2821 - [IMPROVEMENT] RUM: Replace
RumVitalEventwithVitalEvent. See #2831 - [IMPROVEMENT] RUM: Fix the feature context in the telemetry. See #2857
- [IMPROVEMENT] Use single source of truth for
osanddeviceproperties definitions forLogsandTraces. See #2859 - [IMPROVEMENT] Safe serialization of
account.extraInfo. See #2862 - [IMPROVEMENT] Update MIGRATION.MD. See #2858
- [IMPROVEMENT] Fix for
VitalEventdate. See #2875 - [IMPROVEMENT] Make
AndroidMDrawableToColorMapperandAndroidQDrawableToColorMapperinternal. See #2873 - [IMPROVEMENT] Trace: Add
@JvmStaticto kotlin objects for cleaner interop with Java language. See #2876 - [IMPROVEMENT] RUM: Check for result of
activity.intent. See #2877 - [IMPROVEMENT] Add documentation to the public API members where missing. See #2880
- [MAINTENANCE] Change the order of executors shutdown in
drainAndShutdownExecutorsto fix flaky integration tests. See #2884 - [MAINTENANCE] Bump
dd-trace-javaversion to1.53.0. See #2860 - [MAINTENANCE] Split detekt custom rules to handle code point limit. See #2863
- [MAINTENANCE] Update Node version. See #2864
- [MAINTENANCE] Fix link to
CONTRIBUTINGdoc from PR template. See #2869 - [MAINTENANCE] Update
CONTRIBUTINGdoc with new modules. See #2870 - [MAINTENANCE] Bump language and API versions to 1.8. See #2865
This is the first official production version of SDK v3 containing the new architecture for tracing feature. See the migration guide for details.
- [FEATURE] RUM: Create view attributes update methods. See #2655
- [IMPROVEMENT] Trace: Using
100%instead of20%for the default network tracing sampling rate. UsingSAMPLEDinstead ofALLas the defaultTraceContextInjectionstrategy. See #2542 - [IMPROVEMENT] Trace: Using session consistent trace sampling. See #2544
- [IMPROVEMENT] Core: Resolve batch file only during the actual write call. See #2619
- [IMPROVEMENT] Remove
forceNewBatchAPI. See #2621 - [IMPROVEMENT] Core: Resolve file orchestrator for write operation from
DatadogContext. See #2624 - [IMPROVEMENT] Introduce event processing thread. See #2631
- [IMPROVEMENT] Core: Push context changes from public API to the context thread. See #2635
- [IMPROVEMENT] Core: Make
getDatadogContextread on the context thread. See #2645 - [IMPROVEMENT] RUM: Update RUM feature context only after event processing completion. See #2650
- [IMPROVEMENT] RUM: Align attribute propagation mechanism. See #2654
- [IMPROVEMENT] Trace: Perform lazy capture of
DatadogContextat the span creation. See #2662 - [IMPROVEMENT] Trace: Remove deprecated
DatadogInterceptorconstructors. See #2665 - [IMPROVEMENT] Read RUM context in Session Replay in non-blocking manner. See #2666
- [IMPROVEMENT] RUM: Propagate
has_replayflag toRumContextobject. See #2668 - [IMPROVEMENT] RUM: Remove deprecated
startResource. See #2671 - [IMPROVEMENT] RUM: Remove deprecated
userInfomethods. See #2672 - [IMPROVEMENT] Custom endpoint URL are taken as is. See #2685
- [IMPROVEMENT] Logs: Don't send fatal errors to Logs, only send them to RUM. See #2675
- [IMPROVEMENT] Process feature context on the context thread. See #2704
- [IMPROVEMENT] Read feature context only when explicitly requested by the caller. See #2716
- [IMPROVEMENT] Avoid polling for
RumContextinVitalReaderRunnable. See #2728 - [IMPROVEMENT] Remove feature name argument from APIs to set/remove feature context update listener. See #2729
- [IMPROVEMENT] Core: Mark
CoreFeatureproperties used to createDatadogContextas volatile. See #2738 - [IMPROVEMENT] Core: Handle the case when
DatadogContextis requested when SDK is getting deinitialized. See #2740 - [IMPROVEMENT] Core: Monitor backpressure of context executor. See #2745
- [IMPROVEMENT] Core: Remove default value for the
addAccountExtraInfocall. See #2759 - [IMPROVEMENT] RUM: Make attributes argument optional in the event-related methods of RUM monitor. See #2760
- [IMPROVEMENT] Trace: Remove OpenTracing dependencies . See #2783
- [IMPROVEMENT] Trace: Update OpenTelemetry version. See #2786
- [IMPROVEMENT] Trace: Isolate implementation layer from integration modules. See #2773
- [IMPROVEMENT] Properties referencing support. See #2793
- [IMPROVEMENT] Use common-schema for common object generation. See #2794
- [IMPROVEMENT] Move session properties to
ddtagsover query parameters. See #2812 - [IMPROVEMENT] Trace:
TracingInterceptormigration from OpenTracing to internal implementation. See #2708 - [IMPROVEMENT] Update Session Replay batch max age to 5h. See #2842
- [IMPROVEMENT] Core: Fix
clearUserInfoAPI by adapting it to the context queue. See #2847 - [MAINTENANCE] Fix flaky
DatadogRumMonitortests. See #2663 - [MAINTENANCE] Minor cleanup. See #2669
- [MAINTENANCE] Update sample to use non-null user id. See #2682
- [MAINTENANCE] Bump Kotlin version used to
2.0.21. See #2766 - [MAINTENANCE] Bump
minSdkversion to 23. See #2844
- [IMPROVEMENT] Extend resource handling to support multiple MIME types in RN. See #2914
- [BUGFIX] RUM: Move session properties to
ddtagsover query parameters. See #2812
- [FEATURE] RUM: Add battery and display attributes. See #2815
- [FEATURE] RUM: Implement
Navigation 3view tracking side effect. See #2830 - [FEATURE] RUM: Make
Navigation 3tracking listen to lifecycle. See #2832 - [IMPROVEMENT] Session Replay:
DrawableUtilsperformance improvement. See #2808 - [IMPROVEMENT] RUM: Make accessibility send only mutations. See #2806
- [IMPROVEMENT] RUM: Create
Navigation 3demo screen in sample app. See #2825 - [IMPROVEMENT] Move
OkHttpclient initialization to background thread. See #2829 - [MAINTENANCE] Add Github action to close stale issues. See #2826
- [MAINTENANCE] Add a schedule for the stale issues Github action. See #2827
- [MAINTENANCE] Remove outdated experimental annotations. See #2833
- [MAINTENANCE] Remove generation of models from internal schemas for RUM. See #2834
- [MAINTENANCE] Some additional accessibility test coverage. See #2823
- [FEATURE] RUM: Collect
Localeattributes. See #2797 - [FEATURE] RUM: Add accessibility attributes. See #2787
- [BUGFIX] Fix
WindowCallbackWrapperNPE. See #2800 - [MAINTENANCE] Fix release checking script. See #2799
- [MAINTENANCE] Next dev iteration. See #2789
- [MAINTENANCE] Merge
release/2.24.0branch intodevelopbranch. See #2792 - [MAINTENANCE] Update RUM schema. See #2795
- [FEATURE] Add Clear User Info API. See #2768
- [BUGFIX] Shallow copy node wireframes before iterating in
NodeFlattener. See #2736 - [BUGFIX] Fix Session Replay NPE when getting
TextViewpadding. See #2784 - [IMPROVEMENT] Stop posting recorded data item from main thread. See #2763
- [IMPROVEMENT] Stop telemetry for Compose
CheckBoxandRadioButton. See #2775 - [IMPROVEMENT] Introduce
_RumInternalProxy.setRumSessionTypeOverride. See #2776 - [IMPROVEMENT] Add
updateExternalRefreshRateto internal RUM API. See #2772 - [MAINTENANCE] Next dev iteration. See #2752
- [MAINTENANCE] Merge
release/2.23.0branch intodevelopbranch. See #2755 - [MAINTENANCE] Remove non-existent Gitlab file reference. See #2753
- [MAINTENANCE] Remove workaround when checking
dd-sdk-android-benchmark-internalis published. See #2758 - [MAINTENANCE] Add
DDOCTOSTS_ID_TOKENtodogfood-appanddogfood-demo. See #2757 - [MAINTENANCE] Update
CONTRIBUTINGdoc with missing modules. See #2762 - [MAINTENANCE] Update base Docker image to
Jammy. See #2761 - [MAINTENANCE] Update docker image used in
ci-imagejob. See #2764 - [MAINTENANCE] Use Datadog Gradle Plugin version 1.18.0. See #2769
- [MAINTENANCE] Migrate publishing from OSSRH to Central Publisher portal. See #2770
- [MAINTENANCE] Close Sonatype staging repo after publishing. See #2774
- [MAINTENANCE] Run unit tests from samples folder and for
tools:benchmarkmodule. See #2777 - [MAINTENANCE] Update
gradle-dependency-licenseplugin to version 0.4.0. See #2788
- [FEATURE] Global: Add public APIs for set account information. See #2694
- [FEATURE] Global: Add
AccountInfodata class and provider. See #2696 - [FEATURE] Global: Add
AccountInfointoCoreFeatureandDatadogContext. See #2702 - [FEATURE] RUM: Add account information into RUM events. See #2706
- [FEATURE] Logs: Add Account Information in Logs. See #2710
- [FEATURE] Traces: Add account information in Trace. See #2709
- [FEATURE] Global: Add
AP2datacenter support. See #2734 - [BUGFIX] RUM: Report resource with size 0. See #2688
- [BUGFIX] Session Replay: Fix
NullPointerExceptioninisOnSecondaryDisplaymethod. See #2701 - [BUGFIX] Session Replay: Defer drawable copy to work thread in Session Replay. See #2723
- [BUGFIX] RUM: Create a new
RumViewScopewhen the session is renewed. See #2699 - [BUGFIX] RUM: Fix effective sample rate calculation for
SessionEndedMetricDispatcher. See #2744 - [IMPROVEMENT] RUM: Allow 24h batch backlog for RUM. See #2690
- [IMPROVEMENT] RumAuto scenario for Android Benchmark app. See #2689
- [IMPROVEMENT] Fix Proguard rules for Method Called Metrics. See #2691
- [IMPROVEMENT] RUM: Enhancement of Compose Actions tracking reflection. See #2692
- [IMPROVEMENT] Add Account Info fragment for sample app. See #2703
- [IMPROVEMENT] Add Android TV sample app. See #2697
- [IMPROVEMENT] Session Replay: Remove
ContentPainterElementClass Reflection from Telemetry. See #2714 - [IMPROVEMENT] Global: Update
setUserInfoandsetAccountInfodocumentation. See #2715 - [IMPROVEMENT] Session Replay: Avoid copying hardware bitmap in Session Replay. See #2732
- [IMPROVEMENT] Add integration tests of set account information in
reliabilitymodule. See #2725 - [IMPROVEMENT] Fix Jetpack Compose Auto instrumentation telemetry in benchmark app. See #2737
- [MAINTENANCE] Next dev iteration 2.23.0. See #2678
- [MAINTENANCE] Add BackPressured Dump information into Telemetry log. See #2673
- [MAINTENANCE] Change Benchmark artifact Id to
dd-sdk-android-benchmark. See #2686 - [MAINTENANCE] Add Method Called Metric on Rum event handling. See #2687
- [MAINTENANCE] Bump Datadog Gradle Plugin to 1.17.0. See #2693
- [MAINTENANCE] Generate checksum xml. See #2695
- [MAINTENANCE] Generate
verification-metadatawith pgp information. See #2698 - [MAINTENANCE] Move
LocalAttributeclass and related extension methods to theinternalmodule. See #2705 - [MAINTENANCE] Move public top-level extension functions and properties from
coremodule tointernalmodule. See #2707 - [MAINTENANCE] Remove
Project.execusage. See #2674 - [MAINTENANCE] Improve speed of running
core-itsuite. See #2711 - [MAINTENANCE] Fix
GsonExtflaky test. See #2719 - [MAINTENANCE] Add Android Automotive sample. See #2724
- [MAINTENANCE] GitHub app migration for PAT. See #2726
- [MAINTENANCE] Fix
RumSessionScopeflaky test. See #2730 - [MAINTENANCE] Introduce check release pipeline. See #2731
- [MAINTENANCE] Remove unnecessary comment. See #2735
- [MAINTENANCE] Add
dd-octo-ststo Dockerfile. See #2739 - [MAINTENANCE] Add
dd-octo-stspolicy for read access. See #2741 - [MAINTENANCE] Fix
dd-octo-stspattern. See #2743 - [MAINTENANCE] Use
dd-octo-ststo check release. See #2742 - [MAINTENANCE] Use
dd-octo-ststo create PRs indd-sdk-android-gradle-plugin. See #2746 - [MAINTENANCE] Use
dd-octo-ststo create PRs in Shopist and Mobile app. See #2750 - [DOCS] Update Publish Changelog to Confluence: Fix issue with already present page. See #2683
- [DOCS] Update
changelog-to-confluence: Update secret names. See #2727
- [FEATURE] Session Replay: Support Coil3 for Session Replay image recording. See #2648
- [FEATURE] RUM: Add Compose custom attributes for actions tracking. See #2661
- [BUGFIX] RUM: Fix background session start reason. See #2623
- [BUGFIX] Core: Catch exceptions during the Power or Battery broadcast intents processing. See #2642
- [IMPROVEMENT]
LogsCustomscenario for Android benchmark app. See #2625 - [IMPROVEMENT]
LogsHeavyTrafficscenario for Android benchmarks. See #2629 - [IMPROVEMENT]
Tracescenario for Android benchmark app. See #2637 - [IMPROVEMENT] Replace
addFirstusage inPendingTrace. See #2638 - [IMPROVEMENT]
RumManualscenario for Android benchmark app. See #2644 - [IMPROVEMENT] Align Datadog initialization with iOS for benchmark app. See #2647
- [IMPROVEMENT] Fix Datadog core creation in baseline benchmark run. See #2649
- [IMPROVEMENT] RUM: Add Jetpack Compose specific log in gesture listener if target not found. See #2651
- [IMPROVEMENT] Add sample screen for Compose image content scale. See #2659
- [IMPROVEMENT] Remove
addFirst,removeFirst,removeLastusages. See #2664 - [IMPROVEMENT] RUM: Use reflection to retrieve semantics information in modifier. See #2667
- [MAINTENANCE] Next dev iteration. See #2630
- [MAINTENANCE] Merge
release/2.21.0into develop. See #2632 - [MAINTENANCE] Update
unMockplugin version, removeme.xdrop:fuzzywuzzydependency, remove deprecated Gradle APIs. See #2634 - [MAINTENANCE] Speed up some tests in
FeatureScopeTestby reducing unconditional wait time. See #2643 - [MAINTENANCE] Fix logging format for error messages in
PlainBatchFileReaderWriter. See #2652 - [MAINTENANCE] Remove telemetry target from error logging in
PlainBatchFileReaderWriter. See #2653 - [MAINTENANCE] Better project-type dependency resolution for Detekt custom rules execution. See #2670
- [FEATURE] Add Compose instrumentation API for view tracking and image recording. See #2570
- [FEATURE] Add
ActionTrackingStrategyinterface to decouple find view logic. See #2573 - [FEATURE] Add Compose actions tracking strategy API in
RumConfiguration. See #2575 - [FEATURE] Implement Compose actions tracking strategy. See #2586
- [FEATURE] Change
TrackViewsandRecordImagesannotations toComposeInstrumentation. See #2595 - [BUGFIX] Fix Rum Action Tap is added twice for every
ACTION_UP. See #2579 - [BUGFIX] Cover
IndexOutOfBoundsExceptioninDrawableUtils. See #2604 - [BUGFIX] Let
AndroidTracer.logErrorMessage()send an ERROR log. See #2605 - [BUGFIX] Fix artifacts in Jetpack Compose scrolling. See #2610
- [BUGFIX] Fix
ViewTargetis garbage collected during actions tracking. See #2608 - [BUGFIX] Fix the memory leak in the
PendingTrace#cleaner. See #2607 - [BUGFIX] Fix Session Replay is not resumed after the session has expired before. See #2611
- [BUGFIX] Catch NPE when drawing cloned drawable in Session Replay. See #2622
- [BUGFIX] Revert: Remove shared
ThreadLocalscopes. See #2603 - [IMPROVEMENT] Remove test fixtures content root duplication in
dd-sdk-android-session-replay-composemodule. See #2592 - [IMPROVEMENT] Minor improvements. See #2609
- [IMPROVEMENT] Propagate session ID in baggage header. See #2602
- [MAINTENANCE] Add workflow: Changelog update to Confluence. See #2596
- [MAINTENANCE] Add telemetry for Compose instrumentation functions. See #2601
- [MAINTENANCE] Add Android Auto and Android XR support to the sample app. See #2606
- [MAINTENANCE] Add metrics for internal benchmarking. See #2581
- [MAINTENANCE] Sample telemetry for
RecordedDataQueueHandler. See #2600 - [MAINTENANCE] Remove the noisy warning log as for some views it is normal to not have ITV. See #2617
- [MAINTENANCE] Fix semantics of
ExecutorService.submitvsExecutor.executeusage. See #2616 - [MAINTENANCE] Integrate Datadog Plugin in benchmark application. See #2618
- [MAINTENANCE] Merge
feature/compose-instrumentation-apiintofeature/actions-tracking. See #2583 - [MAINTENANCE] Merge 2.20.0 into
develop. See #2588 - [MAINTENANCE] Merge
Feature/actions-trackingintodevelop. See #2598 - [MAINTENANCE] Bump version to 2.21.0-SNAPSHOT. See #2585
- [MAINTENANCE] Bump
targetSdkto 36. See #2589
- [FEATURE] Slow frames collection support. See #2518
- [FEATURE] Introduce
UISlownessMetricDispatcher. See #2567 - [BUGFIX] Remove double computation of the
RUMpayload. See #2528 - [BUGFIX] Add try-catch in
drawOnCanvasin order to catch exceptions fromdraw(canvas)method. See #2549 - [BUGFIX] Fix issue with missing freeze rate and slow frames rate. See #2557
- [BUGFIX] Ignore secondary displays in
Session Replay. See #2574 - [IMPROVEMENT] Set the
local-ciscript to check for specific version of KtLint. See #2526 - [IMPROVEMENT] Add missing builder function for anonymous user tracking. See #2540
- [IMPROVEMENT] Add telemetry for pending batch files. See #2548
- [IMPROVEMENT] Remove the possibility to read the
Tracerconfig fromenvand from the config file. See #2564 - [IMPROVEMENT] Add
traceSampleRateto the telemetryConfigurationevents. See #2563 - [IMPROVEMENT] Report configured distributed tracing headers as part of
Configurationtelemetry. See #2572 - [IMPROVEMENT] Optimize features context reads in
TelemetryEventHandler. See #2576 - [IMPROVEMENT] Optimize
OkHttpconfiguration telemetry. See #2578 - [IMPROVEMENT] Make SDK support 16Kb page sizes. See #2580
- [MAINTENANCE] Update AndroidX
Metricslibrary to 1.0.0-beta02. See #2546 - [MAINTENANCE] Remove
RUMfeature check inAndroidTracerbuilder. #2539 - [MAINTENANCE] Change
TraceWriter#writetype fromMutableListtoList. See #2568 - [MAINTENANCE] Fix flaky
TraceWriterTestM log error and proceed W write() { serialization failed }. See #2565 - [MAINTENANCE] Fix flaky tests in
OtelTraceWriter. See #2571 - [MAINTENANCE] Change
OtelTraceWriter#write typefromMutableListtoList. See #2577 - [MAINTENANCE] Fix negative values in slow frames, adjusting telemetry. See #2582
- [BUGFIX] Fix NPE with Metrics listener on older APIs. See#2558
- [BUGFIX] Fix NPE when
Drawable.getCurrentreturns null. See#2545
- [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 - [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
- [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] Merge release/2.17.0 into develop. See #2473
- [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
- [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
- [IMPROVEMENT] Refactoring for React Native Session Replay support. See #2448
- [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
- [MAINTENANCE] Fix
resolveResourceIdnot correctly calling job finished when drawable cloning failed #2367
- [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
- [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
- [BUGFIX] Stop upload worker on upload failure. See #2242
- [FEATURE] Create Benchmark module to collect performance metrics. See #2141
- [BUGFIX] Use NO_EXPORT_FLAG for BroadcastReceiver on API above 26. See #2170
- [BUGFIX] Fix integration tests pipeline for API 21. See #2197
- [IMPROVEMENT] Added setSyntheticsAttribute in RumInternalProxy. See #2133
- [IMPROVEMENT] Use macos runner. See #2154
- [IMPROVEMENT] Remove obsolete nightly test references. See #2157
- [IMPROVEMENT] Add the integration tests for the SdkCore APIs. See #2145
- [IMPROVEMENT] Update link to troubleshooting documentation. See #2164 (Thanks @mateo-villa)
- [IMPROVEMENT] Reset developerMode status when Datadog stop. See #2174
- [IMPROVEMENT] Extract logic to pull publishing credentials into a dedicated snippet. See #2176
- [IMPROVEMENT] Remove redundant build configuration in new reliability modules. See #2178
- [IMPROVEMENT] Remove image property from macOS-based jobs. See #2181
- [IMPROVEMENT] Update OkHttp to 4.12.0. See #1975
- [IMPROVEMENT] Speed up
IdGenerationStrategytest. See #2187 - [IMPROVEMENT] Add integration tests for internal sdk core. See #2177
- [IMPROVEMENT] Update Gradle to 8.9 and AGP to 8.5.2. See #2192
- [IMPROVEMENT] Speed up generated files/licenses checks. See #2188
- [IMPROVEMENT] Log Timber tag. See #2202
- [IMPROVEMENT] Make sure user properties are immutable when setUserInfo. See #2203
- [IMPROVEMENT] Add the integration tests for FeatureScope public API. See #2209
- [IMPROVEMENT] Include optional exception in Upload Status. See #2221
- [IMPROVEMENT] Create UploadSchedulerStrategy interface and default implementation. See #2222
- [IMPROVEMENT] Add configuration to set uploadSchedulerStrategy. See #2224
- [IMPROVEMENT] Update
kotlinx.astdependency. See #2231
- [BUGFIX] RUM: Make no-op RUM monitor implementation returned by default to be
NoOpAdvancedRumMonitor. See #2185
- [FEATURE] Trace: Add the
SessionEndedMetricinto sdk core. See #2090 - [FEATURE] SessionReplay: Use the datastore for Session Replay resources. See #2041
- [FEATURE] Trace: Provide 128 bits support for the trace ids in the Tracing sdk. See #2089
- [FEATURE] SessionReplay: Add api to clear all datastore data. See #2096
- [FEATURE] SessionReplay: Add
CompoundButtonmapper. See #2120 - [FEATURE] SessionReplay: Add API to configure the Image Privacy. See #2125
- [FEATURE] Trace: Introduce the
TraceContextInjectionto handle sampling in distributed traces. See #2111 - [IMPROVEMENT] Trace: Improve unit tests in Session metrics. See #2095
- [IMPROVEMENT] SessionReplay: Fix flaky test in
SeekBarWireframeMapperTest. See #2099 - [IMPROVEMENT] Trace: Fix the Okhttp Otel parent span feature when not using RUM. See #2100
- [IMPROVEMENT] SessionReplay: Fix units for dropped nodes. See #2107
- [IMPROVEMENT] SessionReplay: Add TLVFormat DataStore persistence. See #2038
- [IMPROVEMENT] InternalMetrics: Add sampling rate to internal metrics. See #2108
- [IMPROVEMENT] SessionReplay: Fix
RumSessionEndedmetric flaky test. See #2114 - [IMPROVEMENT] SessionReplay: Use
BackpressureExecutorfor SessionReplay event processing. See #2116 - [IMPROVEMENT] SessionReplay: Improve CheckableTextViewMapper. See #2115
- [IMPROVEMENT] SessionReplay:
SwitchCompatmapper improvement. See #2117 - [IMPROVEMENT] RUM: Fix the racing condition in the
RotatingDnsResolverlogic. See #2127 - [IMPROVEMENT] RUM: Add request id in okhttp request. See #2126
- [IMPROVEMENT] Trace: Make sure network local spans have
kind:clienttag. See #2136 - [IMPROVEMENT] Core: Increase retry delay on DNS error. See #2135
- [FEATURE] Trace: Bundle
dd-trace-corecode into thedd-sdk-android-tracemodule. See #1907 - [FEATURE] Trace: Provide the correct sampling priority for our Span events based on APM new rules. See #1913
- [FEATURE] Trace: Add the
CoreTracertests. See #1924 - [FEATURE] Trace: Provide core tracer logger implementation. See #1953
- [FEATURE] Trace: Provide the
bundleWithRumcapability forOtelTracer. See #1960 - [FEATURE] Trace: Provide the
DatadogContextStoragefor OpenTelemetry. See #1970 - [FEATURE] Trace: Provide Otel bundle with logs feature. See #1979
- [FEATURE] Trace: Setup the trace end tests environment for Otel API. See #1983
- [FEATURE] Trace: Add the
SpanLinksupport for Otel API implementation. See #1993 - [FEATURE] Trace: Add the Otel API feature integration tests. See #1995
- [FEATURE] Trace: Report OpenTelemetry data in the configuration telemetry. See #2006
- [FEATURE] Trace: Extract OpenTelemetry support SDK into a dedicated module. See #2021
- [FEATURE] Trace: Setup the CI and Gradle tests for the new
dd-sdk-android-trace-otelmodule. See #2035 - [FEATURE] Trace: Enable desugaring for sample and single-fit apps. See #2036
- [FEATURE] Session Replay: Add support for progress bars. See #2047
- [FEATURE] Trace: Add OpenTelemetry use case into the Wear sample app. See #2068
- [FEATURE] Trace: Add OpenTelemetry use case into the
vendor-libsample. See #2069 - [FEATURE] Trace: Add the OkHttp Otel extensions module. See #2073
- [FEATURE] Trace:
OtelTraceProvider.Builder: introduce the trace rate limit property. See #2086 - WARNING: Existing
com.datadog.tracepackage renamed tocom.datadog.legacy.trace.com.datadog.tracepackage will contain new members, so update your imports accordingly. - [BUGFIX] Session Replay: Fix time drift in
RecordedDataQueueHandler. See #2075 - [IMPROVEMENT] Trace: Remove some unused IAST/CI Visibility classes. See #2000
- [IMPROVEMENT] Trace: Remove
moshidependency from trace module. See #2003 - [IMPROVEMENT] Fix some detekt issues. See #2043
- [IMPROVEMENT] Session Replay: Delegate
Drawablecopy to background thread. See #2048 - [IMPROVEMENT] Trace: Make
CoreTracercode Java 7 compatible. See #2051 - [IMPROVEMENT] Session Replay: Improve telemetry from
RecordedDataQueueHandler. See #2053 - [IMPROVEMENT] Global: Fix thread safety warnings. See #2056
- [IMPROVEMENT] Trace: Remove the
dd-sketchesdependency and related logic. See #2062 - [IMPROVEMENT] Trace: Fix the
jctoolsProguard rules. See #2063 - [IMPROVEMENT] Add ProGuard rules to sample app. See #2067
- [IMPROVEMENT] Session Replay: Improve
ButtonMapper. See #2070 - [IMPROVEMENT] Trace: Remove some unused code from tracing module. See #2079
- [IMPROVEMENT] Trace: Add OpenTelemetry Proguard rules for compile-only annotations. See #2080
- [IMPROVEMENT] Trace: Fix the
CoreTracerflaky tests. See #2081 - [IMPROVEMENT] Trace: Remove System and Environment config source in the
CoreTracer. See #2084 - [IMPROVEMENT] Remove duplicated Proguard configuration in the sample app. See #2088
- [IMPROVEMENT] Session Replay: Granular telemetry sampling for mappers. See #2087
- [MAINTENANCE] Merge develop branch. See #1948
- [MAINTENANCE] Merge
developbranch intofeature/otel-supportbranch. See #1998 - [MAINTENANCE] Next dev iteration 2.11.0. See #2050
- [MAINTENANCE] Merge
release/2.10.0branch intodevelopbranch. See #2054 - [MAINTENANCE] Merge
developbranch intofeature/otel-supportbranch. See #2058 - [MAINTENANCE] Merge release
2.10.1intodevelopbranch. See #2065 - [MAINTENANCE] Merge develop branch. See #2076
- [MAINTENANCE] Merge Otel feature branch. See #2077
- [IMPROVEMENT] Reduce Method Call Sample Rate. See #2060
- [IMPROVEMENT] Limit total telemetry events sent per session. See #2061
- [FEATURE] Global: Add Method Call Telemetry. See #1940
- [FEATURE] Session Replay: Add support to the
Toolbarin Session Replay. See #2024 - [IMPROVEMENT] Session Replay: Improve masking arch. See #2011
- [IMPROVEMENT] Session Replay: Simplify generic type in mappers. See #2015
- [IMPROVEMENT] Global: Support additional properties in Telemetry Error events. See #2025
- [IMPROVEMENT] Session Replay: Add telemetry on SR resources track. See #2027
- [IMPROVEMENT] Session Replay: Add telemetry to detect uncovered View/Drawable in Session Replay. See #2028
- [IMPROVEMENT] Session Replay: Improve
SeekBarMapper. See #2037 - [IMPROVEMENT] RUM: Flag critical events in custom persistence. See #2044
- [IMPROVEMENT] Delegate Drawable copy to background thread. See #2048
- [MAINTENANCE] Next dev iteration. See #2020
- [MAINTENANCE] Merge release
2.9.0intodevelopbranch. See #2023 - [MAINTENANCE] Session Replay: Improve UT for SR Obfuscators. See #2031
- [MAINTENANCE] Create package name consistency rule. See #2032
- [MAINTENANCE] Session Replay: Improve the
TextViewMapperunit tests. See #2034 - [MAINTENANCE] Fix KtLint version in
local_ciscript. See #2039 - [MAINTENANCE] Session Replay: Fix SR flaky test. See #2042
- [MAINTENANCE] Global: Update the Method Call metric usage. See #2040
- [MAINTENANCE] Update static analysis pipeline version. See #2045
- [MAINTENANCE] Fix flaky test regarding
PerformanceMeasuresampling rate. See #2046
- [BUGFIX] RUM: Prevent crash in
JankStatslistener. See #1981 - [BUGFIX] RUM: Unregister vital listeners when view is stopped. See #2009
- [BUGFIX] Core: Fix
ConcurrentModificationExceptionduring features iteration. See #2012 - [IMPROVEMENT] RUM: Optimise
BatchFileOrchestatorperformance. See #1968 - [IMPROVEMENT] Use custom naming for threads created inside SDK. See #1987
- [IMPROVEMENT] Synchronize SR info with webviews. See #1990
- [IMPROVEMENT] Core: Start sending batches immediately after feature is initialized. See #1991
- [IMRPOVEMENT] Create RUM Feature Integration Tests. See #2004
- [IMRROVEMENT] Make constructors of
DatadogSiteprivate. See #2010 - [IMRROVEMENT] Log warning about tag modification only once. See #2017
- [IMRROVEMENT] Add status code in user-facing message in case of
UnknownErrorduring batch upload. See #2018 - [MAINTENANCE] Next dev iteration. See #1972
- [MAINTENANCE] Remove non-ASCII characters from test names. See #1973
- [MAINTENANCE] Update Kotlin to 1.8.22, Gradle to 8.2.1, update related tooling. See #1974
- [MAINTENANCE] Merge
release/2.8.0branch intodevelopbranch. See #1977 - [MAINTENANCE] Switch to the Golden Base Image for Docker. See #1982
- [MAINTENANCE] Remove unused Maven Model dependency. See #1989
- [MAINTENANCE] Update testing ci steps to limit OOM and memory usage. See #1986
- [MAINTENANCE] Upload sample app to rum playground. See #1994
- [MAINTENANCE] Update copyright. See #1992
- [MAINTENANCE] Don't mark internal extension functions for 3rd party types as 3rd party. See #1996
- [MAINTENANCE] Use credentials for the right org. See #1997
- [MAINTENANCE] Update Detekt API version used to 1.23.0. See #1988
- [MAINTENANCE] Remove the usage of deprecated
TestConfigconstructor. See #1999 - [MAINTENANCE] Fix flakyness in SR unit tests. See #2001
- [MAINTENANCE] Remove legacy nightly tests. See #2005
- [MAINTENANCE] Redirect slack notif to mobile-sdk-ops channel. See #2007
- [FEATURE] Add
buildIdto the RUM error and Log events. See #1756 - [FEATURE] WebView Session Replay: Implement WebView bridge getCapabilities. See #1871
- [FEATURE] RUM: Call RUM error mapper even for crashes. See #1945
- [FEATURE] RUM: Report time since the application start for crashes in RUM. See #1961
- [BUGFIX] RUM: Fix application startup time regression. See #1935
- [BUGFIX] Session Replay: Prevent crashing the host app in the
ViewOnDrawInterceptor. See #1951 - [BUGFIX] Session Replay: Prevent crash in Canvas Wrapper. See #1954
- [BUGFIX] RUM: Safe getting of Intent extras. See #1950
- [BUGFIX] RUM: Don't traverse non-visible ViewGroups for searching user interaction targets. See #1969
- [IMPROVEMENT] WebView Session Replay: Introduce the
FeatureContextUpdateListenerAPI. See #1829 - [IMPROVEMENT] WebView Session Replay: Provide the parent container information for browser rum events. See #1831
- [IMPROVEMENT] WebView Session Replay: Detect full snapshot from WebView session replay. See #1908
- [IMPROVEMENT] Session Replay: Refactor and split classes. See #1873
- [IMPROVEMENT] WebView Session Replay: Keep WebView wireframe hidden. See #1949
- [IMPROVEMENT] Remove Runtime shutdown hook when SDK instance is stopped. See #1956
- [IMPROVEMENT] Fix message when writer is NoOp. See #1963
- [IMPROVEMENT] Global: Make sure
error.threadsalways have content fromerror.stack. See #1964 - [MAINTENANCE] Merge develop branch. See #1849
- [MAINTENANCE] Merge develop. See #1915
- [MAINTENANCE] Merge develop into Session Replay WebView feature branch. See #1917
- [MAINTENANCE] Merge develop into
feature/sr-webview. See #1922 - [MAINTENANCE] Next dev iteration. See #1928
- [MAINTENANCE] Merge release 2.7.0 into
developbranch. See #1930 - [MAINTENANCE] Address some flaky tests. See #1934
- [MAINTENANCE] Add a test for the safe events serialization produced by
RumViewScopein multi-threaded environment. See #1933 - [MAINTENANCE] Fix mime type for nightly tests. See #1936
- [MAINTENANCE] Disable some Session Replay integration tests temporarily due to flakiness. See #1941
- [MAINTENANCE] Merge 2.7.1 on develop. See #1947
- [MAINTENANCE] Improve TODO detekt rule. See #1955
- [MAINTENANCE] Disable flaky Session Replay test. See #1957
- [MAINTENANCE] Merge develop. See #1958
- [MAINTENANCE] Merge
feature/sr-web-view-support. See #1959 - [MAINTENANCE] Fix flaky
TodoWithoutTasktests. See #1962 - [MAINTENANCE] Fix flaky
DatadogCoretest. See #1965 - [MAINTENANCE] Update actions for running CodeQL workflow. See #1966
- [MAINTENANCE] Fix flaky tests. See #1967
- [BUGFIX] RUM: Improve adding Feature Flag evaluation(s) performance. See #1932
- [MAINTENANCE] Core: add a BackPressure strategy to limit the load on background threads and get notified when capacity is reached. See #1938 and #1939
- [FEATURE] Session Replay: Add a request builder for resources. See #1827
- [FEATURE] Session Replay: Add Resources feature. See #1840
- [FEATURE] Session Replay: Implement resource capture during traversal. See #1854
- [FEATURE] Add
source_typewhen sent from cross platform logs. See #1895 - [FEATURE] Session Replay: Enable Resource Endpoint by default. See #1858
- [FEATURE] Logs: Add support for global attributes on logs. See #1900
- [FEATURE] RUM: Allow setting custom error fingerprint. See #1911
- [FEATURE] RUM: Report all threads for non-fatal ANRs. See #1912
- [FEATURE] RUM: Report fatal ANRs. See #1909
- [BUGFIX] Session Replay: Avoid crash when
applicationContextisnull. See #1864 - [BUGFIX] Session Replay: Fix image resizing issue. See #1897
- [BUGFIX] Fix typo in source type. See #1904
- [BUGFIX] RUM: Prevent
ConcurrentModificationExceptionwhen reading feature flags. See #1925 - [IMPROVEMENT] RUM: Disable non-fatal ANR reporting by default. See #1914
- [IMPROVEMENT] RUM: Introduce
error.categoryattribute for exceptions, categorize ANRs separately. See #1918 - [MAINTENANCE] Next dev iteration. See #1861
- [MAINTENANCE] Merge
release/2.6.0indevelop. See #1862 - [MAINTENANCE] Merge
release/2.6.1changes intodevelopbranch. See #1868 - [MAINTENANCE] Update telemetry schema. See #1874
- [MAINTENANCE] Merge Hotfix 2.6.2. See #1890
- [MAINTENANCE] Add signed commits requirement to
CONTRIBUTING.md. See #1905 - [MAINTENANCE] Session Replay: Cleanup SR code. See #1910
- [MAINTENANCE] Session Replay: Fix integration tests post Session Replay refactoring. See #1916
- [MAINTENANCE] Session Replay: Fix
SrImageButtonsMaskUserInputTest. See #1920 - [MAINTENANCE] Adjust
ktlintformatting rules. See #1919 - [MAINTENANCE] Fix formatting. See #1921
- [BUGFIX] RUM: Fix crash in frame rate vital detection. See #1872
- [BUGFIX] RUM: Fix missing source in telemetry json schema. See #1865
- [MAINTENANCE] RUM: Remove stale json schema file. See #1866
- [FEATURE] RUM\Logs: Report all threads in case of crash. See #1848
- [BUGFIX] RUM: Make a copy of attributes before passing them to RUM event. See #1830
- [BUGFIX] Session Replay: Add traversal flag to snapshot items. See #1837
- [BUGFIX] Drop batch telemetry where duration or age have negative values. See #1850
- [BUGFIX] RUM: Do not update RUM View global properties after the view is stopped. See #1851
- [IMPROVEMENT] RUM: Improve vital support for higher refresh rate devices. See #1806
- [IMPROVEMENT] RUM: Add more HTTP methods to RUM. See #1826
- [IMPROVEMENT] RUM: Start session when RUM is initialized. See #1832
- [IMPROVEMENT] RUM: Add new error source types to RUM schema. See #1855
- [IMPROVEMENT] RUM: Set
source_typeon native crashes tondk. See #1856 - [MAINTENANCE] Next dev iteration 2.6.0. See #1823
- [MAINTENANCE] Merge
release/2.5.0branch intodevelopbranch. See #1825 - [MAINTENANCE] Update RUM Schema. See #1828
- [MAINTENANCE] Merge 2.5.1 into develop. See #1842
- [MAINTENANCE] Introduce github issue forms. See #1852
- [BUGFIX] RUM: Prevent crash due to concurrent modification of custom attributes. See #1838
- [FEATURE] Add accessor for current session id. See #1810
- [BUGFIX] Session Replay: Enable recording session if first RUM message happened before init. See #1777
- [BUGFIX] RUM: Fix view url in case of
NavigationViewTrackingStrategyusage. See #1791 - [BUGFIX] Session Replay: Fix
ConcurrentModificationExceptioninBitmapPool. See #1798 - [BUGFIX] RUM: Use internal key for View Scopes. See #1812
- [BUGFIX]
getCurrentSessionIdreturns correct value. See #1817 - [IMPROVEMENT] RUM: Better handling of event write errors in RUM. See #1766
- [IMPROVEMENT] Single Feature Integration Tests: Trace. See #1786
- [IMPROVEMENT] Optimize response body length reporting in OkHttp instrumentation. See #1790
- [IMPROVEMENT] RUM/Synthetics: Make synthetics logs more verbose. See #1813
- [IMPROVEMENT] Prevent false positive warning. See #1815
- [IMPROVEMENT] RUM: Safe serialization of user-provided attributes. See #1818
- [IMPROVEMENT] RUM: Add additional status codes as retryable. See #1819
- [MAINTENANCE] Merge
release/2.4.0intodevelopbranch. See #1784 - [MAINTENANCE] Add delay before executors are flushed and stopped in nightly tests. See #1783
- [MAINTENANCE] Upgrade shared CI pipeline. See #1789
- [MAINTENANCE] Add telemetry point for null file content. See #1792
- [MAINTENANCE] RUM: Migrate Realm from KAPT to KSP. See #1794
- [MAINTENANCE] Fix OOM in CI jobs. See #1796
- [MAINTENANCE] Increase wait time in NightlyTestRule. See #1799
- [MAINTENANCE] Use Datadog Agent 1.26.1. See #1800
- [MAINTENANCE] Move reading
BUILDENV_HOST_IPvariable to the job script definition. See #1801 - [MAINTENANCE] Use automatic Gradle daemon instrumentation with CI Visibility instead of manual test tasks instrumentation. See #1804
- [FEATURE] Global: Create
PersistenceStrategyinterface. See #1745 - [FEATURE] Global: Let customer set custom persistence strategy in configuration. See #1746
- [FEATURE] Global: Implement
AbstractStorage. See #1747 - [FEATURE] Global: Use
AbstractStoragewhen custom persistence strategy provided. See #1748 - [FEATURE] RUM: Print RUM app, session and view ID in LogCat. See #1760
- [BUGFIX] Session Replay: Fix duplicate wireframes issue. See #1761
- [BUGFIX] Global: Fix
ConcurrentModificationExceptionduringConsentAwareStorage.dropAllcall. See #1764 - [BUGFIX] RUM: Convert pending resource to pending error when Resource scope completes with an error. See #1776
- [BUGFIX] RUM: Fix leak caused by repeated calls to
WeakReference.get(). See #1779 - [IMPROVEMENT] Session Replay: Add
resourceIdtoImageWireframe. See #1690 - [IMPROVEMENT]
Loggerintegration tests. See #1735 - [IMPROVEMENT] Add regression test for
Gson#toStringmethod. See #1742 - [IMPROVEMENT] Create Stub Core module. See #1740
- [IMPROVEMENT] Fix flaky test in
WireframeUtils. See #1743 - [IMPROVEMENT] Session Replay: Remove
resourceIdfield from e2e payloads. See #1754 - [IMPROVEMENT] RUM: Add session start reason to events. See #1755
- [IMPROVEMENT] Session Replay: Open text masking classes for extension. See #1757
- [IMPROVEMENT] Tracing: Update RUM attributes in spans. See #1758
- [IMPROVEMENT] Add the synchronous equivalent of
readNextBatchandconfirmBatchReadin Storage API. See #1768 - [IMPROVEMENT] Add all Logs Feature integration tests. See #1769
- [IMPROVEMENT] Remove the v1 data upload components. See #1774
- [IMPROVEMENT] Add text overflow examples in sample app. See #1775
- [IMPROVEMENT] Remove data store/upload config from feature configuration. See #1778
- [MAINTENANCE] Bump dev version to 2.4.0. See #1738
- [MAINTENANCE] Merge
release/2.3.0branch intodevelopbranch. See #1739 - [MAINTENANCE] Update RUM schema. See #1752
- [MAINTENANCE] Remove obsolete integration tests. See #1770
- [MAINTENANCE] Update obsolete nightly logs test. See #1771
- [MAINTENANCE] Add artifacts in Gitlab test jobs. See #1772
- [DOCS] Mention
DatadogTreein README.md. See #1744
- [FEATURE] Global: Support returning event metadata to the readers. See #1670
- [FEATURE] Add mapper interface for traversing all children. See #1684
- [FEATURE] Global: Introduce the
BatchProcessingLevelAPI. See #1686 - [FEATURE] Session Replay: Support
ImageViewviews. See #1677 - [FEATURE] RUM: Create a
SetSyntheticsTestAttributeevent. See #1714 - [FEATURE] Add synthetics information to the RUM Context. See #1715
- [FEATURE] Store the synthetics test info in the RUM Context. See #1716
- [FEATURE] Add synthetics info to RUM Views. See #1717
- [FEATURE] Add synthetics info to RUM Actions. See #1718
- [FEATURE] Add synthetics info to RUM Errors. See #1719
- [FEATURE] Add synthetics info to RUM Resources. See #1720
- [FEATURE] Add synthetics info to RUM Long Tasks. See #1721
- [FEATURE] RUM: Track synthetics info from activity extras. See #1722
- [BUGFIX] Fix the issue of missing cpu/memory info with RUM view events. See #1693
- [BUGFIX] Fix batch processing level reporting in core configuration telemetry. See #1698
- [BUGFIX] Unregister RUM monitor when associated RUM feature is stopped. See #1725
- [BUGFIX] Session Replay: Generate wireframe IDs as 32bit integer. See #1736
- [IMPROVEMENT] Unit test to confirm Session Replay records order is kept when having same timestamps. See #1659
- [IMPROVEMENT] Global: Handle Android Strict Mode. See #1663
- [IMPROVEMENT] Make sure we use try-locks in our NDK signal catcher. See #1665
- [IMPROVEMENT] RUM: Introduce view event filtering in upload pipeline, remove view event throttling in write pipeline. See #1678
- [IMPROVEMENT] Make NDK stack traces more standard. See #1683
- [IMPROVEMENT] Have more consistent results when using the load picture sample screen. See #1692
- [IMPROVEMENT] Add the
batchProcessingLevelvalue to the Configuration Telemetry. See #1691 - [IMPROVEMENT] Tracing: Update default propagation style from
DatadogtoDatadog+TraceContext. See #1696 - [IMPROVEMENT] Tracing: Use
tracestateheader to supply vendor-specific information. See #1694 - [IMPROVEMENT] Global: Lower the upload frequency and batch size enum values. See #1733
- [MAINTENANCE] Prepare release 2.2.0. See #1650
- [MAINTENANCE] Next dev iteration. See #1651
- [MAINTENANCE] Merge release 2.2.0 branch into develop. See #1657
- [MAINTENANCE] Fix Session Replay functional tests payloads after develop rollback. See #1660
- [MAINTENANCE] Create core
testFixturessource set. See #1666 - [MAINTENANCE] Refactor shared android library build script. See #1667
- [MAINTENANCE] Let all modules use the shared fixtures. See #1668
- [MAINTENANCE] Update testing conventions. See #1661
- [MAINTENANCE] Disable warning as errors locally. See #1664
- [MAINTENANCE] Add test pyramid scaffolding. See #1674
- [MAINTENANCE] Share
RawBatchEventforgery for tests between the modules. See #1680 - [MAINTENANCE] Calculate API coverage. See #1681
- [MAINTENANCE] Improve
LogsFragmentin sample app. See #1685 - [MAINTENANCE] Add CI task to update E2E sample app. See #1688
- [MAINTENANCE] Include
rum-mobile-androidas codeowner. See #1695 - [MAINTENANCE] Fix flaky test in
WebViewRumEventConsumerTest. See #1724 - [MAINTENANCE] Fix flaky test in RumEventDeserializer. See #1727
- [MAINTENANCE] Fix flaky test in DatadogContextProvider. See #1726
- [MAINTENANCE] Fix flaky test in
TelemetryEventHandlerTest. See #1729 - [MAINTENANCE] Fix flaky test in
BatchFileOrchestratorTest. See #1732 - [MAINTENANCE] Reduce noise in logs when building the project. See #1731
- [MAINTENANCE] Fix flaky test in
MainLooperLongTaskStrategyTest. See #1730 - [MAINTENANCE] Create
SDKCorestub classes. See #1734
- [FEATURE] Session Replay: Serialize TextViews/Buttons to base64. See #1592
- [FEATURE] WebView Tracking: Add sampler to
WebViewLogEventConsumer. See #1629 - [FEATURE] RUM: Add cross platform GraphQL attributes. See #1631
- [FEATURE] Trace: Add
networkInfoEnabledoption inTraceConfiguration. See #1636 - [FEATURE] Logs: Add
isEnabledto Logs. See #1648 - [BUGFIX] Session Replay: Fix
RippleDrawables. See #1600 - [BUGFIX] Session Replay: Fix Base64 issues with multithreading. See #1613
- [BUGFIX] RUM: Treat scroll on non-scrollable view as tap. See #1622
- [BUGFIX] Trace: Fix
PendingTraceConcurrentModificationException. See #1623 - [BUGFIX] RUM: Propagate session state and view type as Strings. See #1625
- [BUGFIX] Fix the WebView fragment in sample app. See #1627
- [BUGFIX] RUM: Prevent NPE in
GestureListener. See #1634 - [BUGFIX] RUM: Fix duplicate views in
MixedViewTrackingStrategy. See #1639 - [BUGFIX] Telemetry: Fix the batch duration value in
batch_closetelemetry event. See #1633 - [BUGFIX] Global: Make
FeatureFileOrchesratoruse file persistence config created from user/feature settings. See #1643 - [BUGFIX] Telemetry: Fix RegEx in
FeatureFileOrchestratorto resolve file consent type. See #1645 - [IMPROVEMENT] Session Replay: Base64 Caching Mechanism. See #1534
- [IMPROVEMENT] Session Replay: Implement bitmap downscaling. See #1546
- [IMPROVEMENT] Session Replay: Implement pool of reusable bitmaps. See #1554
- [IMPROVEMENT] Session Replay: Refactor caches from singletons to class instances. See #1564
- [IMPROVEMENT] Session Replay: Optimize bitmap processing. See #1576
- [IMPROVEMENT] Session Replay: Add the Session Replay functional tests for sensitive input fields. See #1601
- [IMPROVEMENT] Session Replay: Add the Session Replay functional tests for checkboxes and radiobuttons. See #1609
- [IMPROVEMENT] Add sample showing how to listen to memory events. See #1621)
- [IMPROVEMENT] WebView Tracking: Only send Webview RUM events when Native Session exists and is tracked. See #1626
- [IMPROVEMENT] Session Replay: Fix the async image loading logic inside the Session Replay view mappers. See #1619
- [IMPROVEMENT] RUM: Let exceptions from
Window.Callbackto propagate. See #1632 - [IMPROVEMENT] Session Replay: Add Session Replay functional tests for
ImageButtonsandImageViews. See #1630 - [IMPROVEMENT] Trace: Make network info optional in span schema. See #1635
- [IMPROVEMENT] Trace: Use
networkInfoEnabledto serialize or not network info in spans. See #1637 - [IMPROVEMENT] Telemetry: Add more information into the batch telemetry. See #1641
- [IMPROVEMENT] Session Replay: Implement heuristic image classification. See #1640
- [IMPROVEMENT] Global:
DataUploadWorkeris scheduled every time and on non-roaming network. See #1647 - [IMPROVEMENT] RUM: Use enum for HTTP method parameter of
RumMonitor#startResource API. See #1653 - [MAINTENANCE] Align the Base64 feature branch with develop. See #1594
- [MAINTENANCE] Integrate latest changes from develop into base64 feature. See #1599
- [MAINTENANCE] Base64 feature branch integration. See #1597
- [MAINTENANCE] Session Replay: Implement the Session Replay payloads update
local_citask. See #1598 - [MAINTENANCE] Fix Android Studio 'Rebuild Project'. See #1602
- [MAINTENANCE] Next dev iteration 2.2.0. See #1604
- [MAINTENANCE] Merge release 2.1.0 into develop branch. See #1607
- [MAINTENANCE] Use shared Android Lint check. See #1608
- [MAINTENANCE] Provide session replay data in configuration telemetry. See #1611
- [MAINTENANCE] Fix unit test issues caused by git merge. See #1618
- [MAINTENANCE] Session Replay: Update functional tests due to
ImageViewsupport. See #1646 - [MAINTENANCE] Target Android 14 (API 34). See #1649
- [BUGFIX] Session Replay: Do not resolve
WindowManagerfromApplicationcontext. See #1558 - [BUGFIX] RUM: Report
ApplicationLaunchview even if first RUM event is not interaction. See #1591 - [BUGFIX] RUM: Fix crash when disabling
JankStatstracking. See #1596 - [IMPROVEMENT] RUM: Add sample rate to reported RUM events. See #1566
- [IMPROVEMENT] Session Replay: Remove the query parameters from SR requests. See #1568
- [IMPROVEMENT] Session Replay: Use
internalLoggerin SR modules. See #1574 - [IMPROVEMENT] Add the
additionalPropertiescapability to telemetry debug log event. See #1575 - [IMPROVEMENT] Global: Collect the
batch_deletedtelemetry. See #1577 - [IMPROVEMENT] RUM: Fix view tracking gap. See #1578
- [IMPROVEMENT] Fix tests around
InternalLogger. See #1579 - [IMPROVEMENT] Introduce the new
InternalLogger#metricAPI. See #1581 - [IMPROVEMENT] Global: Collect the
batch_closedtelemetry. See #1586 - [IMPROVEMENT] Add multiple instance sample. See #1587
- [IMPROVEMENT] Global: Provide the
inBackgroundproperty forbatch_deletemetric. See #1588 - [IMPROVEMENT] Global: Unregister process lifecycle monitor in core instance stop. See #1589
- [IMPROVEMENT] Session Replay: Add SR integration tests for
TextViewandEditTextview type. See #1593 - [MAINTENANCE] Mention Datadog SDK explicitly in dogfood script. See #1557
- [MAINTENANCE] Remove redundant
sqliteproduct flavour folder in the sample app. See #1559 - [MAINTENANCE] Next dev cycle 2.1.0. See #1562
- [MAINTENANCE] Remove the bridge dogfooding step, bridge repo is archived. See #1571
- [MAINTENANCE] Update gitlab CI env variables for gitlab 16. See #1595
- [DOCS] Session Replay: Add the
READMEfiles for SR modules. See #1567
This is the first official production version of SDK v2 containing the new architecture for features initialisation and dependencies distribution. See the migration guide for details.
Below you can find the change logs in comparison with out last stable version 1.19.3:
- [FEATURE] RUM: Introduce Mobile Session Replay (in Beta).
- [IMPROVEMENT] RUM: Remove tracking of view loading time and fix unit tests. See #1545
- [IMPROVEMENT] Don't report OkHttp throwables to telemetry. See #1548
- [IMPROVEMENT] Use
implementationdependency for features in integrations modules. See #1552 - [IMPROVEMENT] Remove
dd-sdk-android-ktxmodule. See #1555 - [BUGFIX] RUM: Fix memory leak in
JankStatsusage. See #1553 - [DOCS] Remove redundant docs. See #1540
- [DOCS] Update documentation for SDK v2. See #1549
- [IMPROVEMENT] Global: Provide the
uploadFrequencyper feature. See #1533 - [IMPROVEMENT] RUM: Update documentation of
ViewEventMapper. See #1537 - [IMPROVEMENT] RUM: Support
navHosthosted byFragmentContainerViewforNavigationViewTrackingStrategy. See #1538 - [IMPROVEMENT] Session Replay: Always listen and react to RUM session state. See #1539
- [IMPROVEMENT] Session Replay: Remove explicit dependency on RUM module from Session Replay. See #1541
- [IMPROVEMENT] Update Compose Navigation version to 2.6.0. See #1542
- [IMPROVEMENT] Don't reexport
OkHttpfromGlide. See #1543 - [IMPROVEMENT] Introduce known file cache and cleanup throttling in
BatchFileOrchestratorin order to reduce the number of syscalls. See #1506 - [IMPROVEMENT] Logs: Alter public API of
Loggerto receiveAnydata type. See #1324 - [IMPROVEMENT] RUM: Use
JankStatsfor FPS measuring. See #1405 - [IMPROVEMENT] RUM: Fix
JankStatsusage. See #1512 - [BUGFIX] RUM: Keep old
viewIds for view scope. See #1448
This is a beta release of SDK v2. Compared to SDK v1 it contains breaking changes related to the SDK setup and APIs. See the migration guide for details.
Changes in comparison with 2.0.0-beta2:
- [IMPROVEMENT] RUM: Remove tracking of view loading time and fix unit tests. See #1545
- [IMPROVEMENT] Don't report OkHttp throwables to telemetry. See #1548
- [IMPROVEMENT] Use
implementationdependency for features in integrations modules. See #1552 - [IMPROVEMENT] Remove
dd-sdk-android-ktxmodule. See #1555 - [BUGFIX] RUM: Fix memory leak in
JankStatsusage. See #1553 - [DOCS] Remove redundant docs. See #1540
- [DOCS] Update documentation for SDK v2. See #1549
This is a beta release of SDK v2. Compared to SDK v1 it contains breaking changes related to the SDK setup and APIs. See the migration guide for details.
Changes in comparison with 2.0.0-beta1:
- [IMPROVEMENT] Global: Provide the
uploadFrequencyper feature. See #1533 - [IMPROVEMENT] RUM: Update documentation of
ViewEventMapper. See #1537 - [IMPROVEMENT] RUM: Support
navHosthosted byFragmentContainerViewforNavigationViewTrackingStrategy. See #1538 - [IMPROVEMENT] Session Replay: Always listen and react to RUM session state. See #1539
- [IMPROVEMENT] Session Replay: Remove explicit dependency on RUM module from Session Replay. See #1541
- [IMPROVEMENT] Update Compose Navigation version to 2.6.0. See #1542
- [IMPROVEMENT] Don't reexport
OkHttpfromGlide. See #1543
- [IMPROVEMENT] RUM: Introduce known file cache and cleanup throttling in
BatchFileOrchestratorin order to reduce the number of syscalls. See #1506
This is the first release of SDK v2. It contains breaking changes related to the SDK setup and APIs. See the migration guide for details.
Functional changes in comparison with 1.19.2:
- [IMPROVEMENT] Introduce known file cache and cleanup throttling in
BatchFileOrchestratorin order to reduce the number of syscalls. See #1506 - [IMPROVEMENT] Logs: Alter public API of
Loggerto receiveAnydata type. See #1324 - [IMPROVEMENT] RUM: Use
JankStatsfor FPS measuring. See #1405 - [IMPROVEMENT] RUM: Fix
JankStatsusage. See #1512 - [BUGFIX] RUM: Keep old
viewIds for view scope. See #1448
- [REVERT] RUM: Force new session at SDK initialization. See #1399
- [IMPROVEMENT] RUM: Force new session at SDK initialization. See #1399
- [BUGFIX] RUM: Ignore adding custom timings and feature flags for the stopped view. See #1433
- [FEATURE] RUM: Allow users to stop a RUM session. See #1356
- [FEATURE] APM: Add tracer sampling rate. See #1393
- [IMPROVEMENT] Create a minimal WearOS sample to test compatibility. See #1384
- [BUGFIX] RUM: Fix stopped
RUMViewManagerfrom being able to start new views. See #1381 - [MAINTENANCE] Update RUM Event Schema. See #1383
- [DOCS] Delete referenced docs and update README. See #1376
- [IMPROVEMENT] RUM: Remove extra telemetry sent when detecting refresh rate scale. See #1358
- [FEATURE] RUM: Add
addFeatureFlagEvaluationfunction for RUM. See #1265 - [FEATURE] RUM: Implement webview proxy for cross platform. See #1290
- [IMPROVEMENT] RUM: Add support to
AP1. See #1268 - [IMPROVEMENT] RUM
ApplicationLaunchlogic changes. See #1278 - [IMPROVEMENT] RUM: Add internal telemetry configuration sampling rate. See #1310
- [BUGFIX] RUM: Prevent reporting invalid cpu ticks per seconds. See #1308
- [BUGFIX] RUM: Fix timing of
ApplicationLaunchview andapplication_startevents. See #1305 - [BUGFIX] RUM: Fix telemetry sampling internal configuration for Flutter. See #1326
- [MAINTENANCE] Make tests more accurate with url case sensitivity. See #1263
- [MAINTENANCE] Update E2E tests with valid resource (as to not get 404). See #1266
- [MAINTENANCE] Update RUM Telemetry event schema to latest. See #1319
- [MAINTENANCE] Stabilize integration tests. See #1329
- [MAINTENANCE] Update static analysis dependency. See #1342
- [DOCS] Fix numbering in Android tracing instructions markdown. See #1227
- [DOCS] Updated privacy controls in application setup. See #1281
- [DOCS] Add app variant definition in docs. See #1296
- [DOCS] Add link explaining how to stop collecting geolocation data. See #1327
- [DOCS] Note about how to stop collecting geolocation data. See #1328
- [BUGFIX] Global: Handle devices not reported properly their power source. See #1315
- [BUGFIX] RUM: Detect device's refresh rate with NavigationViewTrackingStrategy. See #1312
- [BUGFIX] RUM: Revert: Detect device's refresh rate from vital monitor. See #1251
- [BUGFIX] RUM: The
RumEventMapperchecksViewEvents by reference. See #1279 - [BUGFIX] Global: Remove
okhttp3.internalpackage usage. See #1288
- [FEATURE] Tracing: Allow the usage of OTel headers in distributed tracing. See #1229
- [IMPROVEMENT] RUM: Remove cross platform duplicates crashes. See #1215
- [IMPROVEMENT] RUM: Prevent reporting ANR when app is in background. See #1239
- [BUGFIX] Use lazy initialization of network-related properties in SampleApplication to be able to pick global first party hosts. See #1218
- [BUGFIX] Detect device's refresh rate from vital monitor. See #1251
- [SDK v2] Remove unused
PayloadFormatandSdkEndpointclasses from SDK v2 APIs. See #1161 - [SDK v2] Make a local copy of tags before creating
LogEvent. See #1171 - [SDK v2] Remove duplication of
UserInfoandNetworkInfoclasses. See #1170 - [SDK v2] Use message bus to report Java crashes to RUM. See #1173
- [SDK v2] Add the
forceNewBatchoption into theFeatureScope. See #1174 - [SDK v2] Use message bus to report NDK crashes to RUM. See #1177
- [SDK v2] Remove site property from
DatadogContext. See #1181 - [SDK v2] Delete obsolete feature-specific uploaders. See #1199
- [SDK v2] Use
InternalLogger. See #1200 - [SDK v2] Remove
Companionobjects with non-public member from Public API. See #1207 - [SDK v2] Send logs for
Spanusing message bus. See #1211 - [SDK v2]
RequestFactorycan throw exceptions. See #1214 - [SESSION REPLAY] Fix NPE in
ScreenRecorderwhen wrapping a nullwindow.callback. See #1164 - [SESSION REPLAY] Handle SR requests through
SessionReplayRequestsFactory. See #1176 - [SESSION REPLAY] Provide SR touch data following the new proposed format. See #1187
- [SESSION REPLAY] Drop the covered wireframes only if top ones have a background. See #1198
- [SESSION REPLAY] Fix flaky
WireframeUtilstest. See #1208 - [SESSION REPLAY] Add dialogs recording support. See #1206
- [SESSION REPLAY]
RequestFactoryallow to throw exceptions. See #1217 - [SESSION REPLAY] Use case insensitive when checking wireframe background color opacity. See #1223
- [SESSION REPLAY] Resolve view snapshot background from theme color. See #1230
- [MAINTENANCE] Merge
developbranch into SDK v2 branch. See #1168 - [MAINTENANCE] Next dev version 1.17.0. See #1190
- [MAINTENANCE] Upgrade detekt pipeline version. See #1192
- [MAINTENANCE] Update
apiSurface. See #1193 - [MAINTENANCE] Fix flaky
rum_rummonitor_add_background_custom_action_with_outcomenightly test. See #1195 - [MAINTENANCE] Merge
release/1.16.0branch into develop branch. See #1194 - [MAINTENANCE] Merge
developbranch into SDK v2 branch. See #1196 - [MAINTENANCE] Fix flaky telemetry test. See #1197
- [MAINTENANCE] Use latest version of shared pipeline. See #1201
- [MAINTENANCE] Enable CodeQL analysis. See #1204
- [MAINTENANCE] Speed up build of sample app for CodeQL scan. See #1221
- [MAINTENANCE] Merge release 1.16.0 branch into develop. See #1228
- [MAINTENANCE] Merge develop into SDK v2 branch. See #1224
- [MAINTENANCE] Gradle 7.6 & AGP 7.4.0. See #1232
- [MAINTENANCE] Merge SDK v2 branch into develop branch. See #1237
- [MAINTENANCE] Use custom detekt rule. See #1233
- [BUGFIX] Global: Use safe context for directBootAware host apps. See #1209
- [BUGFIX] Global: Provide frozen snapshot of features context when requested. See #1213
- [IMPROVEMENT] Tracing: Tracing feature stores context in the common context storage. See #1216
- [IMPROVEMENT] Telemetry: Apply extra sampling rate to the configuration telemetry. See #1222
- [FEATURE] Global: Unlock encryption API for SDK v2. See #935
- [FEATURE] RUM: Add telemetry configuration mapper. See #1142
- [FEATURE] Logs: Add a logger method to log error information from strings. See #1143
- [IMPROVEMENT] Global: Ensure thread safety. See #936
- [IMPROVEMENT] RUM: Use RumFeature#context instead of CoreFeature#contextRef in RumFeature. See #982
- [IMPROVEMENT] Global: Observe uncaught exception in executors. See #1125
- [IMPROVEMENT] RUM: Update default values for RUM events. See #1139
- [IMPROVEMENT] Logs: Add device.architecture to logs. See #1140
- [BUGFIX] Logs: Make a local copy of tags before creating LogEvent. See #1172
- [BUGFIX] RUM: Synchronize access to DatadogRumMonitor#rootScope when processing fatal error. See #1186
- [DOCS] Small Link Nit. See #1028
- [DOCS] Android Data Collected Edits. See #1059
- [DOCS] Fix sample in README. See #1141
- [DOCS] Fix sample code in addAction API. See #1046
- [DOCS] Fix link to setup facets and measures. See #1179
- [DOCS] Fix typo in CONTRIBUTING.md. See #1188
- [SDK v2] Datadog singleton. See #918
- [SDK v2] Make SDK Features simple classes. See #928
- [SDK v2] Use TLV format for data storage. See #931
- [SDK v2] Single Storage. See #932
- [SDK v2] Create Feature configuration interfaces. See #933
- [SDK v2] Write batch metadata. See #943
- [SDK v2] Rework file persistence layer. See #947
- [SDK v2] SDK v2 upload pipeline. See #956
- [SDK v2] Data is written in the SDK specific location. See #975
- [SDK v2] Bring tests back. See #977
- [SDK v2] Provide core SDK context. See #988
- [SDK v2] Improvement to the reading batch logic. See #992
- [SDK v2] Features can store their context in SDK context. See #1036
- [SDK v2] Use SDK v2 components in the upload pipeline. See #1040
- [SDK v2] Switch to the SDK v2 storage component. See #1051
- [SDK v2] Update DatadogCore initialization tests. See #1056
- [SDK v2] Register V1 features as V2. See #1069
- [SDK v2] Create storage and uploader outside of the feature. See #1070
- [SDK v2] Remove DataReader v1 usages. See #1071
- [SDK v2] Use SDK v2 configuration interfaces for features. See #1079
- [SDK v2] Simple message bus for cross-feature communication. See #1087
- [SDK v2] Make Storage#writeCurrentBatch async. See #1094
- [SDK v2] Use event write context for Logs. See #1103
- [SDK v2] Use event write context for Traces. See #1106
- [SDK v2] Use event write context for Session Replay. See #1107
- [SDK v2] Use event write context in RUM. See #1117
- [SDK v2] Remove RumEventSourceProvider. See #1119
- [SDK v2] Use event write context in WebView Logs. See #1121
- [SDK v2] Make implementations of EventBatchWriter return result instead of using listener. See #1097
- [SDK v2] Avoid capturing shared state by Event Write Context. See #1126
- [SDK v2] Move global RUM context into generic feature context storage. See #1146
- [SDK v2] Improve SDK performance a bit. See #1153
- [SDK v2] Create implementation of InternalLogger. See #1155
- [SDK v2] Fix devLogger. See #1156
- [SDK v2] Prepare merge of SDK v2 branch into develop branch. See #1158
- [SDK v2] Fix flaky TLV format reader test. See #1166
- [SDK v2] Improve batch upload wait timeout handling. See #1182
- [SDK v2] Fix possible crash during the telemetry processing. See #1184
- [SESSION REPLAY] Setup dd-sdk-android-session-replay module. See #953
- [SESSION REPLAY] Add Session Replay Public API. See #974
- [SESSION REPLAY] Add Session Replay Public API tests. See #985
- [SESSION REPLAY] Generate Session Replay modes based on the JSON schemas. See #986
- [SESSION REPLAY] Add Session Replay lifecycle callbacks. See #993
- [SESSION REPLAY] Adapt PokoGenerator and Session Replay models generator to new schemas. See #1002
- [SESSION REPLAY] Add session replay recorder basic logic. See #1007
- [SESSION REPLAY] Intercept window touch events as Session Replay TouchData. See #1009
- [SESSION REPLAY] Processor - process FullSnapshotRecords and dispatch to persister. See #1013
- [SESSION REPLAY] Process Session Replay touch and orientation change events. See #1014
- [SESSION REPLAY] SnapshotProcessor - process wireframe mutations. See #1033
- [SESSION REPLAY] Add the Session Replay MASK_ALL/ALLOW_ALL privacy strategies. See #1035
- [SESSION REPLAY] Use View hashcode as unique identifier for mapped Wireframe. See #1037
- [SESSION REPLAY] SnapshotProcessor - do not write anything if there was no mutation detected. See #1038
- [SESSION REPLAY] Create the Session Replay Writer component. See #1041
- [SESSION REPLAY] Send hasReplay property for RUM events. See #1054
- [SESSION REPLAY] Add Session Replay Uploader. See #1063
- [SESSION REPLAY] Fix the mutation resolver alg based on the Heckels definition. See #1065
- [SESSION REPLAY] Use RUM timestamp offset when resolving Session Replay timestamp. See #1068
- [SESSION REPLAY] Correct the way we handle orientation change events in SR. See #1073
- [SESSION REPLAY] Optimize BaseWireframeMapper#colorAndAlphaAsStringHexa function. See #1077
- [SESSION REPLAY] Accept optional Typeface when resolving fontStyle. See #1082
- [SESSION REPLAY] Skip new lines and spaces when obfuscating texts. See #1078
- [SESSION REPLAY] Correctly handle clipped elements and scrollable lists. See #1101
- [SESSION REPLAY] Flush buffered motion event positions periodically. See #1108
- [SESSION REPLAY] Fix source key in SR upload form. See #1109
- [SESSION REPLAY] Increase the screen snapshot frequency. See #1110
- [SESSION REPLAY] Start/Stop Session recording based on the RUM session state. See #1122
- [SESSION REPLAY] Sync SR touch and screen recorders. See #1150
- [SESSION REPLAY] Correctly resolve ShapeStyle opacity in Wireframes. See #1152
- [MAINTENANCE] Merge develop into sdkv2 branch. See #978
- [MAINTENANCE] Add support to Json Schema's oneOf syntax. See #976
- [MAINTENANCE] Small fix in the PokoGenerator tool. See #989
- [MAINTENANCE] Use Gradle lazy API more. See #996
- [MAINTENANCE] Gradle 7.5. See #997
- [MAINTENANCE] Merge develop branch into SDK v2 branch. See #1034
- [MAINTENANCE] Merge 1.14.0 release branch into master branch . See #1048
- [MAINTENANCE] Merge develop into SDK v2 branch. See #1052
- [MAINTENANCE] Merge release 1.14.1 into master. See #1062
- [MAINTENANCE] Merge Session Replay branch into SDK v2 branch. See #1075
- [MAINTENANCE] Merge develop into SDK v2 branch. See #1076
- [MAINTENANCE] Apply ktlint 0.45.1 rules. See #1086
- [MAINTENANCE] Move package from AndroidManifest to namespace plugin config property for Session Replay module. See #1095
- [MAINTENANCE] Merge develop into SDK v2 branch. See #1104
- [MAINTENANCE] Fix caching of models generation task. See #1111
- [MAINTENANCE] Fix WireframeUtils flaky tests. See #1113
- [MAINTENANCE] Fix flaky tests in WireframeUtilsTest. See #1128
- [MAINTENANCE] Next dev cycle. See #1132
- [MAINTENANCE] Suppress the deprecation of Bundle#get in nightly test. See #1137
- [MAINTENANCE] Remove non-existent function in dogfood script. See #1136
- [MAINTENANCE] Merge release 1.15.0 into develop. See #1135
- [MAINTENANCE] Merge release 1.15.0 into master. See #1134
- [MAINTENANCE] Merge develop branch into SDK v2 branch. See #1138
- [MAINTENANCE] Suppress the deprecation of Bundle#get in nightly test. See #1144
- [MAINTENANCE] Update telemetry schema. See #1145
- [MAINTENANCE] Merge develop into SDK v2 branch. See #1147
- [MAINTENANCE] Add fromJsonElement method to generated models. See #1148
- [MAINTENANCE] Fix flakiness in DebouncerTest class. See #1151
- [MAINTENANCE] Fix unit tests flakiness in MutationResolverTest. See #1157
- [MAINTENANCE] Merge SDK v2 branch into develop branch. See #1159
- [MAINTENANCE] Add publish task for the Session Replay module. See #1162
- [MAINTENANCE] Nightly tests improvements. See #1163
- [MAINTENANCE] Fix some nightly tests flakiness. See #1165
- [MAINTENANCE] Update telemetry configuration schema. See #1175
- [MAINTENANCE] Merge master into develop. See #1183
- [MAINTENANCE] Apply new detekt configuration. See #1180
- [MAINTENANCE] Fix flaky BroadcastReceiverSystemInfoProvider test. See #1185
- [MAINTENANCE] Generated code. See #1189
- [FEATURE] RUM: Add frustration signal 'Error Tap'. See #1006
- [FEATURE] RUM: Report frustration count on views. See #1030
- [FEATURE] RUM: Add API to enable/disable tracking of frustration signals. See #1085
- [FEATURE] RUM: Create internal API for sending technical performance metrics. See #1083
- [FEATURE] RUM: Configuration Telemetry. See #1118
- [IMPROVEMENT] Internal: Add internal DNS resolver. See #991
- [IMPROVEMENT] RUM: Support sending CPU architecture as part of device info. See #1000
- [IMPROVEMENT] Internal: Add checks on intake request headers. See #1005
- [IMPROVEMENT] RUM: Enable custom application version support. See #1020
- [IMPROVEMENT] RUM: Add configuration method to disable action tracking. See #1023
- [IMPROVEMENT] Global: Minor performance optimization during serialization into JSON format. See #1066
- [IMPROVEMENT] Global: Editable additional attributes. See #1089
- [IMPROVEMENT] RUM: Add tracing sampling attribute. See #1092
- [IMPROVEMENT] RUM: Invert frame time to get js refresh rate. See #1105
- [IMPROVEMENT] Global: Target Android 13. See #1130
- [BUGFIX] Internal: Fix buttons overlap in the sample app. See #1004
- [BUGFIX] Global: Prevent crash on peekBody. See #1080
- [BUGFIX] Shutdown Kronos clock only after executors. See #1127
- [DOCS] Android and Android TV Monitoring Formatting Edit. See #966
- [DOCS] Update statement about default view tracking strategy in the docs. See #1003
- [DOCS] Android Monitoring Doc Edit. See #1010
- [DOCS] Adds Secondary Doc Reviewer. See #1011
- [DOCS] Replace references to iOS classes with correct Android equivalents. See #1012
- [DOCS] Add setVitalsUpdateFrequency to the doc. See #1015
- [DOCS] Android Integrated Libraries Update. See #1021
- [DOCS] Sync Doc Changes From Master to Develop. See #1024
- [MAINTENANCE] CI: Use a gitlab template for analysis generated files check. See #1016
- [MAINTENANCE] Update Cmake to 3.22.1. See #1032
- [MAINTENANCE] Update CODEOWNERS. See #1045
- [MAINTENANCE] Update AGP to 7.3.0. See #1060
- [MAINTENANCE] CI: Use KtLint 0.45.1 and dedicated runner image. See #1081
- [MAINTENANCE] CI: Migrate ktlint CI job to shared gitlab template. See #1084
- [MAINTENANCE] Update ktlint to 0.47.1. See #1091
- [MAINTENANCE] Publish SNAPSHOT builds to sonatype on pushes to develop. See #1093
- [MAINTENANCE] Add version to top level project for nexusPublishing extension. See #1096
- [MAINTENANCE] Fix import ordering. See #1098
- [MAINTENANCE] Deprecate DatadogPlugin class and its usage. See #1100
- [MAINTENANCE] CI: Update .gitlab-ci.yml to use release image for static-analysis job. See #1102
- [MAINTENANCE] Suppress DatadogPlugin deprecation for instrumented tests. See #1114
- [MAINTENANCE] Remove Flutter from Dogfooding scripts. See #1120
- [MAINTENANCE] Fix flaky ANR detection test. See #1123
- [MAINTENANCE] Android Gradle Plugin 7.3.1. See #1124
- [MAINTENANCE] Filter out telemetry in the assertions of instrumented RUM tests. See #1131
- [IMPROVEMENT] Global: Add CPU architecture to the collected device information. See #1000
- [FEATURE] Global: Collect OS and device information instead of relying on User-Agent header. See #945
- [IMPROVEMENT] Logs: Add a possibility to define min log level. See #920
- [IMPROVEMENT] Logs: Add
varianttag to events. See #1025 - [IMPROVEMENT] RUM: Add a method to add extra user properties. See #952 (Thanks @JosephRoskopf)
- [IMPROVEMENT] RUM: Allow to configure Vitals collection frequency. See #926
- [IMPROVEMENT] RUM: Improve session management logic. See #948
- [IMPROVEMENT] RUM: Back navigation is reported with
backtype. See #980 - [IMPROVEMENT] RUM: Add a possibility to disable automatic view tracking. See #981
- [IMPROVEMENT] RUM: Add a possibility to disable automatic interactions tracking. See #1023
- [IMPROVEMENT] Global: Remove deprecated APIs. See #973
- [BUGFIX] Core: Prevent a rare race condition in the features folder creation
- [BUGFIX] RUM: Update Global RUM context when view is stopped
- [BUGFIX] RUM: Interactions use the window coordinates, and not the screen ones
- [FEATURE] RUM: Add compatibility with Android TV application (see our dedicated artifact to track TV actions)
- [FEATURE] Global: Provide an internal observability mechanism
- [IMPROVEMENT] Global: improve the local LogCat messages from the SDK
- [IMPROVEMENT] RUM: allow client side sampling for RUM Resource tracing
- [IMPROVEMENT] RUM: Disable Vitals collection when app's in background
- [IMPROVEMENT] RUM: Reduce the size of events sent
- [BUGFIX] Core: Internal attributes coming from cross-platform are removed after being read
- [BUGFIX] RUM: Ensure Crash report works even when there're no active view #849 (Thanks @emichaux)
- [BUGFIX] RUM: Span created from network requests stop sending the query params in the
resourceattribute - [BUGFIX] RUM: Ongoing action completes when a new view starts
- [FEATURE] RUM: Allow tracking browser RUM events from Webviews
- [FEATURE] RUM: Add support to Jetpack Compose
- [IMPROVEMENT] Logs: Support adding org.json.JSONObject attributes to Loggers #588 (Thanks @fleficher)
- [IMPROVEMENT] RUM: Automatically track Activity Intents
- [IMPROVEMENT] RUM: Collect RUM events during application launch
- [IMPROVEMENT] RUM: Remove RUM Action automatic filtering
- [IMPROVEMENT] Global: Prevent 3rd party/system dependency calls from crashing the host application
- [IMPROVEMENT] Global: Use the cache folder to store batch files
- [BUGFIX] RUM: Prevent potential crash when targeting Android SDK 31 #709 (Thanks @mattking-chip)
- [BUGFIX] RUM: Fix Memory Vital downscaled on Android
- [BUGFIX] RUM: Prevent potential crash in DatadogExceptionHandler #749 (Thanks @ribafish)
- [BUGFIX] RUM: Prevent potential crash in WindowCallbackWrapper
- [BUGFIX] RUM: Prevent potential crash NdkCrashReportsPlugin
- [BUGFIX] RUM: Ensure all crash information are saved
- [BUGFIX] Global: Prevent crash on init on KitKat devices #678 (Thanks @eduardb)
- [FEATURE] RUM: Add new Mobile Vitals attributes
- [FEATURE] RUM: Adds an optional
RumSessionListenerin theRumMonitor.Builderto know when a session starts, and what its UUID is - [FEATURE] Global: Allow user to set a custom proxy for data intake #592 (Thanks @ruXlab)
- [IMPROVEMENT] RUM: Associate Logs and Traces with RUM Action
- [IMPROVEMENT] RUM: Tag RUM Resources as
nativeby default (instead ofxhr) - [IMPROVEMENT] RUM: Sanitize NDK crash stacktraces
- [IMPROVEMENT] RUM: Enrich RUM Errors with the Throwable's message
- [IMPROVEMENT] Global: Update the intake request for Datadog's API v2
- [IMPROVEMENT] Global: Add support to US5 endpoint
- [IMPROVEMENT] RUM: Prevent Get leaking memory with OkHttp ResponseBody objects
- [IMPROVEMENT] RUM: Add an action predicate to rename the action target
- [BUGFIX] Global: Fix crash when using old OkHttp dependency #658 (Thanks @JessicaYeh)
- [BUGFIX] Global: Prevent retrying endlessly data upload when Client Token is invalid
- [BUGFIX] Global: Support using DD Android SDK with Java 11
- [BUGFIX] Global: Support proper serialization of nested maps for custom attributes
- [BUGFIX] RUM: Ensure all crashes are reported to RUM
- [FEATURE] APM: Add Data Scrubbing for Spans
- [FEATURE] RUM: Detect ANR
- [FEATURE] RUM: Track Memory and CPU usage, as well as views' refresh rate
- [FEATURE] RUM: Track Actions, Resources and Errors when the application is in background (see
Configuration.Builder().trackBackgroundRumEvents(true).build()) - [FEATURE] RUM: Add data scrubbing for Long Tasks
- [IMPROVEMENT] RUM: Replace all
otherorunknownresources with xhr (ensuring end-to-end trace is enabled) - [IMPROVEMENT] RUM: Let children events have the proper view.name attribute
- [IMPROVEMENT] RUM: Keep all custom Action even when a previous action is still active
- [IMPROVEMENT] Global: Update available endpoints (and match documentation names:
US1,US3,US1_FEDandEU1) - [IMPROVEMENT] Global: All user info should be in usr.*
- [BUGFIX] APM: Fix network tracing inconsistencies
- [BUGFIX] APM: Fix span with custom
MESSAGEfield #522 (Thanks @JessicaYeh) - [BUGFIX] Logs: Fix tag name in Timber
DatadogTree#483 (Thanks @cfa-eric) - [BUGFIX] RUM: Ensure View linked events count is correct when events are discarded
- [BUGFIX] RUM: Fix Resource network timings
- [BUGFIX] APM: Fix span logs timestamp conversion
- [FEATURE] RUM: Detect Long Tasks (tasks blocking the main thread)
- [FEATURE] RUM: add a callback to enrich RUM Resources created from OkHttp Requests
- [IMPROVEMENT] RUM: Remove the "Application crash detected" prefix and ensure the message is kept
- [IMPROVEMENT] RUM: Add warning when a RUM Action is dropped
- [BUGFIX] RUM/APM: handle correctly known hosts in global configuration and interceptors #513 (Thanks @erawhctim)
- [BUGFIX] Global: handle correctly incorrect domain names in Interceptors' known hosts
- [BUGFIX] RUM: RUM Context was bundled in spans even when RUM was not enabled
- [FEATURE] Global: Allow user to configure the Upload Frequency (see
Configuration.Builder().setUploadFrequency(…).build()) - [FEATURE] Global: Allow user to configure the Batch Size (see
Configuration.Builder().setBatchSize(…).build()) - [FEATURE] RUM: Customize Views' name
- [FEATURE] RUM: Send NDK Crash related RUM Error
- [FEATURE] RUM: Track custom timings in RUM Views (see
GlobalRum.get().addTiming("<timing_name>")) - [FEATURE] RUM: Provide a PII Data Scrubbing feature (see
Configuration.Builder().setRum***EventMapper(…).build()) - [FEATURE] RUM: Send NDK Crash related RUM Error
- [IMPROVEMENT] APM: Stop duplicating APM errors as RUM errors
- [IMPROVEMENT] Logs Align the 'error.kind' attribute value with RUM Error 'error.type'
- [IMPROVEMENT] RUM: Get a more accurate Application loading time
- [IMPROVEMENT] RUM: Add a variant tag on RUM events
- [BUGFIX] RUM: fix RUM Error timestamps
- [BUGFIX] RUM: calling
GlobalRum.addAttribute()with anullvalue would make the application crash - [BUGFIX] RUM: Actions created with type Custom where sometimes dropped
- [FEATURE] Global: Add support for GDPR compliance feature (see
Datadog.setTrackingConsent()) - [FEATURE] Global: Allow setting custom user specific attributes (see
Datadog.setUserInfo()) - [IMPROVEMENT] Crash Report: Handle SIGABRT signal in the NDKCrashReporter
- [OTHER] Global: Remove deprecated APIs and warn about future deprecations
- [OTHER] Global: Remove all flavors from sample (allowing to get faster build times)
- [BUGFIX] Global: Ensure the network status is properly retrieved on startup
- [BUGFIX] RUM: Extend continuous RUM action scope if Resources are still active
- [BUGFIX] RUM: Resources are linked with the wrong Action
- [BUGFIX] Global: Validate the env value passed in the DatadogConfig.Builder
- [BUGFIX] RUM: prevent
trackInterations()from messing with the Application's theme - [BUGFIX] Global: Remove unnecessary transitive dependencies from library #396 (Thanks @rashadsookram)
- [BUGFIX] Global: Prevent a crash in CallbackNetworkProvider
- [FEATURE] Global: Provide an RxJava integration (
dd-sdk-android-rx) - [FEATURE] Global: Provide a Coil integration (
dd-sdk-android-coil) - [FEATURE] Global: Provide a Fresco integration (
dd-sdk-android-coil) - [FEATURE] Global: Provide a SQLDelight integration (
dd-sdk-android-sqldelight) - [FEATURE] Global: Provide a Kotlin Coroutines/Flow integration (
dd-sdk-android-ktx) - [FEATURE] Global: Provide an extension for SQLiteDatabase integration (
dd-sdk-android-ktx) - [FEATURE] RUM: Add a utility to track various resource loading (
RumResourceInputStream) - [FEATURE] RUM: Add an extensions to track Android resources and assets as RUM Resources (
dd-sdk-android-ktx) - [FEATURE] RUM: Add the APM trace information in the RUM Resource
- [FEATURE] RUM: Track spans with error as RUM Error
- [IMPROVEMENT] Global: Delay the upload of data in case of network exceptions
- [IMPROVEMENT] CrashReport: Add application information in crashes
- [BUGFIX] Global: Prevent a crash when sending data. See #377 (Thanks @ronak-earnin)
- [BUGFIX] RUM: Make sure the RUM data is sent in applications obfuscated or shrunk with Proguard/R8
- [FEATURE] RUM: Add a RUM tracking feature:
- Track User sessions
- Track Activities or Fragments as Views (or use manual tracing)
- Track Resources (network requests)
- Track User interactions (Tap, Scroll, Swipe)
- Track Errors and crashes
- [FEATURE] RUM: Add helper Interceptor to track OkHttp requests
- [FEATURE] RUM: Add helper WebViewClient and WebChromeClient implementations to track WebView resources
- [FEATURE] RUM: Add helper library to track Glide requests and errors
- [FEATURE] CrashReport: Add a helper library to detect C/C++ crashes in Android NDK
- [FEATURE] Global: add a method to clear all local unsent data
- [BUGFIX] APM: Fix clock skew issue in traced requests
- [BUGFIX] Logs: Prevent Logcat noise from our SDK when running Robolectric tests
- [IMPROVEMENT] Global: Enhance the SDK performance and ensure it works properly in a multi-process application
- [OTHER] Global: The DatadogConfig needs a valid environment name (
envName), applied to all features - [OTHER] Global: The serviceName by default will use your application's package name
- [OTHER] Global: The logs and spans sent from the sdk can be found with the filter
source:android
- [IMPROVEMENT] Global: The
sourcetag on logs and trace now usesandroidinstead ofmobile
- [BUGFIX] Global: Fix data upload (some payloads could rarely be malformed)
- [BUGFIX] Trace: Fix spans intake (some spans could be missing)
- [FEATURE] Global: Update the SDK initialization code
- [FEATURE] Global: Add a Kotlin extension module with Kotlin specific integrations
- [FEATURE] APM: Implement OpenTracing specifications
- [FEATURE] APM: Add helper methods to attach an error to a span
- [FEATURE] APM: Add helper Interceptor to trace OkHttp requests
- [FEATURE] Logs: Add sampling option in the Logger
- [IMPROVEMENT] Logs: Make the log operations thread safe
- [BUGFIX] Logs: Fix rare crash on upload requests
- [BUGFIX] Global: Prevent OutOfMemory crash on upload. See #164 (Thanks @alparp27)
- [BUGFIX] Fix ConcurrentModificationException crash in the FileReader class. See #234 (Thanks @alparp27)
- [FEATURE] Logs: Add the caller class name as a tag in the LogcatLogHandler (only when app is in Debug)
- [FEATURE] Logs: Allow adding a
JsonElementas Attribute - [FEATURE] CrashReport: Let Crash logs use the EMERGENCY log level
- [FEATURE] Global: Warn developers on SDK errors in the Logcat (cf
Datadog.setVerbosity()) - [FEATURE] Global: Expose the
Datadog.isInitialized()method to the public API - [OTHER] Deprecate the
Datadog.switchEndpoint()method - [OTHER] Fail silently when the SDK is not initialized
- [BUGFIX] Fix invalid dependency group in
dd-sdk-android-timber. See #147 (Thanks @mduong, @alparp27, @rafaela-stockx)
- [BUGFIX] Fail silently when trying to initialize the SDK twice. See #86 (Thanks @Vavassor)
- [BUGFIX] Publish the Timber artifact automatically. See #90 (Thanks @Macarse)
- [FEATURE] Create a Crash Handler : App crashes will be automatically logged.
- [FEATURE] Downgrade OkHttp4 to OkHttp3
- [FEATURE] Make Library compatible with API 19+
- [FEATURE] Trigger background upload when the app is used offline
- [FEATURE] Use DownloadSpeed and signal strength to add info on connectivity
- [FEATURE] Use Gzip for log upload requests
- [OTHER] Analyse Benchmark reports in the CI
- [OTHER] Fix the flaky test in DataDogTimeProviderTest
- [OTHER] Generate a report on the SDK API changes (dd-sdk-android/apiSurface)
- [BUGFIX] Fix crash on Android Lollipop and Nougat
- [BUGFIX] Make the packageVersion field optional in the SDK initialisation
- [BUGFIX] Fix timestamp formatting in logs
- [FEATURE] Add a developer targeted logger
- [FEATURE] Add user info in logs
- [FEATURE] Create automatic Tags / Attribute (app / sdk version)
- [FEATURE] Integrate SDK with Timber
- [IMPROVEMENT] Remove the obfuscation in the logs (faster local processing)
- [IMPROVEMENT] Implement a modern NetworkInfoProvider
- [BUGFIX] Make sure no logs are lost
- [FEATURE] Allow adding a throwable to logged messages
- [FEATURE] Automatically add the Logger name and thread to the logged messages
- [FEATURE] Allow Changing the endpoint between US and EU servers
- [FEATURE] Allow logger to add attributes for a single log
- [IMPROVEMENT] Remove the usage of the Android WorkManager
- [IMPROVEMENT] Improved overall performances
- [IMPROVEMENT] Disable background job when network or battery are low
- [OTHER] Secure the project with lints, tests and benchmarks