Releases: DataDog/dd-sdk-android
3.6.0
- [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
- [IMRPOVEMENT] 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
3.5.0
- [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
3.4.0
- [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
3.3.0
[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: DatadogSite extension for Flags endpoint. See #2922
[FEATURE] Feature flags: Flags.enable and FlagsClient APIs. 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 CountDownLatch to FlagsRepository. See #2947
[FEATURE] Feature flags: Add telemetry for critical paths. See #2952
[FEATURE] Feature flags: Generic resolve method. See #2923
[FEATURE] Feature flags: Generate ExposureEvent from schema. See #2957
[FEATURE] Feature flags: Remove redundant featureflags subpackage. See #2966
[FEATURE] Feature flags: Support for PROVIDER_NOT_READY state. 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 RumWindowCallbacksRegistry for 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 FlagsProvider and FlagsClient into one. See #2899
[IMPROVEMENT] Support long task reporting for multiple SDK instances. See #2934
[IMPROVEMENT] MIGRATION.MD update 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 Executor for WorkerParameters forgery 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.MD with the default sampling rate. See #2995
[IMPROVEMENT] Add internal disableJankStats config option. See #3000
[MAINTENANCE] Provide SDK commit SHA1 to the Shopist App. See #2993
[MAINTENANCE] Fix detekt issues. See #2885
[MAINTENANCE] Remove unused isConstantClass variable. See #2984
2.26.3
3.2.0
[FEATURE] Support Apollo GraphQL. See #2845
[FEATURE] Trace: Account ID and User ID propagation support via baggage header. 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 sessionId which was missing for automatic HTTP tracing via baggage header. See #2904
[IMPROVEMENT] Move session properties to ddtags over query parameters. See #2866
[IMPROVEMENT] Trace: Support baggage header 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.toml in GenerateTransitiveDependenciesTask as input. See #2905
[MAINTENANCE] Move TimeProvider into dd-sdk-android-internal. See #2906
[MAINTENANCE] Bump dd-trace-java version to 1.54.0. See #2916
[MAINTENANCE] Enhancing check last release script. See #2927
2.26.2
3.1.0
- [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
RumVitalEventserialization 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
2.26.1
3.0.0
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