sentry-react-native icon indicating copy to clipboard operation
sentry-react-native copied to clipboard

feat: Capture app start errors before JS

Open krystofwoldrich opened this issue 11 months ago • 6 comments

Create merge commit. Do not squash.

This PR contains reviewed intermediate commits for capturing error before JS start feature.

#skip-changelog

krystofwoldrich avatar Jan 21 '25 16:01 krystofwoldrich

Messages
:book: Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by :no_entry_sign: dangerJS against 588ba6dd855ad2afc04c52c3bb79b986deacfa68

github-actions[bot] avatar Jan 21 '25 16:01 github-actions[bot]

Android (new) Performance metrics :rocket:

  Plain With Sentry Diff
Startup time 413.23 ms 425.62 ms 12.39 ms
Size 7.15 MiB 8.42 MiB 1.27 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
f2c6fa59fe513a080e8f60f4a98ac1893239084a+dirty 435.84 ms 433.84 ms -2.00 ms
ec2a485c7a5c6e236205545de48cc3ca09cad803+dirty 397.67 ms 390.91 ms -6.76 ms
df5da5d284c27f13ff80d4c768a30889919072e3+dirty 415.54 ms 456.96 ms 41.42 ms
7d3c3cbb3ac2afeaa1306c36c7f6ed6b5b87fd02+dirty 395.20 ms 413.24 ms 18.04 ms
0e42017ff6f154ae24dc57366b65f48d9dfb9f16+dirty 387.33 ms 399.30 ms 11.97 ms
940bd65839926e7ae9e8b8b3d8d9785cbf3009bd+dirty 408.45 ms 419.75 ms 11.30 ms
b4d6bdebcc77aab0bbfc10483d77eab420d3707b+dirty 390.51 ms 385.60 ms -4.91 ms
6e8a85144bc0b83c20a8bd5e667d4446acc44dd6+dirty 403.44 ms 430.87 ms 27.43 ms
1f1c42023bca1bcda0b9e5028131d627abb85aef+dirty 383.31 ms 386.98 ms 3.67 ms

App size

Revision Plain With Sentry Diff
f2c6fa59fe513a080e8f60f4a98ac1893239084a+dirty 7.15 MiB 8.42 MiB 1.26 MiB
ec2a485c7a5c6e236205545de48cc3ca09cad803+dirty 7.15 MiB 8.42 MiB 1.26 MiB
df5da5d284c27f13ff80d4c768a30889919072e3+dirty 7.15 MiB 8.42 MiB 1.26 MiB
7d3c3cbb3ac2afeaa1306c36c7f6ed6b5b87fd02+dirty 7.15 MiB 8.42 MiB 1.26 MiB
0e42017ff6f154ae24dc57366b65f48d9dfb9f16+dirty 7.15 MiB 8.42 MiB 1.26 MiB
940bd65839926e7ae9e8b8b3d8d9785cbf3009bd+dirty 7.15 MiB 8.42 MiB 1.26 MiB
b4d6bdebcc77aab0bbfc10483d77eab420d3707b+dirty 7.15 MiB 8.42 MiB 1.26 MiB
6e8a85144bc0b83c20a8bd5e667d4446acc44dd6+dirty 7.15 MiB 8.42 MiB 1.26 MiB
1f1c42023bca1bcda0b9e5028131d627abb85aef+dirty 7.15 MiB 8.42 MiB 1.26 MiB

Previous results on branch: capture-app-start-errors

Startup times

Revision Plain With Sentry Diff
482b3fb55090b05d9dbf5ee7ebd6791a6ac236d5+dirty 439.70 ms 450.42 ms 10.72 ms

App size

Revision Plain With Sentry Diff
482b3fb55090b05d9dbf5ee7ebd6791a6ac236d5+dirty 7.15 MiB 8.42 MiB 1.27 MiB

github-actions[bot] avatar Jan 21 '25 16:01 github-actions[bot]

iOS (legacy) Performance metrics :rocket:

  Plain With Sentry Diff
Startup time 1233.45 ms 1235.24 ms 1.80 ms
Size 2.63 MiB 3.78 MiB 1.15 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
7d3c3cbb3ac2afeaa1306c36c7f6ed6b5b87fd02+dirty 1226.39 ms 1227.10 ms 0.71 ms
0e42017ff6f154ae24dc57366b65f48d9dfb9f16+dirty 1225.89 ms 1231.63 ms 5.74 ms
ec2a485c7a5c6e236205545de48cc3ca09cad803+dirty 1219.72 ms 1224.66 ms 4.94 ms
f2c6fa59fe513a080e8f60f4a98ac1893239084a+dirty 1230.27 ms 1236.20 ms 5.93 ms
df5da5d284c27f13ff80d4c768a30889919072e3+dirty 1235.98 ms 1243.41 ms 7.43 ms
6e8a85144bc0b83c20a8bd5e667d4446acc44dd6+dirty 1227.96 ms 1235.61 ms 7.65 ms
1f1c42023bca1bcda0b9e5028131d627abb85aef+dirty 1216.77 ms 1214.48 ms -2.29 ms
b4d6bdebcc77aab0bbfc10483d77eab420d3707b+dirty 1223.22 ms 1243.56 ms 20.34 ms
940bd65839926e7ae9e8b8b3d8d9785cbf3009bd+dirty 1216.88 ms 1225.23 ms 8.35 ms

