Report pre-warmed app starts
:scroll: Description
Report pre-warmed app starts by dropping the first app start spans if pre-warming paused during these steps. This approach will shorten the app start duration, but it represents the duration a user has to wait after clicking the app icon until the app is responsive. We report the app start type in the appContext, so Sentry can make changes to the UI for prewarmed app starts.
Normal app start with all spans

Pre-warmed with dropped spans

App Context

:bulb: Motivation and Context
Fixes GH-1897
:green_heart: How did you test it?
Unit tests and simulators
:pencil: Checklist
- [x] I reviewed the submitted code
- [x] I added tests to verify the changes
- [ ] I updated the docs if needed
- [x] Review from the native team if needed
- [x] No breaking changes
:crystal_ball: Next steps
Please don't merge yet, waiting for a green light that pre-warmed app starts are searchable in discover.
Blocked by https://github.com/getsentry/sentry/issues/36927
This pull request has gone three weeks without activity. In another week, I will close it.
But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!
"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀
Performance metrics :rocket:
| Plain | With Sentry | Diff | |
|---|---|---|---|
| Startup time (ms) | 1215.39 | 1237.80 | 22.41 |
| Size (bytes) | 21157 | 331395 | 310238 |
This pull request has gone three weeks without activity. In another week, I will close it.
But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!
"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀
Performance metrics :rocket:
| Plain | With Sentry | Diff | |
|---|---|---|---|
| Startup time | 1208.16 ms | 1220.71 ms | 12.55 ms |
| Size | 20.75 KiB | 369.28 KiB | 348.52 KiB |
Baseline results on branch: master
Startup times
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 347a8e9283b68c324cdd87978f84033339ccfc4e | 1243.50 ms | 1265.90 ms | 22.40 ms |
| 8b040e4b6faf9a16fa9264e43280c412016bb705 | 1234.76 ms | 1244.71 ms | 9.95 ms |
| bdfccaaf7ec472bda6f92604edde3a1858c5e41f | 1202.83 ms | 1228.96 ms | 26.13 ms |
| 075911d74eb91917fb88910bf871cd65d834f7fd | 1256.73 ms | 1271.22 ms | 14.49 ms |
| 5025d2e2643a41b83ce05711508ca9f77caa8eb8 | 1248.52 ms | 1251.72 ms | 3.20 ms |
| 4a0c2822a7cd9f2ff56a4200af04533585b0a2cc | 1228.60 ms | 1250.74 ms | 22.14 ms |
| d73ebd013ca8f9e0edc952b36adb6f8a46b5541e | 1200.83 ms | 1236.10 ms | 35.27 ms |
| c2a9b600dd98bb34fc25bdb421a05a1fc853c6a9 | 1222.10 ms | 1240.62 ms | 18.52 ms |
| 5025d2e2643a41b83ce05711508ca9f77caa8eb8 | 1245.14 ms | 1268.58 ms | 23.44 ms |
| 6177f2ddf6adfc0d15e7343689c48b80eb88476d | 1206.55 ms | 1226.20 ms | 19.65 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 347a8e9283b68c324cdd87978f84033339ccfc4e | 20.51 KiB | 333.16 KiB | 312.65 KiB |
| 8b040e4b6faf9a16fa9264e43280c412016bb705 | 20.50 KiB | 333.54 KiB | 313.04 KiB |
| bdfccaaf7ec472bda6f92604edde3a1858c5e41f | 20.50 KiB | 361.80 KiB | 341.29 KiB |
| 075911d74eb91917fb88910bf871cd65d834f7fd | 20.51 KiB | 332.90 KiB | 312.39 KiB |
| 5025d2e2643a41b83ce05711508ca9f77caa8eb8 | 20.51 KiB | 331.79 KiB | 311.28 KiB |
| 4a0c2822a7cd9f2ff56a4200af04533585b0a2cc | 20.51 KiB | 333.10 KiB | 312.60 KiB |
| d73ebd013ca8f9e0edc952b36adb6f8a46b5541e | 20.50 KiB | 365.18 KiB | 344.68 KiB |
| c2a9b600dd98bb34fc25bdb421a05a1fc853c6a9 | 20.50 KiB | 333.54 KiB | 313.04 KiB |
| 5025d2e2643a41b83ce05711508ca9f77caa8eb8 | 20.51 KiB | 331.79 KiB | 311.28 KiB |
| 6177f2ddf6adfc0d15e7343689c48b80eb88476d | 20.51 KiB | 332.90 KiB | 312.40 KiB |
Previous results on branch: fix/report-prewarmed-app-starts
Startup times
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 6cf9be67aef2849b1b02261fb45939a0bfd2a043 | 1216.21 ms | 1247.00 ms | 30.79 ms |
| f8f4884496fff2f8ffc39c9d3d7b8be24bedae1a | 1189.00 ms | 1233.60 ms | 44.60 ms |
| 8136d66d39dedd7e41592c99fc9f756d3311288c | 1239.44 ms | 1266.82 ms | 27.38 ms |
| 55ab513ff0122772c16def9f345fa01c47625cf6 | 1219.20 ms | 1254.55 ms | 35.35 ms |
| 58f341581c8fb26cf527ba4335642d7b5078ac76 | 1235.48 ms | 1265.36 ms | 29.88 ms |
| 746f90b7cad524f6a4d5fa2ae439cc3c0303e3ae | 1235.90 ms | 1250.02 ms | 14.12 ms |
| 54bfce412960e79bb79865dfec5eae4bba18da47 | 1245.84 ms | 1271.64 ms | 25.80 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 6cf9be67aef2849b1b02261fb45939a0bfd2a043 | 20.75 KiB | 369.27 KiB | 348.52 KiB |
| f8f4884496fff2f8ffc39c9d3d7b8be24bedae1a | 20.75 KiB | 369.18 KiB | 348.42 KiB |
| 8136d66d39dedd7e41592c99fc9f756d3311288c | 20.75 KiB | 369.18 KiB | 348.43 KiB |
| 55ab513ff0122772c16def9f345fa01c47625cf6 | 20.75 KiB | 369.28 KiB | 348.52 KiB |
| 58f341581c8fb26cf527ba4335642d7b5078ac76 | 20.75 KiB | 369.27 KiB | 348.52 KiB |
| 746f90b7cad524f6a4d5fa2ae439cc3c0303e3ae | 20.75 KiB | 369.18 KiB | 348.42 KiB |
| 54bfce412960e79bb79865dfec5eae4bba18da47 | 20.75 KiB | 368.59 KiB | 347.84 KiB |