-
-
Notifications
You must be signed in to change notification settings - Fork 375
feat: Time to initial and full display #2724
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
philipphofmann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass; I don't understand the purpose of the middleware thingy. I think it would be best to discuss this over a call. There are also plenty of conflicts to resolve, so I didn't look at the tracer yet.
Samples/iOS-Swift/iOS-Swift/ViewControllers/TraceTestViewController.swift
Outdated
Show resolved
Hide resolved
Instructions and example for changelogPlease add an entry to Example: ## Unreleased
- Time to initial and full display ([#2724](https://github.com/getsentry/sentry-cocoa/pull/2724))If none of the above apply, you can opt out of this check by adding |
Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| d40512b | 1231.12 ms | 1244.54 ms | 13.42 ms |
| 45d3ca5 | 1238.53 ms | 1263.09 ms | 24.55 ms |
| 8f397a7 | 1230.10 ms | 1253.88 ms | 23.77 ms |
| cd3bfeb | 1226.61 ms | 1226.96 ms | 0.35 ms |
| c9724f9 | 1199.38 ms | 1229.54 ms | 30.16 ms |
| 4259afd | 1222.12 ms | 1249.74 ms | 27.62 ms |
| bd2afa6 | 1241.37 ms | 1246.20 ms | 4.83 ms |
| 6ad07ae | 1240.76 ms | 1242.98 ms | 2.22 ms |
| 28333b6 | 1247.29 ms | 1262.51 ms | 15.22 ms |
| d253cdf | 1231.61 ms | 1259.52 ms | 27.91 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| d40512b | 20.76 KiB | 427.77 KiB | 407.00 KiB |
| 45d3ca5 | 20.76 KiB | 427.54 KiB | 406.78 KiB |
| 8f397a7 | 20.76 KiB | 420.55 KiB | 399.79 KiB |
| cd3bfeb | 20.76 KiB | 425.77 KiB | 405.01 KiB |
| c9724f9 | 20.76 KiB | 427.66 KiB | 406.90 KiB |
| 4259afd | 20.76 KiB | 419.70 KiB | 398.94 KiB |
| bd2afa6 | 20.76 KiB | 420.55 KiB | 399.79 KiB |
| 6ad07ae | 20.76 KiB | 424.69 KiB | 403.93 KiB |
| 28333b6 | 20.76 KiB | 424.69 KiB | 403.93 KiB |
| d253cdf | 20.76 KiB | 427.66 KiB | 406.90 KiB |
Previous results on branch: feat/ttid-ttfd
Startup times
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 3bbaf5d | 1229.64 ms | 1256.92 ms | 27.28 ms |
| b90ad7d | 1239.96 ms | 1246.66 ms | 6.70 ms |
| f3085b3 | 1221.69 ms | 1232.10 ms | 10.41 ms |
| ea900f3 | 1219.27 ms | 1247.30 ms | 28.03 ms |
| 0af4650 | 1231.40 ms | 1250.98 ms | 19.58 ms |
| 54097aa | 1252.80 ms | 1259.18 ms | 6.38 ms |
| 007489f | 1206.54 ms | 1224.50 ms | 17.96 ms |
| 626a0cf | 1235.69 ms | 1247.00 ms | 11.31 ms |
| b9c94c1 | 1235.56 ms | 1250.86 ms | 15.30 ms |
| ac724bb | 1238.30 ms | 1262.42 ms | 24.12 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 3bbaf5d | 20.76 KiB | 428.19 KiB | 407.42 KiB |
| b90ad7d | 20.76 KiB | 429.70 KiB | 408.94 KiB |
| f3085b3 | 20.76 KiB | 430.33 KiB | 409.57 KiB |
| ea900f3 | 20.76 KiB | 428.20 KiB | 407.43 KiB |
| 0af4650 | 20.76 KiB | 428.91 KiB | 408.14 KiB |
| 54097aa | 20.76 KiB | 431.97 KiB | 411.21 KiB |
| 007489f | 20.76 KiB | 430.24 KiB | 409.48 KiB |
| 626a0cf | 20.76 KiB | 429.24 KiB | 408.48 KiB |
| b9c94c1 | 20.76 KiB | 428.71 KiB | 407.94 KiB |
| ac724bb | 20.76 KiB | 431.96 KiB | 411.20 KiB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another pass, lets have a chat about my proposal for changing and renaming the protocols #2724 (comment) via a call.
Co-authored-by: Philipp Hofmann <[email protected]>
armcknight
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a lot of good stuff in here, nice work fleshing out the implementation. I left a bunch of suggestions you can hopefully take up easily to align some names to improve searchability for later maintainers.
I do have some questions around how types are being used. And I don't think we should move forward with the tracer extension concept. That should wait on discussion in the related issue and be saved for a later PR.
Co-authored-by: Andrew McKnight <[email protected]>
philipphofmann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another pass, I still have a couple of files to go, but I will do that tomorrow. This is turning into something great 👍 😃
Tests/SentryTests/Integrations/Performance/FramesTracking/SentryFramesTrackerTests.swift
Show resolved
Hide resolved
...s/SentryTests/Integrations/Performance/UIViewController/SentryTimeToDisplayTrackerTest.swift
Show resolved
Hide resolved
philipphofmann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Almost done. It could be that we have a retain cycle, but it could also be that I'm wrong.
philipphofmann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, ship it 😃 🚀
| #endif | ||
|
|
||
| #if os(iOS) || os(tvOS) || targetEnvironment(macCatalyst) | ||
| func testReportFullyDisplayed() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💯
📜 Description
A new Span is created to track time for initial display in automatic
UIViewControllerperformance tracking.A new API was added to
SentrySDKwhere users may report a full display. This is meant to be called when the view controller content is fully loaded and ready to be used.💡 Motivation and Context
Adding more information during view controller life cycle
💚 How did you test it?
Unit tests
📝 Checklist
You have to check all boxes before merging:
sendDefaultPIIis enabled.🔮 Next steps