App size

Revision Plain With Sentry Diff
7d3c3cbb3ac2afeaa1306c36c7f6ed6b5b87fd02+dirty 2.63 MiB 3.78 MiB 1.15 MiB
0e42017ff6f154ae24dc57366b65f48d9dfb9f16+dirty 2.63 MiB 3.78 MiB 1.15 MiB
ec2a485c7a5c6e236205545de48cc3ca09cad803+dirty 2.63 MiB 3.78 MiB 1.15 MiB
f2c6fa59fe513a080e8f60f4a98ac1893239084a+dirty 2.63 MiB 3.78 MiB 1.15 MiB
df5da5d284c27f13ff80d4c768a30889919072e3+dirty 2.63 MiB 3.78 MiB 1.15 MiB
6e8a85144bc0b83c20a8bd5e667d4446acc44dd6+dirty 2.63 MiB 3.78 MiB 1.15 MiB
1f1c42023bca1bcda0b9e5028131d627abb85aef+dirty 2.63 MiB 3.77 MiB 1.14 MiB
b4d6bdebcc77aab0bbfc10483d77eab420d3707b+dirty 2.63 MiB 3.77 MiB 1.14 MiB
940bd65839926e7ae9e8b8b3d8d9785cbf3009bd+dirty 2.63 MiB 3.78 MiB 1.15 MiB

Previous results on branch: capture-app-start-errors

Startup times

Revision Plain With Sentry Diff
482b3fb55090b05d9dbf5ee7ebd6791a6ac236d5+dirty 1212.04 ms 1221.96 ms 9.92 ms

App size

Revision Plain With Sentry Diff
482b3fb55090b05d9dbf5ee7ebd6791a6ac236d5+dirty 2.63 MiB 3.78 MiB 1.15 MiB

github-actions[bot] avatar Jan 21 '25 17:01 github-actions[bot]

iOS (new) Performance metrics :rocket:

  Plain With Sentry Diff
Startup time 1222.37 ms 1230.82 ms 8.45 ms
Size 3.19 MiB 4.35 MiB 1.17 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
7d3c3cbb3ac2afeaa1306c36c7f6ed6b5b87fd02+dirty 1214.56 ms 1234.53 ms 19.97 ms
0e42017ff6f154ae24dc57366b65f48d9dfb9f16+dirty 1235.77 ms 1247.43 ms 11.66 ms
ec2a485c7a5c6e236205545de48cc3ca09cad803+dirty 1209.65 ms 1229.18 ms 19.53 ms
f2c6fa59fe513a080e8f60f4a98ac1893239084a+dirty 1223.47 ms 1227.37 ms 3.90 ms
df5da5d284c27f13ff80d4c768a30889919072e3+dirty 1226.82 ms 1234.88 ms 8.06 ms
6e8a85144bc0b83c20a8bd5e667d4446acc44dd6+dirty 1222.57 ms 1223.67 ms 1.10 ms
1f1c42023bca1bcda0b9e5028131d627abb85aef+dirty 1238.06 ms 1234.04 ms -4.02 ms
b4d6bdebcc77aab0bbfc10483d77eab420d3707b+dirty 1218.73 ms 1223.26 ms 4.53 ms
940bd65839926e7ae9e8b8b3d8d9785cbf3009bd+dirty 1224.39 ms 1215.57 ms -8.82 ms

App size

Revision Plain With Sentry Diff
7d3c3cbb3ac2afeaa1306c36c7f6ed6b5b87fd02+dirty 3.19 MiB 4.35 MiB 1.16 MiB
0e42017ff6f154ae24dc57366b65f48d9dfb9f16+dirty 3.19 MiB 4.35 MiB 1.16 MiB
ec2a485c7a5c6e236205545de48cc3ca09cad803+dirty 3.19 MiB 4.35 MiB 1.17 MiB
f2c6fa59fe513a080e8f60f4a98ac1893239084a+dirty 3.19 MiB 4.35 MiB 1.17 MiB
df5da5d284c27f13ff80d4c768a30889919072e3+dirty 3.19 MiB 4.35 MiB 1.17 MiB
6e8a85144bc0b83c20a8bd5e667d4446acc44dd6+dirty 3.19 MiB 4.35 MiB 1.17 MiB
1f1c42023bca1bcda0b9e5028131d627abb85aef+dirty 3.19 MiB 4.34 MiB 1.16 MiB
b4d6bdebcc77aab0bbfc10483d77eab420d3707b+dirty 3.19 MiB 4.34 MiB 1.16 MiB
940bd65839926e7ae9e8b8b3d8d9785cbf3009bd+dirty 3.19 MiB 4.35 MiB 1.16 MiB

