Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 1.8k
meta(changelog): Update changelog for 7.46.0#7666
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
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
9309b3bb830f87dce26c911704a368c2301a2103f35abe629e1af1e6a2bd1e0b58968502d065d2e5d850f6ce5c90fab4030ed4f876162fb846f996eee595847d080dcd330c2f3ba8265849297a0743e9830f2c242974ff1f033ede32675e8b068c68773f180e7a0b1c9619432ccd5f2706438288a25d003a91a621b041139e98330120ae6da3dfde66678a4adc0179ce055f27d98ac5dbb11a2ecefd5231eb271a65c44ec9ecd1521403e77d94a0175e288f5File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| paths-ignore: | ||
| # Our tsconfig files contain comments, which CodeQL complains about | ||
| - '**/tsconfig.json' | ||
| - '**/tsconfig.*.json' |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -4,6 +4,82 @@ | ||
| - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott | ||
| ## 7.46.0 | ||
| ### Important Changes | ||
| - **feat(sveltekit)**: Add Performance Monitoring for SvelteKit | ||
| - feat(sveltekit): Add meta tag for backend -> frontend (#7574) | ||
| - fix(sveltekit): Explicitly export Node SDK exports (#7644) | ||
| - fix(sveltekit): Handle nested server calls in `sentryHandle` (#7598) | ||
| - ref(sveltekit): Split up universal and server load wrappers (#7652) | ||
| This release adds support for Performance Monitoring in our SvelteKit SDK for the client/server. We've also changed how you should initialize your SDK. Please read our updated [SvelteKit README instructions](./packages/sveltekit/README.md) for more details. | ||
| - **feat(core)**: Add `ignoreTransactions` option (#7594) | ||
| You can now easily filter out certain transactions from being sent to Sentry based on their name. | ||
| ```ts | ||
| Sentry.init({ | ||
| ignoreTransactions: ['/api/healthcheck', '/ping'], | ||
| }) | ||
| ``` | ||
| - **feat(node)**: Undici integration (#7582) | ||
| - feat(nextjs): Add Undici integration automatically (#7648) | ||
| - feat(sveltekit): Add Undici integration by default (#7650) | ||
| We've added an integration that automatically instruments [Undici](https://github.com/nodejs/undici) and Node server side fetch. This supports Undici `v4.7.0` or higher and requires Node `v16.7.0` or higher. After adding the integration outgoing requests made by Undici will have associated spans and breadcrumbs in Sentry. | ||
| ```ts | ||
| Sentry.init({ | ||
| integrations: [new Sentry.Integrations.Undici()], | ||
| }) | ||
| ``` | ||
| In our Next.js and SvelteKit SDKs, this integration is automatically added. | ||
| - **feat(node)**: Add Sentry tRPC middleware (#7511) | ||
| We've added a new middleware for [trpc](https://trpc.io/) that automatically adds TRPC information to Sentry transactions. This middleware is meant to be used in combination with a Sentry server integration (Next.js, Express, etc). | ||
| ```ts | ||
| import { initTRPC } from '@trpc/server'; | ||
| import * as Sentry from '@sentry/node'; | ||
| const t = initTRPC.context().create(); | ||
| const sentryMiddleware = t.middleware( | ||
| Sentry.Handlers.trpcMiddleware({ | ||
| attachRpcInput: true, | ||
| }), | ||
| ); | ||
| const sentrifiedProcedure = t.procedure.use(sentryMiddleware); | ||
| ``` | ||
| - **fix(node)**: Convert debugging code to callbacks to fix memory leak in `LocalVariables` integration (#7637) | ||
| This fixes a memory leak in the opt-in [`LocalVariables` integration](https://blog.sentry.io/2023/02/01/local-variables-for-nodejs-in-sentry/), which adds local variables to the stacktraces sent to Sentry. The minimum recommended version to use the `LocalVariables` is now `7.46.0`. | ||
| ### Additional Features and Fixes | ||
| - feat(node): Auto discovery only returns integrations where dependency loads (#7603) | ||
AbhiPrasad marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| - feat(node): Sanitize URLs in Span descriptions and breadcrumbs (PII) (#7667) | ||
| - feat(replay): Add `responseStatus`, `decodedBodySize` to perf entries (#7613) | ||
| - feat(replay): Add experiment to capture request/response bodies (#7589) | ||
| - feat(replay): Capture replay mutation breadcrumbs & add experiment (#7568) | ||
| - feat(tracing): Ensure `pageload` transaction starts at timeOrigin (#7632) | ||
| - fix(core): Remove `abs_path` from stack trace (reverting #7167) (#7623) | ||
| - fix(nextjs): Add loading component type to server component wrapping (#7639) | ||
| - fix(nextjs): Don't report `NEXT_NOT_FOUND` and `NEXT_REDIRECT` errors (#7642) | ||
| - fix(nextjs): Rewrite `abs_path` frames (#7619) | ||
| - fix(nextjs): Show errors and warnings only once during build (#7651) | ||
| - fix(nextjs): Use Next.js internal AsyncStorage (#7630) | ||
| - fix(nextjs): Gracefully handle undefined `beforeFiles` in rewrites (#7649) | ||
| Work in this release contributed by @aldenquimby and @bertho-zero. Thank you for your contributions! | ||
| ## 7.45.0 | ||
AbhiPrasad marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| - build(cdn): Ensure ES5 bundles do not use non-ES5 code (#7550) | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| packages/replay @getsentry/replay-sdk | ||
| packages/replay-worker @getsentry/replay-sdk | ||
| packages/browser-integration-tests/suites/replay @getsentry/replay-sdk |
This file was deleted.
Uh oh!
There was an error while loading. Please reload this page.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,30 +1,35 @@ | ||
| const transaction = Sentry.startTransaction({ name: 'test_transaction_1' }); | ||
| const span_1 = transaction.startChild({ | ||
| op: 'span_1', | ||
| data: { | ||
| foo: 'bar', | ||
| baz: [1, 2, 3], | ||
| }, | ||
| }); | ||
| for (let i = 0; i < 2000; i++); | ||
| async function run() { | ||
| const transaction = Sentry.startTransaction({ name: 'test_transaction_1' }); | ||
| const span_1 = transaction.startChild({ | ||
| op: 'span_1', | ||
| data: { | ||
| foo: 'bar', | ||
| baz: [1, 2, 3], | ||
| }, | ||
| }); | ||
| // span_1 finishes | ||
| span_1.finish(); | ||
| await new Promise(resolve => setTimeout(resolve, 1)); | ||
| // span_2 doesn't finish | ||
| const span_2 = transaction.startChild({ op: 'span_2' }); | ||
| for (let i = 0; i < 4000; i++); | ||
| // span_1 finishes | ||
| span_1.finish(); | ||
| const span_3 = transaction.startChild({ op: 'span_3' }); | ||
| for (let i = 0; i < 4000; i++); | ||
| // span_2 doesn't finish | ||
| const span_2 = transaction.startChild({ op: 'span_2' }); | ||
| await new Promise(resolve => setTimeout(resolve, 1)); | ||
| // span_4 is the child of span_3 but doesn't finish. | ||
| const span_4 = span_3.startChild({ op: 'span_4', data: { qux: 'quux' } }); | ||
| const span_3 = transaction.startChild({ op: 'span_3' }); | ||
| await new Promise(resolve => setTimeout(resolve, 1)); | ||
| // span_5 is another child of span_3 but finishes. | ||
| const span_5 = span_3.startChild({ op: 'span_5' }).finish(); | ||
| // span_4 is the child of span_3 but doesn't finish. | ||
| const span_4 = span_3.startChild({ op: 'span_4', data: { qux: 'quux' } }); | ||
| // span_3 also finishes | ||
| span_3.finish(); | ||
| // span_5 is another child of span_3 but finishes. | ||
| const span_5 = span_3.startChild({ op: 'span_5' }).finish(); | ||
| transaction.finish(); | ||
| // span_3 also finishes | ||
| span_3.finish(); | ||
| transaction.finish(); | ||
| } | ||
| run(); |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.