sentry-javascript icon indicating copy to clipboard operation
sentry-javascript copied to clipboard

feat(nextjs/vercel-edge/cloudflare): Switch to OTEL for performance monitoring

Open lforst opened this issue 1 year ago • 2 comments

This PR is a collection of PRs enabling OTEL tracing for @sentry/nextjs, @sentry/vercel-edge, and by extension @sentry/cloudflare.

Tasks:

  • [x] Make Edge SDK use OTEL (https://github.com/getsentry/sentry-javascript/pull/13742)
  • Switch Next.js SDK over to OTEL tracing
    • [x] Disable incoming HTTP integration: https://github.com/getsentry/sentry-javascript/pull/13918
    • [x] Fork isolation scope for edge centrally: https://github.com/getsentry/sentry-javascript/pull/13919
    • [x] Fork isolation scope for node centrally: https://github.com/getsentry/sentry-javascript/pull/13921
    • App Router
      • [x] Server Components (previously done)
      • [x] Generation Functions (previously done)
      • [x] Route handlers (https://github.com/getsentry/sentry-javascript/pull/13887)
    • Pages Router
      • [ ] Data Fetchers
      • [ ] API Routes
        • Fix span quality upstream: https://github.com/vercel/next.js/pull/70908
        • Future proof: https://github.com/getsentry/sentry-javascript/pull/13904
    • [ ] Automatic server action instrumentation
    • [ ] Rip out build time isolation scope creation
    • [ ] Set up E2E Tests with Turborepo + Next.js Canary to validate all of the above
    • [ ] Double check that any skipped tests are re-added
    • [ ] Validate that we are not sending too much data

lforst avatar Oct 07 '24 11:10 lforst

size-limit report 📦

Path Size % Change Change
@sentry/browser 22.73 KB - -
@sentry/browser - with treeshaking flags 21.53 KB - -
@sentry/browser (incl. Tracing) 35.12 KB - -
@sentry/browser (incl. Tracing, Replay) 71.86 KB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 62.26 KB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 76.21 KB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 88.99 KB - -
@sentry/browser (incl. Tracing, Replay, Feedback, metrics) 90.82 KB - -
@sentry/browser (incl. metrics) 27 KB - -
@sentry/browser (incl. Feedback) 39.87 KB - -
@sentry/browser (incl. sendFeedback) 27.38 KB - -
@sentry/browser (incl. FeedbackAsync) 32.17 KB - -
@sentry/react 25.49 KB - -
@sentry/react (incl. Tracing) 38.09 KB - -
@sentry/vue 26.91 KB - -
@sentry/vue (incl. Tracing) 37.02 KB - -
@sentry/svelte 22.87 KB - -
CDN Bundle 24.11 KB - -
CDN Bundle (incl. Tracing) 36.96 KB - -
CDN Bundle (incl. Tracing, Replay) 71.65 KB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 76.99 KB - -
CDN Bundle - uncompressed 70.7 KB - -
CDN Bundle (incl. Tracing) - uncompressed 109.73 KB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 222.24 KB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 235.46 KB - -
@sentry/nextjs (client) 38.17 KB +0.3% +115 B 🔺
@sentry/sveltekit (client) 35.74 KB - -
@sentry/node 124.96 KB -0.16% -198 B 🔽
@sentry/node - without tracing 94.01 KB -0.26% -247 B 🔽
@sentry/aws-serverless 103.62 KB -0.19% -200 B 🔽

View base workflow run

github-actions[bot] avatar Oct 07 '24 11:10 github-actions[bot]

:x: 1 Tests Failed:

Tests completed Failed Passed Skipped
627 1 626 37
View the top 1 failed tests by shortest run time
server-components.test.ts Sends a transaction for a request to app router
Stack Traces | 0.464s run time
server-components.test.ts:4:5 Sends a transaction for a request to app router

To view individual test run time comparison to the main branch, go to the Test Analytics Dashboard

codecov[bot] avatar Oct 10 '24 08:10 codecov[bot]