Previous results on branch: capture-app-start-errors

Startup times

Revision Plain With Sentry Diff
482b3fb55090b05d9dbf5ee7ebd6791a6ac236d5+dirty 1226.96 ms 1226.39 ms -0.57 ms

App size

Revision Plain With Sentry Diff
482b3fb55090b05d9dbf5ee7ebd6791a6ac236d5+dirty 3.19 MiB 4.35 MiB 1.17 MiB

github-actions[bot] avatar Jan 21 '25 17:01 github-actions[bot]

Android (legacy) Performance metrics :rocket:

  Plain With Sentry Diff
Startup time 415.49 ms 423.15 ms 7.66 ms
Size 17.75 MiB 20.15 MiB 2.40 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
f2c6fa59fe513a080e8f60f4a98ac1893239084a 445.15 ms 449.13 ms 3.98 ms
1f1c42023bca1bcda0b9e5028131d627abb85aef 403.32 ms 411.98 ms 8.66 ms
df5da5d284c27f13ff80d4c768a30889919072e3 425.55 ms 432.96 ms 7.41 ms
b4d6bdebcc77aab0bbfc10483d77eab420d3707b 425.51 ms 417.37 ms -8.14 ms
52d9c3fd55b7ab19168e3accba26bcbab7510402 481.48 ms 468.53 ms -12.95 ms
ec2a485c7a5c6e236205545de48cc3ca09cad803 450.84 ms 447.49 ms -3.35 ms
940bd65839926e7ae9e8b8b3d8d9785cbf3009bd 466.31 ms 458.52 ms -7.79 ms
6e8a85144bc0b83c20a8bd5e667d4446acc44dd6 425.59 ms 433.51 ms 7.92 ms
7d3c3cbb3ac2afeaa1306c36c7f6ed6b5b87fd02 444.85 ms 456.65 ms 11.81 ms
0e42017ff6f154ae24dc57366b65f48d9dfb9f16 402.23 ms 415.04 ms 12.81 ms

App size

Revision Plain With Sentry Diff
f2c6fa59fe513a080e8f60f4a98ac1893239084a 17.75 MiB 20.15 MiB 2.40 MiB
1f1c42023bca1bcda0b9e5028131d627abb85aef 17.75 MiB 20.15 MiB 2.40 MiB
df5da5d284c27f13ff80d4c768a30889919072e3 17.75 MiB 20.15 MiB 2.40 MiB
b4d6bdebcc77aab0bbfc10483d77eab420d3707b 17.75 MiB 20.15 MiB 2.40 MiB
52d9c3fd55b7ab19168e3accba26bcbab7510402 17.75 MiB 20.15 MiB 2.40 MiB
ec2a485c7a5c6e236205545de48cc3ca09cad803 17.75 MiB 20.15 MiB 2.40 MiB
940bd65839926e7ae9e8b8b3d8d9785cbf3009bd 17.75 MiB 20.15 MiB 2.40 MiB
6e8a85144bc0b83c20a8bd5e667d4446acc44dd6 17.75 MiB 20.15 MiB 2.40 MiB
7d3c3cbb3ac2afeaa1306c36c7f6ed6b5b87fd02 17.75 MiB 20.15 MiB 2.40 MiB
0e42017ff6f154ae24dc57366b65f48d9dfb9f16 17.75 MiB 20.15 MiB 2.40 MiB

Previous results on branch: capture-app-start-errors

Startup times

Revision Plain With Sentry Diff
482b3fb55090b05d9dbf5ee7ebd6791a6ac236d5 444.98 ms 464.39 ms 19.41 ms

App size

Revision Plain With Sentry Diff
482b3fb55090b05d9dbf5ee7ebd6791a6ac236d5 17.75 MiB 20.15 MiB 2.40 MiB

github-actions[bot] avatar Jan 22 '25 07:01 github-actions[bot]

Main branch contains Maestro E2E tests for the sample app transactions. This feature branch contains Detox tests.

The reason for Maestro VS Detox were due to issues with warm/cold app start detection when using Detox as the app was always started in background.

After the https://github.com/getsentry/sentry-react-native/pull/4472/commits/c6dc90c07945ecd883057261c4e06d891b9ccd47 merge of the main branch there are e2e test containing Maestro and e2e-detox. The goal is to move the detox test to Maestro in the next pr/commit.

krystofwoldrich avatar Jun 11 '25 15:06 krystofwoldrich