-
Notifications
You must be signed in to change notification settings - Fork 5k
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
refactor: add performance tracing infrastructure #26044
refactor: add performance tracing infrastructure #26044
Conversation
Simplify Sentry logic. Improve Sentry logging. Fix toggle timings.
Add Sentry buttons in developer options.
Include type in log message.
Add local timings. Move internal messages to separte logger.
Pass span to callback.
Remove package script duplication.
Notes: to update the document for sentry debugging: |
Update README. Rename type.
Builds ready [3e09194]
Page Load Metrics (305 ± 285 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Reduce sample rate. Extend README. Rename shared file.
Quality Gate passedIssues Measures |
Builds ready [f1895b6]
Page Load Metrics (63 ± 8 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Missing release label release-12.2.0 on PR. Adding release label release-12.2.0 on PR and removing other release labels(release-12.4.0), as PR was cherry-picked in branch 12.2.0. |
Description
Add initial tracing and performance metrics infrastructure.
Specifically:
trace
method, to be used anywhere in the client to generate a Sentry trace to monitor and analyse performance metrics.Sentry.browserTracingIntegration
to automatically generate traces for each page navigation, including nested spans for any HTTP requests.README
.Note that the previously used
browserProfilingIntegration
does not generate transactions or traces itself, but rather attempts to add profiling data to any generated transactions. This does not appear to be compatible given it requires the Self-Profiling API object which is only available in Chrome and in our case, the UI. In addition, it requires thejs-profiling
document policy which also appears to currently not be supported in browser extensions.Sentry also provides React specific automated instrumentation via
@sentry/react
and theSentry.reactRouterV5BrowserTracingInstrumentation
integration, but this should be pursued in a separate ticket if needed given the required further refactor.Related issues
Fixes: #2711
Manual testing steps
Traces
orPerformance
section.popup.html
with nested spans including HTTP requests.Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist