-
-
Notifications
You must be signed in to change notification settings - Fork 7
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
rfc(decision): mobile-transactions-and-spans #118
Conversation
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.
👍 left two comments, but this gon be gud
In Sentry, we need pick apart these special transactions (that we shouldn’t consider as such anymore, maybe use `transaction->transaction_info->source` to identify carrier transaction) and only use their content, which are the spans we measured. | ||
|
||
TBD: | ||
* How can we ensure that spans are packaged up efficiently, ultimately creating not to little and not too many web requests. |
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.
I think not a high prio thing to figure out, since eventually it will be Span Ingest.
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.
I vote for option 1. LGTM.
- Any manually added / background work spans (e.g. a long running sync) could extend the transaction lifetime, which could result in overlapping transactions | ||
- We need new (manual) APIs to track the current screen | ||
|
||
### 3. Leave it as-is |
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.
IMO, this is not an option cause we miss adding auto-instrumented spans to transactions.
|
||
- The transaction duration still makes no sense, as it’s length is determined by the time the screen was visible. Also probably needs a max timeout again too | ||
- Any manually added / background work spans (e.g. a long running sync) could extend the transaction lifetime, which could result in overlapping transactions | ||
- We need new (manual) APIs to track the current screen |
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.
This won't work with multiple screens. Furthermore, this most likely won't work properly for declarative UI frameworks such as Compose or SwiftUI, where identifying the current screen is a challenge.
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 🚀
+1 for option 1)
TBD: | ||
* How can we ensure that spans are packaged up efficiently, ultimately creating not to little and not too many web requests. | ||
* As of now, some performance grouping is done based on transactions op and description. With this change they will simply act as carieers, so we need to ensure the span context has enough information that aggregation (e.g. by screen) can still be performed. | ||
* Profiles are right now captured based on transaction start signals, we need to find a reliable way to keep the remaining functionality. |
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.
this is a useful callout about Profiling - note that this discussion already happens internally and is not part of the RFC
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.
fwiw all of these directly apply to pageload transactions for browser js as well, but we can tackle that separately
Co-authored-by: Philipp Hofmann <[email protected]> Co-authored-by: Daniel Griesser <[email protected]> Co-authored-by: Abhijeet Prasad <[email protected]>
This RFC proposes how transaction and spans are used on mobile platforms.
Rendered RFC