Skip to content

Commit 00c0c03

Browse files
committed
Adds frame delay in spans data (WIP)
1 parent c680ff0 commit 00c0c03

File tree

6 files changed

+25
-0
lines changed

6 files changed

+25
-0
lines changed

packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,7 @@ public void fetchNativeFrames(Promise promise) {
491491
int totalFrames = 0;
492492
int slowFrames = 0;
493493
int frozenFrames = 0;
494+
int framesDelay = 0; // TODO
494495

495496
final SparseIntArray[] framesRates = frameMetricsAggregator.getMetrics();
496497

@@ -518,6 +519,7 @@ public void fetchNativeFrames(Promise promise) {
518519
map.putInt("totalFrames", totalFrames);
519520
map.putInt("slowFrames", slowFrames);
520521
map.putInt("frozenFrames", frozenFrames);
522+
map.putInt("framesDelay", framesDelay);
521523

522524
promise.resolve(map);
523525
} catch (Throwable ignored) { // NOPMD - We don't want to crash in any case

packages/core/ios/RNSentry.mm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,11 @@ - (NSDictionary *)fetchNativeStackFramesBy:(NSArray<NSNumber *> *)instructionsAd
517517

518518
#if TARGET_OS_IPHONE || TARGET_OS_MACCATALYST
519519
if (PrivateSentrySDKOnly.isFramesTrackingRunning) {
520+
// TODO
521+
CFTimeInterval framesDelay = [PrivateSentrySDKOnly getFramesDelay:0.0
522+
endSystemTimestamp:0.0];
523+
NSNumber *delay = [NSNumber numberWithDouble:framesDelay];
524+
520525
SentryScreenFrames *frames = PrivateSentrySDKOnly.currentScreenFrames;
521526

522527
if (frames == nil) {
@@ -532,6 +537,7 @@ - (NSDictionary *)fetchNativeStackFramesBy:(NSArray<NSNumber *> *)instructionsAd
532537
@"totalFrames" : total,
533538
@"frozenFrames" : frozen,
534539
@"slowFrames" : slow,
540+
@"framesDelay" : delay,
535541
});
536542
} else {
537543
resolve(nil);

packages/core/src/js/NativeRNSentry.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ export type NativeFramesResponse = {
112112
totalFrames: number;
113113
slowFrames: number;
114114
frozenFrames: number;
115+
framesDelay: number;
115116
};
116117

117118
export type NativeReleaseResponse = {

packages/core/src/js/tracing/integrations/appStart.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ function attachFrameDataToSpan(span: SpanJSON, frames: NativeFramesResponse): vo
154154
span.data['frames.total'] = frames.totalFrames;
155155
span.data['frames.slow'] = frames.slowFrames;
156156
span.data['frames.frozen'] = frames.frozenFrames;
157+
span.data['frames.delay'] = frames.framesDelay;
157158

158159
logger.debug('[AppStart] Attached frame data to span.', {
159160
spanId: span.span_id,

packages/core/test/tracing/integrations/appStart.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -795,6 +795,7 @@ describe('Frame Data Integration', () => {
795795
totalFrames: 150,
796796
slowFrames: 5,
797797
frozenFrames: 2,
798+
framesDelay: 0,
798799
};
799800

800801
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValue(mockEndFrames);
@@ -822,6 +823,7 @@ describe('Frame Data Integration', () => {
822823
totalFrames: 200,
823824
slowFrames: 8,
824825
frozenFrames: 1,
826+
framesDelay: 0,
825827
};
826828

827829
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValue(mockEndFrames);
@@ -849,6 +851,7 @@ describe('Frame Data Integration', () => {
849851
totalFrames: 120,
850852
slowFrames: 3,
851853
frozenFrames: 0,
854+
framesDelay: 0,
852855
};
853856

854857
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValue(mockEndFrames);
@@ -878,6 +881,7 @@ describe('Frame Data Integration', () => {
878881
totalFrames: 180,
879882
slowFrames: 12,
880883
frozenFrames: 3,
884+
framesDelay: 0,
881885
};
882886

883887
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValue(mockEndFrames);
@@ -907,6 +911,7 @@ describe('Frame Data Integration', () => {
907911
totalFrames: 0,
908912
slowFrames: 0,
909913
frozenFrames: 0,
914+
framesDelay: 0,
910915
};
911916

912917
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValue(mockEndFrames);

packages/core/test/tracing/integrations/nativeframes.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,13 @@ describe('NativeFramesInstrumentation', () => {
5959
totalFrames: 100,
6060
slowFrames: 20,
6161
frozenFrames: 5,
62+
framesDelay: 0,
6263
};
6364
const finishFrames = {
6465
totalFrames: 200,
6566
slowFrames: 40,
6667
frozenFrames: 10,
68+
framesDelay: 0,
6769
};
6870
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValueOnce(startFrames).mockResolvedValueOnce(finishFrames);
6971

@@ -99,11 +101,13 @@ describe('NativeFramesInstrumentation', () => {
99101
totalFrames: 0,
100102
slowFrames: 0,
101103
frozenFrames: 0,
104+
framesDelay: 0,
102105
};
103106
const finishFrames = {
104107
totalFrames: 100,
105108
slowFrames: 20,
106109
frozenFrames: 5,
110+
framesDelay: 0,
107111
};
108112
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValueOnce(startFrames).mockResolvedValueOnce(finishFrames);
109113

@@ -139,11 +143,13 @@ describe('NativeFramesInstrumentation', () => {
139143
totalFrames: 100,
140144
slowFrames: 20,
141145
frozenFrames: 5,
146+
framesDelay: 0,
142147
};
143148
const finishFrames = {
144149
totalFrames: 100,
145150
slowFrames: 20,
146151
frozenFrames: 5,
152+
framesDelay: 0,
147153
};
148154
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValueOnce(startFrames).mockResolvedValueOnce(finishFrames);
149155

@@ -174,6 +180,7 @@ describe('NativeFramesInstrumentation', () => {
174180
totalFrames: 200,
175181
slowFrames: 40,
176182
frozenFrames: 10,
183+
framesDelay: 0,
177184
};
178185
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValueOnce(startFrames).mockResolvedValueOnce(finishFrames);
179186

@@ -203,6 +210,7 @@ describe('NativeFramesInstrumentation', () => {
203210
totalFrames: 100,
204211
slowFrames: 20,
205212
frozenFrames: 5,
213+
framesDelay: 0,
206214
};
207215
const finishFrames: null = null;
208216
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValueOnce(startFrames).mockResolvedValueOnce(finishFrames);
@@ -244,11 +252,13 @@ describe('NativeFramesInstrumentation', () => {
244252
totalFrames: 100,
245253
slowFrames: 20,
246254
frozenFrames: 5,
255+
framesDelay: 0,
247256
};
248257
const finishFrames = {
249258
totalFrames: 200,
250259
slowFrames: 40,
251260
frozenFrames: 10,
261+
framesDelay: 0,
252262
};
253263
mockFunction(NATIVE.fetchNativeFrames).mockResolvedValueOnce(startFrames).mockResolvedValueOnce(finishFrames);
254264

0 commit comments

Comments
 (0)