Skip to content

Commit bf48657

Browse files
🚧 [PANA-6282] Add USE_INCREMENTAL_CHANGE_RECORDS feature flag
1 parent 96cf6ce commit bf48657

4 files changed

Lines changed: 23 additions & 11 deletions

File tree

‎packages/core/src/tools/experimentalFeatures.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export enum ExperimentalFeature {
2121
START_STOP_ACTION = 'start_stop_action',
2222
START_STOP_RESOURCE = 'start_stop_resource',
2323
USE_CHANGE_RECORDS = 'use_change_records',
24+
USE_INCREMENTAL_CHANGE_RECORDS = 'use_incremental_change_records',
2425
LCP_SUBPARTS = 'lcp_subparts',
2526
INP_SUBPARTS = 'inp_subparts',
2627
}

‎packages/rum/src/domain/record/startFullSnapshots.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ export function takeFullSnapshot(
8383
}
8484

8585
function defaultSerializeFullSnapshotCallback(): SerializeFullSnapshotCallback {
86-
return isExperimentalFeatureEnabled(ExperimentalFeature.USE_CHANGE_RECORDS)
86+
return isExperimentalFeatureEnabled(ExperimentalFeature.USE_CHANGE_RECORDS) ||
87+
isExperimentalFeatureEnabled(ExperimentalFeature.USE_INCREMENTAL_CHANGE_RECORDS)
8788
? serializeFullSnapshotAsChange
8889
: serializeFullSnapshot
8990
}

‎packages/rum/src/domain/segmentCollection/startSegmentTelemetry.spec.ts‎

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,16 @@ describe('segmentTelemetry', () => {
4949
registerCleanupTask(stopSegmentTelemetry)
5050
}
5151

52-
for (const enableChangeRecords of [true, false] as const) {
53-
const titlePrefix = enableChangeRecords ? 'with change records' : 'without change records'
54-
55-
it(`${titlePrefix}, should collect segment telemetry for all full snapshots`, async () => {
56-
if (enableChangeRecords) {
57-
addExperimentalFeatures([ExperimentalFeature.USE_CHANGE_RECORDS])
52+
for (const changeRecordFeatureFlag of [
53+
undefined,
54+
ExperimentalFeature.USE_CHANGE_RECORDS,
55+
ExperimentalFeature.USE_INCREMENTAL_CHANGE_RECORDS,
56+
] as const) {
57+
it(`with ${changeRecordFeatureFlag || 'v1_records'}, should collect segment telemetry for all full snapshots`, async () => {
58+
if (changeRecordFeatureFlag) {
59+
addExperimentalFeatures([changeRecordFeatureFlag])
5860
}
61+
5962
setupSegmentTelemetryCollection()
6063

6164
for (const result of ['failure', 'queue-full', 'success'] as const) {
@@ -73,8 +76,9 @@ describe('segmentTelemetry', () => {
7376
sum: 500,
7477
},
7578
encoding: {
76-
fullSnapshot: enableChangeRecords ? 'change' : 'v1',
77-
incrementalSnapshot: 'v1',
79+
fullSnapshot: changeRecordFeatureFlag ? 'change' : 'v1',
80+
incrementalSnapshot:
81+
changeRecordFeatureFlag === ExperimentalFeature.USE_INCREMENTAL_CHANGE_RECORDS ? 'change' : 'v1',
7882
},
7983
isFullSnapshot: true,
8084
ongoingRequests: {

‎packages/rum/src/domain/segmentCollection/startSegmentTelemetry.ts‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,14 @@ function createSegmentMetrics(
7373
sum: payload.cssText.sum,
7474
},
7575
encoding: {
76-
fullSnapshot: isExperimentalFeatureEnabled(ExperimentalFeature.USE_CHANGE_RECORDS) ? 'change' : 'v1',
77-
incrementalSnapshot: 'v1',
76+
fullSnapshot:
77+
isExperimentalFeatureEnabled(ExperimentalFeature.USE_CHANGE_RECORDS) ||
78+
isExperimentalFeatureEnabled(ExperimentalFeature.USE_INCREMENTAL_CHANGE_RECORDS)
79+
? 'change'
80+
: 'v1',
81+
incrementalSnapshot: isExperimentalFeatureEnabled(ExperimentalFeature.USE_INCREMENTAL_CHANGE_RECORDS)
82+
? 'change'
83+
: 'v1',
7884
},
7985
isFullSnapshot: payload.isFullSnapshot,
8086
ongoingRequests: {

0 commit comments

Comments
 (0)