- [IMPROVEMENT] Add ObjC API for the internal logging/telemetry. See #2073
- [IMPROVEMENT] Add overwrite required (breaking) param to addViewLoadingTime & usage telemetry. See #2040
- [FEATURE] Prevent "show password" features from revealing sensitive texts in Session Replay. See #2050
- [FEATURE] Add Fine-Grained Masking configuration options to Session Replay. See #2043
- [FEATURE] Add support for view loading experimental API (addViewLoadingTime). See #2026
- [IMPROVEMENT] Drop support for deprecated cocoapod specs. See #1998
- [FIX] Propagate global Tracer tags to OpenTelemetry span attributes. See #2000
- [FEATURE] Add Logs event mapper to ObjC API. See #2008
- [IMPROVEMENT] Send retry information with network requests (eg. retry_count, last_failure_status and idempotency key). See #1991
- [IMPROVEMENT] Enable app launch time on mac, macCatalyst and visionOS. See #1888 (Thanks @Hengyu)
- [FIX] Ignore network reachability on watchOS . See #2005 (Thanks @jfiser-paylocity)
- [FEATURE] Add Start / Stop API to Session Replay (start/stopRecording). See #1986
- [IMPROVEMENT] Deprecate Alamofire extension pod. See #1966
- [FIX] Refresh rate vital for variable refresh rate displays when over performing. See #1973
- [FIX] Alamofire extension types are deprecated now. See #1988
- [FIX] Fix CPU spikes when Watchdog Terminations tracking is enabled. See #1968
- [FIX] Fix CPU spike when recording UITabBar using SessionReplay. See #1967
- [FEATURE] Enable DatadogCore, DatadogLogs and DatadogTrace to compile on watchOS platform. See #1918 (Thanks @jfiser-paylocity) #1946
- [IMPROVEMENT] Ability to clear feature data storage using
clearAllData
API. See #1940 - [IMPROVEMENT] Send memory warning as RUM error. See #1955
- [IMPROVEMENT] Decorate network span kind as
client
. See #1963 - [FIX] Fix CPU spikes when Watchdog Terminations tracking is enabled. See #1968
- [FIX] Fix CPU spike when recording UITabBar using SessionReplay. See #1967
- [FIX] Objc attributes interop for KMP. See #1947
- [FIX] Inject backtrace reporter into Logs feature. See #1948
- [IMPROVEMENT] Use
#fileID
over#filePath
as the default argument in errors. See #1938 - [FEATURE] Add support for Watchdog Terminations tracking in RUM. See #1917 #1911 #1912 #1889
- [IMPROVEMENT] Tabbar Icon Default Tint Color in Session Replay. See #1906
- [IMPROVEMENT] Improve Nav Bar Support in Session Replay. See #1916
- [IMPROVEMENT] Record Activity Indicator in Session Replay. See #1934
- [IMPROVEMENT] Allow disabling app hang monitoring in ObjC API. See #1908
- [IMPROVEMENT] Update RUM and Telemetry models with KMP source. See #1925
- [IMPROVEMENT] Use otel-swift fork that only has APIs. See #1930
- [FIX] Fix compilation issues on Xcode 16 beta. See #1898
- [IMPROVEMENT] Bump
IPHONEOS_DEPLOYMENT_TARGET
andTVOS_DEPLOYMENT_TARGET
from 11 to 12. See #1891 - [IMPROVEMENT] Add
.connect
,.trace
,.options
values toDDRUMMethod
type. See #1886 - [FIX] Fix compilation issues on Xcode 16 beta. See #1898
- [IMPROVEMENT] Crash errors now include up-to-date global RUM attributes. See #1834
- [FEATURE]
DatadogTrace
now supports OpenTelemetry. See #1828 - [FIX] Fix crash on accessing request.allHTTPHeaderFields. See #1843
- [FEATURE] Support for trace context injection configuration to allow selective injection. See #1835
- [FEATURE]
DatadogWebViewTracking
is now available for Obj-C. See #1854 - [FEATURE] RUM "stop session", "get session ID" and "evaluate feature flag" APIs are now available for Obj-C. See #1853
- [FEATURE]
DatadogTrace
now supports head-based sampling. See #1794 - [FEATURE] Support WebView recording in Session Replay. See #1776
- [IMPROVEMENT] Add
isInitialized
andstopInstance
methods to ObjC API. See [#1800][] - [IMPROVEMENT] Add
addUserExtraInfo
method to ObjC API. See [#1799][] - [FIX] Add background upload capability to extensions. See #1803
- [IMPROVEMENT] Start sending data immediately after SDK is initialized. See #1798
- [IMPROVEMENT] Make the SDK compile on macOS 12+. See #1711
- [FIX] Use trace and span id as decimal. See #1807
- [IMPROVEMENT] Add image duplicate detection between sessions. See #1747
- [FEATURE] Add support for 128 bit trace IDs. See #1721
- [FEATURE] Fatal App Hangs are tracked in RUM. See #1763
- [FIX] Avoid name collision with Required Reason APIs. See #1774
- [FEATURE] Call RUM's
errorEventMapper
for crashes. See #1742 - [FEATURE] Support calling log event mapper for crashes. See #1741
- [FIX] Fix crash in
NetworkInstrumentationFeature
. See #1767 - [FIX] Remove modulemap. See #1746
- [FIX] Expose objc interfaces in Session Replay module. See #1697
- [FEATURE] App Hangs are tracked as RUM errors. See #1685
- [FIX] Propagate parent span in distributing tracing. See #1627
- [IMPROVEMENT] Add Device's Brand, Name, and Model in LogEvent. See #1672 (Thanks @aldoKelvianto)
- [FEATURE] Improved image recording in Session Replay. See #1592
- [FEATURE] Allow custom error fingerprinting on logs with a special attribute. See #1722
- [FEATURE] Add global log attributes. See #1707
- [FEATURE] Privacy Manifest data usage description. See #1724
- [FIX] Pass through data when network request completes. See #1696
- [FIX] Privacy Report missing properties. See #1656
- [FIX] Privacy manifest collision in static framework. See #1666
- [FIX] RUM session not being linked to spans. See #1615
- [FIX]
URLSessionTask.resume()
swizzling in iOS 13 and 12. See #1637 - [FEATURE] Allow stopping a core instance. See #1541
- [FEATURE] Link crashes sent as Log events to RUM session. See #1645
- [IMPROVEMENT] Add extra HTTP codes to the list of retryable status codes. See #1639
- [FEATURE] Add privacy manifest to
DatadogCore
. See #1644
- [FEATURE] Add
currentSessionID(completion:)
accessor to access the current session ID. - [FEATURE] Add
BatchProcessingLevel
configuration allowing to process more batches within single read/upload cycle. See #1531 - [FIX] Use
currentRequest
insteadoriginalRequest
for URLSession request interception. See #1609 - [FIX] Remove weak
UIViewController
references. See #1597
-
[BUGFIX] Fix
view.time_spent
in RUM view events. See #1596 -
[FEATURE] Start RUM session on RUM init. See #1594
- [BUGFIX] Optimize Session Replay diffing algorithm. See #1524
- [FEATURE] Add network instrumentation for async/await URLSession APIs. See #1394
- [FEATURE] Change default tracing headers for first party hosts to use both Datadog headers and W3C
tracecontext
headers. See #1529 - [FEATURE] Add tracestate headers when using W3C tracecontext. See #1536
- [BUGFIX] Fix RUM ViewController leaks. See #1533
- [FEATURE] WebView Log events can be now sampled. See #1515
- [BUGFIX] WebView RUM events are now dropped if mobile RUM session is not sampled. See #1502
- [BUGFIX] Fix
os.name
in Log events. See #1493
- [IMPROVEMENT] Add UIBackgroundTask for uploading jobs. See #1412
- [IMPROVEMENT] Report Build Number in Logs and RUM. See #1465
- [BUGFIX] Fix wrong
view.name
reported in RUM crashes. See #1488 - [BUGFIX] Fix RUM sessions state propagation in Crash Reporting. See #1498
- [BUGFIX] Add default RUM views and actions predicates to DatadogObjc . See #1464.
- [IMPROVEMENT] Enable cross-platform SDKs to change app
version
. See [#1447][] - [IMPROVEMENT] Enable cross-platform SDKs to edit more of telemetry configuration. See [#1456][]
- [BUGFIX] Do not embed DatadogInternal while building Trace and RUM xcframeworks. See #1444.
- [BUGFIX]
DatadogObjc
not fully available in2.1.0
. See #1428.
- [BUGFIX] Manual trace injection APIs are not available in DatadogTrace. See #1415.
- [BUGFIX] Fix session replay uploads to AP1 site. See #1418.
- [BUGFIX] Allow instantiating custom instance of the SDK after default one. See #1413.
- [BUGFIX] Do not propagate attributes from Errors and LongTasks to Views.
- [IMPROVEMENT] Upgrade to PLCrashReporter 1.11.1.
- [FEATURE] Report session sample rate to the backend with RUM events. See #1410
- [IMPROVEMENT] Expose Session Replay to Objective-C. see #1419
Release 2.0
introduces breaking changes. Follow the Migration Guide to upgrade from 1.x
versions.
- [FEATURE] Session Replay.
- [FEATURE] Support multiple SDK instances.
- [IMPROVEMENT] All relevant products (RUM, Trace, Logs, etc.) are now extracted into different modules.
- [BUGFIX] Module stability: fix name collision.
- [BUGFIX] Fix APM local spans not correlating with RUM views. See #1355
- [IMPROVEMENT] Reduce number of view updates by filtering events from payload. See #1328
- [BUGFIX] Fix TracingUUID string format. See #1311 (Thanks @changm4n)
- [BUGFIX] Rename _Datadog_Private to DatadogPrivate. See #1331 (Thanks @alexfanatics)
- [IMPROVEMENT] Add context to crash when there's an active view. See #1315
- [BUGFIX] Use targetTimestamp as reference to calculate FPS for variable refresh rate displays. See #1272
- [BUGFIX] Fix view attributes override by action attributes. See #1250
- [IMPROVEMENT] Add Tracer sampling rate. See #1259
- [BUGFIX] Fix RUM context not being attached to log when no user action exists. See #1264
- [IMPROVEMENT] Add start reason to the session. See #1247
- [IMPROVEMENT] Add ability to stop the session. See #1219
- [BUGFIX] Fix crash in
VitalInfoSampler
. See #1216 (Thanks @cltnschlosser) - [IMPROVEMENT] Fix Xcode analysis warning. See #1220
- [BUGFIX] Send crashes to both RUM and Logs. See #1209
- [IMPROVEMENT] Always create an ApplicationLaunch view on session initialization. See #1160
- [BUGFIX] Remove the data race caused by sampling on the RUM thread. See #1177 (Thanks @cltnschlosser)
- [BUGFIX] Add ability to adjust configuration telemetry sampling rate. See #1188
- [BUGFIX] Fix 'Could not allocate memory' after corrupted TLV. See #1089 (Thanks @cltnschlosser)
- [BUGFIX] Fix error count on the view update event following a crash. See #1145
- [IMPROVEMENT] Add a method for sending error attributes on logs as strings. See #1051.
- [IMPROVEMENT] Add manual Open Telemetry b3 headers injection. See #1057
- [IMPROVEMENT] Add automatic Open Telemetry b3 headers injection. See #1061
- [IMPROVEMENT] Add manual and automatic W3C traceparent header injection. See #1071
- [IMPROVEMENT] Improve console logs when using
DDNoopRUMMonitor
. See #1007 (Thanks @dfed) - [IMPROVEMENT] Add public API to control tracking of frustrations signals. See #1013
- [IMPROVEMENT] Send trace sample rate (
dd.rulePsr
) for APM's traffic ingestion control page. See #1029 - [IMPROVEMENT] Add a method to add user info properties. See #1031
- [BUGFIX] Fix vitals default presets. See #1043
- [IMPROVEMENT] Add logging sampling. See #1045
- [IMPROVEMENT] Upgrade to PLCrashReporter 1.11.0 to fix Xcode 14 support.
- [BUGFIX] Fix manual User Action dropped if a new view start. See #997
- [IMPROVEMENT] Enable cross-platform SDKs to change app
version
. See #973 - [IMPROVEMENT] Add internal APIs for cross-platform SDKs. See #964
- [IMPROVEMENT] Add mobile vitals frequency configuration. See #876
- [IMPROVEMENT] Include the exact model information in RUM
device.model
. See #888 - [FEATURE] Allow filtering outgoing logs with a status threshold. See #867
- [BUGFIX] Fix compilation issue in SwiftUI Previews. See #949
- [IMPROVEMENT] Expose server date provider for custom clock synchronization. See #950
- [BUGFIX] Fix Mac Catalyst builds compatibility. See #894
- [BUGFIX] Fix rare problem with bringing up the "Local Network Permission" alert. See #830
- [BUGFIX] Fix RUM event
source
. See #832 - [BUGFIX] Stop reporting pre-warmed application launch time. See #789
- [BUGFIX] Allow log event dropping. See #795
- [FEATURE] Integration with CI Visibility Tests. See#761
- [FEATURE] Add tvOS Support. See #793
- [FEATURE] Add data encryption interface on-disk data storage. See #797
- [IMPROVEMENT] Allow manually tracked resources in RUM Sessions to detect first party hosts. See #837
- [IMPROVEMENT] Add tracing sampling rate. See #851
- [IMPROVEMENT] Crash Reporting: Filter out unrecognized trailing
???
stack frame inerror.stack
. See #794 - [IMPROVEMENT] Reduce the number of intermediate view events sent in RUM payloads. See #815
- [IMPROVEMENT] Allow manually tracked resources in RUM Sessions to detect first party hosts. See #837
- [IMPROVEMENT] Add tracing sampling rate. See #851
- [BUGFIX] Fix rare problem with bringing up the "Local Network Permission" alert. See #830
- [BUGFIX] Fix RUM event
source
. See #832 - [FEATURE] Integration with CI Visibility Tests. See#761
- [FEATURE] Add tvOS Support. See #793
- [FEATURE] Add data encryption interface on-disk data storage. See #797
- [BUGFIX] Stop reporting pre-warmed application launch time. See #789
- [BUGFIX] Allow log event dropping. See #795
- [IMPROVEMENT] Crash Reporting: Filter out unrecognized trailing
???
stack frame inerror.stack
. See #794 - [IMPROVEMENT] Reduce the number of intermediate view events sent in RUM payloads. See #815
- [BUGFIX] Report binary image with no UUID. See #724
- [FEATURE] Add Application Launch events tracking. See #699
- [FEATURE] Set
PLCrashReporter
custom path. See #692 - [FEATURE]
SwiftUI
Instrumentation. See #676 - [IMPROVEMENT] Embed Kronos. See #708
- [IMPROVEMENT] Add
@service
attribute to all RUM events. See #725 - [IMPROVEMENT] Adds support for flutter error source. See #715
- [IMPROVEMENT] Add crash reporting console logs. See #712
- [IMPROVEMENT] Keep view active until all resources are consumed. See #702
- [IMPROVEMENT] Allow passing in a type for errors sent with a message. See #680 (Thanks @AvdLee)
- [IMPROVEMENT] Add config overrides for debug launch arguments. See #679
- [BUGFIX] Fix rare crash in
CarrierInfoProvider
. See #627 #623, #619 (Thanks @safa-ads, @matcartmill) - [BUGFIX] Crash Reporting: Fix issue with some truncated stack traces not being displayed. See #641
- [BUGFIX] Fix reading SDK attributes in Objective-C. See #654
- [FEATURE] RUM: Track slow UI renders with RUM Long Tasks. See #567
- [FEATURE] RUM: Add API to notify RUM session start:
.onRUMSessionStart(_: (String, Bool) -> Void)
. See #590 - [FEATURE] Logs: Add logs scrubbing API:
.setLogEventMapper(_: (LogEvent) -> LogEvent)
. See #640 - [FEATURE] Add
Datadog.isInitialized
API. See #566 - [FEATURE] Add API for clearing out all SDK data:
Datadog.clearAllData()
. See #644 - [FEATURE] Add support for
us5
site. See #576 - [FEATURE] Support
URLSession
proxy configuration with.connectionProxyDictionary
. See #582 - [IMPROVEMENT] Compress HTTP body in SDK uploads. See #626
- [IMPROVEMENT] Change type of
.xhr
RUM Resources to.native
. See #605 - [IMPROVEMENT] Link logs and traces to RUM Actions. See #615
- [IMPROVEMENT] Crash Reporting: Fix symbolication issue for iOS Simulator crashes. See #563
- [IMPROVEMENT] Fix various typos in docs. See #569 (Thanks @michalsrutek)
- [IMPROVEMENT] Use Intake API V2 for SDK data uploads. See #562
- [BUGFIX] Fix iOS 15 crash related to
ProcessInfo.isLowPowerModeEnabled
. See #609 #655 (Thanks @pingd)
- [BUGFIX] Fix iOS 15 crash in
MobileDevice.swift
. See #609 #613 (Thanks @arnauddorgans, @earltedly) - [BUGFIX] RUM: Fix bug with "Refresh Rate" Mobile Vital reporting very low values. #608
- [BUGFIX] RUM: Fix
DDRUMView
API visibility for Objective-C. See #583 - [FEATURE] Crash Reporting: Add
DatadogCrashReporting
- [FEATURE] RUM: Add Mobile Vitals. See #493 #514 #522 #495
- [FEATURE] RUM: Add option for renaming instrumented actions. See #539
- [FEATURE] RUM: Add option for tracking events when app is in background. See #504 #537
- [FEATURE] Add support for
us3
site. See #523 - [IMPROVEMENT] RUM: Improve RUM <> APM integration. See #524 #575 #531 (Thanks @jracollins, @marcusway)
- [IMPROVEMENT] RUM: Improve naming for views started with
key:
. See #534 - [IMPROVEMENT] RUM: Improve actions instrumentation. See #509 #545 #547
- [IMPROVEMENT] RUM: Sanitize custom timings for views. See #525
- [IMPROVEMENT] Do not retry uploading events if Client Token is invalid. See #535
- [BUGFIX] Trace: Fix
[configuration trackUIKitRUMViews]
not working properly in Obj-c. See #419 - [BUGFIX] Trace: Make
tracePropagationHTTPHeaders
available in Obj-c. See #421 (Thanks @ben-yolabs) - [BUGFIX] RUM: Fix RUM Views auto-instrumentation issue on iOS 11. See #474
- [FEATURE] RUM: Support adding custom attributes for auto-instrumented RUM Resources. See #473
- [FEATURE] Trace: Add scrubbing APIs for redacting auto-instrumented spans. See #481
- [IMPROVEMENT] RUM: Add "VIEW NAME" attribute to RUM Views. See #318
- [IMPROVEMENT] RUM: Views cannot be now dropped using view event mapper. See #415
- [IMPROVEMENT] RUM: Improve presentation of errors sent with
Logger
. See #423 - [IMPROVEMENT] Trace: Improve presentation of errors sent with
span.log()
. See #431 - [IMPROVEMENT] Add support for extra user attributes in Obj-c. See #444
- [IMPROVEMENT] Trace: Add
foreground_duration
andis_background
information to network spans. See #436 - [IMPROVEMENT] RUM: Views will now automatically stop when the app leaves foreground. See #479
- [IMPROVEMENT]
DDURLSessionDelegate
can now be initialized before starting SDK. See #483
- [BUGFIX] Add missing RUM Resource APIs to RUM for Objc. See #447 (Thanks @sdejesusF)
- [BUGFIX] Fix eventual
swiftlint
error duringcarthage
builds. See #450 - [IMPROVEMENT] Improve cocoapods installation by not requiring
!use_frameworks
. See #451
- [BUGFIX] Carthage XCFrameworks support. See #439
- [BUGFIX] Fix baggage items propagation issue for
Span
. See #365 (Thanks @philtre) - [FEATURE] Add set of scrubbing APIs for redacting and dropping particular RUM Events. See #367
- [FEATURE] Add support for GDPR compliance with new
Datadog.set(trackingConsent:)
API. See #335 - [FEATURE] Add
Global.rum.addTiming(name:)
API for marking custom tming events in RUM Views. See #323 - [FEATURE] Add support for Alamofire networking with
DatadogAlamofireExtension
. See #340 - [FEATURE] Add configuration of data upload frequency and paylaod size with
.set(batchSize:)
and.set(uploadFrequency:)
APIs. See #358 - [FEATURE] Add convenient
.setError(_:)
API for settingError
onSpan
. See #390 - [IMPROVEMENT] Improve
DATE
accurracy (with NTP time sync) for all data send from the SDK. See #327 - [IMPROVEMENT] Improve App Launch Time metric accurracy. See #381
- [BUGFIX] Fix app extension compilation issue for
UIApplication.shared
symbol. See #370 (Thanks @SimpleApp)
- [BUGFIX] Fix crash when
serviceName
contains space characters. See #317 (Thanks @philtre) - [BUGFIX] Fix issue with data uploads when battery status is
.unknown
. See #320 - [BUGFIX] Fix compilation issue for Mac Catalyst. See #277 (Thanks @Hengyu)
- [FEATURE] RUM: Add RUM monitoring feature (manual and auto instrumentation)
- [FEATURE] Add single
.set(endpoint:)
API to configure all Datadog endpoints. See #322 - [FEATURE] Add support for GovCloud endpoints. See #235
- [FEATURE] Add support for extra user attributes. See #315
- [FEATURE] Logs: Add
error: Error
attribute to logging APIs. See #303 (Thanks @sdejesusF) - [FEATURE] Trace: Add
span.setActive()
API for indirect referencing Spans. See #187 - [FEATURE] Trace: Add
Global.sharedTracer.startRootSpan(...)
API. See #236 - [IMPROVEMENT] Trace: Add auto instrumentation for
URLSessionTasks
created with no completion handler. See #262 - [IMPROVEMENT] Extend allowed characters set for the
environment
value. See #246 (Thanks @sdejesusF) - [IMPROVEMENT] Improve data upload performance. See #249
- [BUGFIX] Fix SPM compilation issue for DatadogObjC. See #220 (Thanks @TsvetelinVladimirov)
- [BUGFIX] Fix compilation issue in Xcode 11.3.1. See #217 (Thanks @provTheodoreNewell)
- [FEATURE] Trace: Add tracing feature following the Open Tracing spec
- [BUGFIX] Logs: Fix memory leaks in logs upload. See #180 (Thanks @hyling)
- [BUGFIX] Fix App Store Connect validation issue for
DatadogObjC
. See #182 (Thanks @hyling)
- [BUGFIX] Logs: Fix occasional logs malformation. See #133
- [BUGFIX] Fix
ISO8601DateFormatter
crash on iOS 11.0 and 11.1. See #129 (Thanks @lgaches, @Britton-Earnin)
- [BUGFIX] Logs: Fixed family of
NWPathMonitor
crashes. See #110 (Thanks @LeffelMania, @00FA9A, @jegnux) - [FEATURE] Logs: Change default
serviceName
to app bundle identifier. See #102 - [IMPROVEMENT] Logs: Add milliseconds precision. See #96 (Thanks @flobories)
- [IMPROVEMENT] Logs: Deliver logs faster in app extensions. See #84 (Thanks @lmramirez)
- [OTHER] Logs: Change default
source
to"ios"
. See #111 - [OTHER] Link SDK as dynamic framework in SPM. See #82
- [BUGFIX] Fix "Missing required module 'Datadog_Private'" Carthage error. See #80
- [IMPROVEMENT] Logs: Sync logs time with server. See #65
- [BUGFIX] Fix "'module.modulemap' should be inside the 'include' directory" Carthage error. See #73 (Thanks @joeydong)
- [BUGFIX] Fix "out of memory" crash. See #64 (Thanks @lmramirez)
- [FEATURE] Logs: Add logging feature