-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
feat(apm): Transactions view v1 #14225
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
c48f2fe to
c1b3039
Compare
src/sentry/static/sentry/app/views/organizationEventsV2/eventModalContent.jsx
Outdated
Show resolved
Hide resolved
e08d532 to
b8815d9
Compare
src/sentry/static/sentry/app/views/organizationEventsV2/eventModalContent.jsx
Outdated
Show resolved
Hide resolved
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.
would showDetail be a bit clearer / more in line with showSpanTree?
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.
@lynnagara I don't quite follow; are you suggesting to rename showDetail to showSpanTree? 🤔
If so, it would be the wrong name since span-descendants aren't displayed within the span detail component.
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.
Haha no sorry, I thought showDetail might be better than displayDetail, since we use the show- prefix with the span tree stuff
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.
Done in 3dac2a6
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/span.tsx
Outdated
Show resolved
Hide resolved
b9476c5 to
6795cc8
Compare
|
This PR is somewhat ready for review. The last few remaining tasks entails reorganizing, refactoring, and splitting up files. |
lynnagara
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.
I had a very quick glance but it's quite a large PR. If time permits, it could be nice to split this into smaller, easier to review chunks with tests and more documentation/comments. It'd also be nice to have a Percy test so it's easier for reviewers to spot the visual changes in these new screens.
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.
data-test-id prefix should only be used in tests and was mentioned previously that it might one day be stripped as part of the build process
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.
Also, why do we need to use querySelectorAll to select the element? Can't we pass the refs or something like that?
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.
@lynnagara I refactored to make use of refs here 5a8bb7f
...entry/static/sentry/app/views/organizationEventsV2/transactionView/dividerHandlerManager.tsx
Outdated
Show resolved
Hide resolved
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.
Would be nice to have some docs and tests on some of these functions
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/utils.tsx
Outdated
Show resolved
Hide resolved
|
@lynnagara Kudos for taking a look over this PR 👏 ; I really appreciate it. I agree that this PR has gotten longer than I had anticipated. 😞 I'll see if I can split this PR into two parts. |
3f47d07 to
846c4f5
Compare
...entry/static/sentry/app/views/organizationEventsV2/transactionView/dividerHandlerManager.tsx
Outdated
Show resolved
Hide resolved
...entry/static/sentry/app/views/organizationEventsV2/transactionView/dividerHandlerManager.tsx
Show resolved
Hide resolved
| document.body.style.userSelect = 'none'; | ||
| this.previousUserSelect = setBodyUserSelect({ | ||
| userSelect: 'none', | ||
| MozUserSelect: 'none', |
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.
Why is M capitalized for Moz but not ms?
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.
@markstory Good question. I had to look this up to double check.
I got this from https://stackoverflow.com/a/31998812
Vendor prefixes other than
msshould begin with a capital letter.
| } | ||
| default: { | ||
| const _exhaustiveCheck: never = bounds; | ||
| return _exhaustiveCheck; |
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.
Should this be an exception?
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.
@markstory it doesn't need to be.
I didn't add one because this file is consumed only by other typescript files. So we defer to the TS engine to ensure we've added all necessary the cases for the switch statement. This relies on --strictNullChecks being enabled.
AFAIK, there are two documented ways to do exhaustive checks for switch-case: https://www.typescriptlang.org/docs/handbook/advanced-types.html#exhaustiveness-checking
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/minimap.tsx
Outdated
Show resolved
Hide resolved
| position: sticky; | ||
| left: 0; | ||
| top: 0; | ||
| z-index: 99999999999; |
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.
Could we use theme.zIndex here?
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've decided to collate the z-indices locally 3fe6709
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/spanBar.tsx
Show resolved
Hide resolved
| margin-right: 8px; | ||
| z-index: 99999; |
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 place we should use theme.zIndex.
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've decided to collate the z-indices locally 3fe6709
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/utils.tsx
Outdated
Show resolved
Hide resolved
|
Is netlify preview working? Would be useful for this one |
lynnagara
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.
Can we share any renderSpan code between spanTree vs minimap? Looks very similar at a glance.
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/traceView.tsx
Outdated
Show resolved
Hide resolved
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/spanTree.tsx
Outdated
Show resolved
Hide resolved
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/spanTree.tsx
Outdated
Show resolved
Hide resolved
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/spanTree.tsx
Outdated
Show resolved
Hide resolved
src/sentry/static/sentry/app/views/organizationEventsV2/transactionView/spanTree.tsx
Outdated
Show resolved
Hide resolved
| const results = this.renderSpan({ | ||
| spanNumber: acc.nextSpanNumber, | ||
| treeDepth: treeDepth + 1, | ||
| numOfHiddenSpansAbove: acc.numOfHiddenSpansAbove, |
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.
What is a "hidden" span?
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.
17020b4 to
d6322d9
Compare
|
@lynnagara I'm unsure how to access events v2 from sentry-test org in netlify. It doesn't seem possible. Regarding Thanks for the feedback 👍 |
…ctionView/dividerHandlerManager.tsx Co-Authored-By: Mark Story <[email protected]>
9b973bc to
d3b87d2
Compare

Continuation of #13920
NOTES
this PR revises the transaction view to be a two column split-view as per Crissy's updated designs (SEN-866)
transactions with no descendant spans are now properly displayed (SEN-873)
for transaction events, the events interfaces within the eventsv2 modal are replaced with only the transaction view component
design is still influx; don't be surprised that there are no tests.
TODO
add in Billy's feedback from feat(apm): Initial transactions view #13920
expanded span detail
span title tree (first column)
overhaul the minimap (with panning)
span bar error visual cue for non-top-level span (needs a test case)
warning: start/end timestamp are equal
warning: start/end timestamp are reversed
drag view window (without changing its window size)
select window size by dragging mouse cursor along the minimap
reorg files
bug: minimap view handles do not show in firefox (this entails converting svg elements to divs)
span bar specialization for equal timestamps + warning
guarantee trace end timestamp
it'll be cool to have this PR in feat(eventsv2) Remove transactionSlug and groupSlug #14257
showDetailvariable namespan duration text placement.
add all the docs.
Deferred to a followup PR
Closes SEN-866
Closes SEN-873