Skip to content
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

Open
wants to merge 9 commits into
base: develop
Choose a base branch
from

Conversation

0Calories
Copy link
Contributor

@0Calories 0Calories commented Aug 29, 2024

Makes some modifications to browser spans:

  • Moves the description of navigation related browser spans into the op, e.g. browser - cache -> browser.cache
  • Sets the description to the performanceEntry objects' names, in this context it is the URL of the page

This change is being made so that these browser spans can be ingested and grouped. Currently, all browser spans are grouped into a singular browser 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.

Copy link
Contributor

github-actions bot commented Aug 29, 2024

size-limit report 📦

Path Size % Change Change
@sentry/browser 22.52 KB - -
@sentry/browser - with treeshaking flags 21.3 KB - -
@sentry/browser (incl. Tracing) 34.81 KB +0.04% +11 B 🔺
@sentry/browser (incl. Tracing, Replay) 71.31 KB +0.02% +9 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 61.76 KB +0.02% +9 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas) 75.65 KB +0.02% +10 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback) 88.43 KB +0.01% +6 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback, metrics) 90.29 KB +0.01% +6 B 🔺
@sentry/browser (incl. metrics) 26.83 KB - -
@sentry/browser (incl. Feedback) 39.66 KB - -
@sentry/browser (incl. sendFeedback) 27.19 KB - -
@sentry/browser (incl. FeedbackAsync) 31.96 KB - -
@sentry/react 25.28 KB - -
@sentry/react (incl. Tracing) 37.78 KB +0.04% +12 B 🔺
@sentry/vue 26.72 KB - -
@sentry/vue (incl. Tracing) 36.68 KB +0.02% +7 B 🔺
@sentry/svelte 22.66 KB - -
CDN Bundle 23.83 KB - -
CDN Bundle (incl. Tracing) 36.57 KB +0.04% +13 B 🔺
CDN Bundle (incl. Tracing, Replay) 71.07 KB +0.02% +8 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) 76.39 KB +0.02% +11 B 🔺
CDN Bundle - uncompressed 69.81 KB - -
CDN Bundle (incl. Tracing) - uncompressed 108.46 KB +0.02% +20 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed 220.33 KB +0.01% +20 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 233.55 KB +0.01% +20 B 🔺
@sentry/nextjs (client) 37.55 KB +0.05% +16 B 🔺
@sentry/sveltekit (client) 35.39 KB +0.06% +19 B 🔺
@sentry/node 121.77 KB - -
@sentry/node - without tracing 93.41 KB - -
@sentry/aws-serverless 103.11 KB - -

View base workflow run

@0Calories 0Calories self-assigned this Aug 29, 2024
@0Calories 0Calories requested review from lforst, a team and andreiborza and removed request for a team August 29, 2024 18:52
@0Calories 0Calories marked this pull request as ready for review August 29, 2024 18:53
@mydea mydea requested a review from Lms24 August 30, 2024 07:24
Copy link
Member

@Lms24 Lms24 left a 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,
Copy link
Member

@Lms24 Lms24 Aug 30, 2024

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?

Copy link
Contributor Author

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.

@lforst
Copy link
Member

lforst commented Aug 30, 2024

@JonasBa In case this lands we need to update the trace gymnastics to also work with browser.request span ops instead of just request.

@JonasBa
Copy link
Member

JonasBa commented Aug 30, 2024

Good thinking @lforst, let me open a PR to support this on sentry.

@0Calories
Copy link
Contributor Author

@lforst @Lms24 is there anything else that needs attention before this can be approved?

Copy link
Member

@Lms24 Lms24 left a 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.

@0Calories
Copy link
Contributor Author

Sounds good! Not in a rush so I will wait for the trace view change before merging this

@JonasBa
Copy link
Member

JonasBa commented Sep 9, 2024

@lforst @0Calories sorry, I was out last week. I'll make the changes today to handle this change

JonasBa added a commit to getsentry/sentry that referenced this pull request Sep 10, 2024
c298lee pushed a commit to getsentry/sentry that referenced this pull request Sep 10, 2024
@lforst
Copy link
Member

lforst commented Sep 19, 2024

I guess we can merge this now?

@lforst
Copy link
Member

lforst commented Sep 19, 2024

Before I forget: Can you prepare a changelog entry in the ## unreleased section that explains this change to users?

@0Calories
Copy link
Contributor Author

Thanks for the reminder! Let me do that now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants