-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
ref(browser): Move navigation span descriptions into op #13527
Conversation
size-limit report 📦
|
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.
The op change looks fine to me! I'm concerned about the raw URLs in the span descriptions but primarily I want to make sure we're aware of the implications (see my comment)
op: 'browser', | ||
name: name || event, | ||
op: `browser.${name || event}`, | ||
name: entry.name, |
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.
m: assigning the URL here makes the span name become high-cardinality. Are we aware of this? Does it have impact on Relay/grouping/etc? These are unparameterized, raw URLs. I assume they not only contain path parameters but also potentially query and hash params. We generally tried to stay as far away as possible from this because historically, it always led to problems (e.g. dynamic sampling consistency, transaction name grouping)
The raw urls can also contain all kinds of tokens and ids.
I'm not 100% against changing this, I just want to make sure we're aware of the implications.
I guess an alternative would be to just describe a bit what this span is doing?
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.
Hi Lukas, a very valid point but it's something we are aware of! There's currently no grouping in Relay for browser spans, so the cardinality will not be an issue. However, we already have the functionality available to scrub/parameterize URLs, which we use for resource and HTTP spans, for example. My next step is to update Relay to scrub these browser spans so they can be grouped safely.
Putting something different and low cardinality in the description would not be as useful, since we'd be losing a lot of details when looking at the span summary.
@JonasBa In case this lands we need to update the trace gymnastics to also work with |
Good thinking @lforst, let me open a PR to support this on sentry. |
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.
Sorry for the wait @0Calories! I think technically this is ready to go (so I'll ✅ it) but before we merge this: @JonasBa can you give us a timeline on the necessary trace view change? Ideally we make this a seamless transition.
Sounds good! Not in a rush so I will wait for the trace view change before merging this |
@lforst @0Calories sorry, I was out last week. I'll make the changes today to handle this change |
Add reparenting support for the incoming renaming change in getsentry/sentry-javascript#13527
Add reparenting support for the incoming renaming change in getsentry/sentry-javascript#13527
I guess we can merge this now? |
Before I forget: Can you prepare a changelog entry in the |
Thanks for the reminder! Let me do that now |
Makes some modifications to
browser
spans:browser
spans into the op, e.g.browser - cache
->browser.cache
performanceEntry
objects'names
, in this context it is the URL of the pageThis change is being made so that these
browser
spans can be ingested and grouped. Currently, all browser spans are grouped into a singularbrowser
span, despite each of the operations that these span represent doing very different things.This will improve the experience in the Spans tab of transaction summary and span summary, since we will be able to have proper groupings for
browser
spans.