Releases: DataDog/dd-sdk-android
3.7.0
- [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
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