From e218b835c2a243f6202efeaf17171a3435e95e54 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Wed, 21 Sep 2022 11:25:22 +0200 Subject: [PATCH 1/3] fix(tracing): Update warm/cold start span ops To be more consistent with Cocoa and Android, update the span ops to use `.` instead of `_` seperators. This matches the pattern we use for the rest of the span ops also --- src/js/tracing/reactnativetracing.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/tracing/reactnativetracing.ts b/src/js/tracing/reactnativetracing.ts index 44dcb03043..be3eaf2c7d 100644 --- a/src/js/tracing/reactnativetracing.ts +++ b/src/js/tracing/reactnativetracing.ts @@ -285,7 +285,7 @@ export class ReactNativeTracing implements Integration { const appStartTimeSeconds = appStart.appStartTime / 1000; - const appStartMode = appStart.isColdStart ? 'app_start_cold' : 'app_start_warm'; + const appStartMode = appStart.isColdStart ? 'app.start.cold' : 'app.start.warm'; transaction.startChild({ description: appStart.isColdStart ? 'Cold App Start' : 'Warm App Start', op: appStartMode, From 0757bc30a2f5027af5dfede3ce0f594b68bbd74d Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Wed, 21 Sep 2022 11:32:34 +0200 Subject: [PATCH 2/3] changelog and tests --- CHANGELOG.md | 6 ++++++ test/tracing/reactnativetracing.test.ts | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1051321ff7..df6788b7f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +### Fixes + +- Update warm/cold start span ops ([#2487](https://github.com/getsentry/sentry-react-native/pull/2487)) + ## 4.4.0 ### Features diff --git a/test/tracing/reactnativetracing.test.ts b/test/tracing/reactnativetracing.test.ts index 05a9c6cc19..d6301aab5a 100644 --- a/test/tracing/reactnativetracing.test.ts +++ b/test/tracing/reactnativetracing.test.ts @@ -113,11 +113,11 @@ describe('ReactNativeTracing', () => { expect( // @ts-ignore access private for test - transaction._measurements?.app_start_cold?.value + transaction._measurements?.app.start.cold?.value ).toEqual(timeOriginMilliseconds - appStartTimeMilliseconds); expect( // @ts-ignore access private for test - transaction._measurements?.app_start_cold?.unit).toBe('millisecond'); + transaction._measurements?.app.start.cold?.unit).toBe('millisecond'); done(); } @@ -162,11 +162,11 @@ describe('ReactNativeTracing', () => { expect( // @ts-ignore access private for test - transaction._measurements?.app_start_warm?.value + transaction._measurements?.app.start.warm?.value ).toEqual(timeOriginMilliseconds - appStartTimeMilliseconds); expect( // @ts-ignore access private for test - transaction._measurements?.app_start_warm?.unit).toBe('millisecond'); + transaction._measurements?.app.start.warm?.unit).toBe('millisecond'); done(); } @@ -206,12 +206,12 @@ describe('ReactNativeTracing', () => { if (transaction) { expect( // @ts-ignore access private for test - transaction._measurements?.app_start_warm + transaction._measurements?.app.start.warm ).toBeUndefined(); expect( // @ts-ignore access private for test - transaction._measurements?.app_start_cold + transaction._measurements?.app.start.cold ).toBeUndefined(); done(); @@ -298,7 +298,7 @@ describe('ReactNativeTracing', () => { jest.runOnlyPendingTimers(); // @ts-ignore access private for test - expect(routeTransaction._measurements?.app_start_cold?.value).toBe( + expect(routeTransaction._measurements?.app.start.cold?.value).toBe( timeOriginMilliseconds - appStartTimeMilliseconds ); @@ -314,7 +314,7 @@ describe('ReactNativeTracing', () => { const span = spanRecorder.spans[spanRecorder.spans.length - 1]; - expect(span.op).toBe('app_start_cold'); + expect(span.op).toBe('app.start.cold'); expect(span.description).toBe('Cold App Start'); expect(span.startTimestamp).toBe(appStartTimeMilliseconds / 1000); expect(span.endTimestamp).toBe(timeOriginMilliseconds / 1000); @@ -368,7 +368,7 @@ describe('ReactNativeTracing', () => { jest.runOnlyPendingTimers(); // @ts-ignore access private for test - expect(routeTransaction._measurements?.app_start_warm?.value).toBe( + expect(routeTransaction._measurements?.app.start.warm?.value).toBe( timeOriginMilliseconds - appStartTimeMilliseconds ); @@ -384,7 +384,7 @@ describe('ReactNativeTracing', () => { const span = spanRecorder.spans[spanRecorder.spans.length - 1]; - expect(span.op).toBe('app_start_warm'); + expect(span.op).toBe('app.start.warm'); expect(span.description).toBe('Warm App Start'); expect(span.startTimestamp).toBe(appStartTimeMilliseconds / 1000); expect(span.endTimestamp).toBe(timeOriginMilliseconds / 1000); From 7226bd97ce110533b61ac0fbad13c5cc503a73dd Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Wed, 21 Sep 2022 18:31:21 +0200 Subject: [PATCH 3/3] fix tests for real --- test/tracing/reactnativetracing.test.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/tracing/reactnativetracing.test.ts b/test/tracing/reactnativetracing.test.ts index d6301aab5a..74a6b31049 100644 --- a/test/tracing/reactnativetracing.test.ts +++ b/test/tracing/reactnativetracing.test.ts @@ -113,11 +113,11 @@ describe('ReactNativeTracing', () => { expect( // @ts-ignore access private for test - transaction._measurements?.app.start.cold?.value + transaction._measurements['app.start.cold'].value ).toEqual(timeOriginMilliseconds - appStartTimeMilliseconds); expect( // @ts-ignore access private for test - transaction._measurements?.app.start.cold?.unit).toBe('millisecond'); + transaction._measurements['app.start.cold'].unit).toBe('millisecond'); done(); } @@ -162,11 +162,11 @@ describe('ReactNativeTracing', () => { expect( // @ts-ignore access private for test - transaction._measurements?.app.start.warm?.value + transaction._measurements['app.start.warm'].value ).toEqual(timeOriginMilliseconds - appStartTimeMilliseconds); expect( // @ts-ignore access private for test - transaction._measurements?.app.start.warm?.unit).toBe('millisecond'); + transaction._measurements['app.start.warm'].unit).toBe('millisecond'); done(); } @@ -206,12 +206,12 @@ describe('ReactNativeTracing', () => { if (transaction) { expect( // @ts-ignore access private for test - transaction._measurements?.app.start.warm + transaction._measurements['app.start.warm'] ).toBeUndefined(); expect( // @ts-ignore access private for test - transaction._measurements?.app.start.cold + transaction._measurements['app.start.cold'] ).toBeUndefined(); done(); @@ -298,7 +298,7 @@ describe('ReactNativeTracing', () => { jest.runOnlyPendingTimers(); // @ts-ignore access private for test - expect(routeTransaction._measurements?.app.start.cold?.value).toBe( + expect(routeTransaction._measurements['app.start.cold'].value).toBe( timeOriginMilliseconds - appStartTimeMilliseconds ); @@ -368,7 +368,7 @@ describe('ReactNativeTracing', () => { jest.runOnlyPendingTimers(); // @ts-ignore access private for test - expect(routeTransaction._measurements?.app.start.warm?.value).toBe( + expect(routeTransaction._measurements['app.start.warm'].value).toBe( timeOriginMilliseconds - appStartTimeMilliseconds );