RUM-17173 Add Performance Timeseries configuration to RUM - #1349
barboraplasovska wants to merge 1 commit into
Conversation
❌ ErrorsYour PR has failed checks. Please review the issues below and take necessary action before merging. 🚦 4 Pipeline jobs failed
ℹ️ InfoNo other issues found (see more)🧪 All tests passed Useful? React with 👍 / 👎 This comment will be updated automatically if new data arrives.🔗 Commit SHA: 584da00 | Docs | View more details | Give us feedback! |
2192dc6 to
a7658c8
Compare
6f51851 to
05ebd47
Compare
05ebd47 to
92e0871
Compare
| s.dependency 'DatadogWebViewTracking', '3.17.0' | ||
| s.dependency 'DatadogInternal', '3.17.0' |
There was a problem hiding this comment.
I would be nice to separate the iOS SDK version bump from these changes, you can use this PR as an example: https://github.com/DataDog/dd-sdk-reactnative/pull/1381/changes.
The reason for the failures in CI seem related to it: https://gitlab.ddbuild.io/DataDog/dd-react-native-nightly-tests/-/jobs/2057151760
840031d to
2b54b30
Compare
2b54b30 to
584da00
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Native SDK dependencies must be updated, and public typing/exports and memory coverage remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (5)
What changed in this PR
Adds experimental RUM CPU/memory timeseries configuration across TypeScript, JSON, iOS, and Android.
Changes:
- Adds public configuration types, defaults, schema, and file-based support.
- Maps settings to native iOS and Android SDK initialization.
- Updates fixtures and configuration tests.
| File | Description |
|---|---|
packages/core/src/sdk/DatadogProvider/__tests__/initialization.test.tsx |
Updates initialization expectations. |
packages/core/src/config/types/TimeseriesConfiguration.ts |
Defines timeseries types. |
packages/core/src/config/types/index.ts |
Re-exports timeseries types. |
packages/core/src/config/FileBasedConfiguration.type.ts |
Adds file configuration typing. |
packages/core/src/config/FileBasedConfiguration.ts |
Serializes timeseries settings. |
packages/core/src/config/features/RumConfigurationNative.ts |
Extends native RUM configuration. |
packages/core/src/config/features/RumConfiguration.type.ts |
Adds the public RUM option. |
packages/core/src/config/features/RumConfiguration.ts |
Adds defaults and storage. |
packages/core/src/config/__tests__/FileBasedConfiguration.test.ts |
Tests file configuration. |
packages/core/src/config/__tests__/__fixtures__/configuration-all-fields.json |
Extends configuration fixtures. |
packages/core/src/__tests__/DdSdkReactNativeConfiguration.test.ts |
Updates configuration expectations. |
packages/core/ios/Tests/Fixtures/complete-configuration.json |
Extends iOS fixtures. |
packages/core/ios/Tests/DdSdkTests.swift |
Tests iOS configuration building. |
packages/core/ios/Tests/DdSdkNativeInitializationTests.swift |
Tests iOS parsing. |
packages/core/ios/Sources/RNDdSdkConfiguration.swift |
Parses iOS timeseries settings. |
packages/core/ios/Sources/DdSdkNativeInitialization.swift |
Builds iOS timeseries configuration. |
packages/core/ios/Sources/DdSdkConfiguration.swift |
Extends iOS configuration models. |
packages/core/datadog-configuration.schema.json |
Documents schema fields. |
packages/core/android/src/test/resources/input/complete-configuration.json |
Extends Android fixtures. |
packages/core/android/src/test/kotlin/com/datadog/tools/unit/DdSdkConfigurationExt.kt |
Updates Android test conversion helpers. |
packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkTest.kt |
Tests Android initialization. |
packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkNativeInitializationTest.kt |
Tests Android parsing. |
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt |
Builds Android timeseries configuration. |
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkConfigurationExt.kt |
Parses and serializes settings. |
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkConfiguration.kt |
Extends Android configuration models. |
example/ios/Podfile.lock |
Updates native dependency lock metadata. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| import com.datadog.android.rum.timeseries.TimeseriesConfiguration as NativeTimeseriesConfiguration | ||
| import com.datadog.android.rum.timeseries.TimeseriesType as NativeTimeseriesType |
| import DatadogInternal | ||
| import DatadogLogs | ||
| import DatadogRUM | ||
| @_spi(Experimental) import DatadogRUM |
| export type { | ||
| TimeseriesConfiguration, | ||
| TimeseriesType | ||
| } from './TimeseriesConfiguration'; |
| private fun String.asTimeseriesType(): NativeTimeseriesType? { | ||
| return when (lowercase(Locale.US)) { | ||
| "cpu" -> NativeTimeseriesType.CPU | ||
| "memory" -> NativeTimeseriesType.MEMORY |
| let collectTypes: [TimeseriesType]? = rumConfig.timeseriesCollectTypes?.compactMap { | ||
| switch $0.lowercased() { | ||
| case "cpu": | ||
| return .cpu | ||
| case "memory": | ||
| return .memory |



What and why?
Exposes the native Timeseries RUM feature (dense memory/CPU sampling events) through the public RUM configuration API.
Important
Depends on #1427 (native SDK bump to 3.17.0 iOS / 3.14.0 Android). That PR must merge and this branch must be rebased onto
developbefore this PR can build/pass CI.Review checklist