feat(browser)!: Extract interaction spans into new interactionsIntegration - #23295
Conversation
|
bugbot run |
size-limit report 📦
|
fb1b1ca to
f64077e
Compare
1 similar comment
718ec12 to
b695d9d
Compare
…ration` Interaction spans (`ui.action.click` idle spans and `ui.interaction.click` event-timing spans) are no longer part of `browserTracingIntegration`. They move into a standalone, opt-in `interactionsIntegration`. The experimental `_experiments.enableInteractions` option is removed. As it was the only experimental option, `browserTracingIntegration` no longer accepts an `_experiments` object at all. The `idleTimeout`, `finalTimeout` and `childSpanTimeout` options for interaction spans are configured on the new integration instead of being inherited, using the same defaults. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
b695d9d to
9b4b744
Compare
| Sentry.init({ | ||
| traceLifecycle: 'static', | ||
| dsn: 'https://public@dsn.ingest.sentry.io/1337', | ||
| integrations: [Sentry.browserTracingIntegration({ enableLongTask: false })], |
There was a problem hiding this comment.
q: why did we add this option?
There was a problem hiding this comment.
was a leftover from before. removed.
| * Captures user interactions as spans. | ||
| * | ||
| * Clicks that happen outside of an in-progress pageload or navigation start an idle `ui.action.click` span, |
There was a problem hiding this comment.
| * Captures user interactions as spans. | |
| * | |
| * Clicks that happen outside of an in-progress pageload or navigation start an idle `ui.action.click` span, | |
| * Captures user interactions as spans. | |
| * | |
| * Important: This integration is considered experimental and might lead to noisy spans. Use at your own risk. | |
| * | |
| * | |
| * Clicks that happen outside of an in-progress pageload or navigation start an idle `ui.action.click` span, |
| function trackRoute(span: Span): void { | ||
| const { name, attributes } = spanToJSON(span); | ||
| latestRoute.name = name; | ||
| latestRoute.source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] as TransactionSource | undefined; |
There was a problem hiding this comment.
We should read both source attributes (from conventions) for now but #23368 will likely make SENTRY_SOURCE obsolete in a bit.
| latestRoute.source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] as TransactionSource | undefined; | |
| latestRoute.source = (attributes[SENTRY_SOURCE] || attributes[SENTRY_SEGMENT_NAME_SOURCE]) as TransactionSource | undefined; |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 317c345. Configure here.
…ration` (#23295) ## What This extracts interaction spans into a new opt-in (standalone) `interactionsIntegration`. ```js // before Sentry.browserTracingIntegration({ _experiments: { enableInteractions: true } }); // after [Sentry.browserTracingIntegration(), Sentry.interactionsIntegration()]; ``` ## Why Interaction idle spans have been experimental since v7. We don't expect to promote them to stable, but they still cost bundle size for every user of `browserTracingIntegration`. closes #22353 --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

What
This extracts interaction spans into a new opt-in (standalone)
interactionsIntegration.Why
Interaction idle spans have been experimental since v7. We don't expect to promote them to stable, but they still cost bundle size for every user of
browserTracingIntegration.closes #22353