Skip to content

perf(node): Short circuit flushing on Vercel only for Vercel - #15734

Merged
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation
Mar 21, 2025
Merged

perf(node): Short circuit flushing on Vercel only for Vercel#15734
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation

Conversation

@lforst

@lforstlforst commented Mar 19, 2025

Copy link
Copy Markdown
Contributor

Only adds the HttpInstrumentation that is supposed to flush for Vercel when we are on Vercel. Should reduce some overhead.

Also adds a bit more explanation because of #15602 (comment)

@lforst
lforst requested a review from mydeaMarch 19, 2025 12:52
@lforst
lforst marked this pull request as ready for review March 19, 2025 12:52

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good 👍
Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

@lforst

Copy link
Copy Markdown
ContributorAuthor

Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

Actually, let me do this in this PR directly 👍 separation of concern wise I don't like it too much but for now it makes sense.

@lforstlforst changed the title docs(node): Add explanation for second http instrumentationperf(node): Short circuit flushing on Vercel only for VercelMar 20, 2025
@lforst
lforst requested a review from mydeaMarch 20, 2025 09:48
@lforst
lforst merged commit f4cd540 into developMar 21, 2025
@lforst
lforst deleted the lforst-explanation-for-second-http-instrumentation branch March 21, 2025 08:13
mergifyBot added a commit to reisene/HulajDusza-serwis that referenced this pull request Apr 17, 2025
![snyk-io[bot]](https://badgen.net/badge/icon/snyk-io%5Bbot%5D/green?label=)
![Contributor](https://badgen.net/badge/icon/Contributor/000000?label=)
[<img width="16" alt="Powered by Pull Request Badge"
src="https://user-images.githubusercontent.com/1393946/111216524-d2bb8e00-85d4-11eb-821b-ed4c00989c02.png">](https://pullrequestbadge.com/?utm_medium=github&utm_source=reisene&utm_campaign=badge_info)<!--
PR-BADGE: PLEASE DO NOT REMOVE THIS COMMENT -->
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)
<h3>Snyk has created this PR to upgrade @sentry/browser from 9.7.0 to
9.9.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **24 days ago**.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>9.9.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.9.0">2025-03-24</a></br><h3>Important
Changes</h3>
<ul>
<li>
<p><strong>feat(nextjs): Support <code>instrumentation-client.ts</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15705"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15705/hovercard">#15705</a>)</strong></p>
<p>Next.js recently added a feature to support <a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/clientInstrumentationHook"
rel="nofollow">client-side (browser) instrumentation via the
<code>experimental.clientInstrumentationHook</code> flag and the
<code>instrumentation-client.ts</code> file</a>.</p>
<p>To be forwards compatible, the Sentry Next.js SDK will now pick up
<code>instrumentation-client.ts</code> files even on older Next.js
versions and add them to your client bundles.<br>
It is suggested that you either rename your
<code>sentry.client.config.ts</code> file to
<code>instrumentation-client.ts</code>, or if you already happen to have
a <code>instrumentation-client.ts</code> file move the contents of
<code>sentry.client.config.ts</code> to
<code>instrumentation-client.ts</code>.</p>
</li>
<li>
<p><strong>feat(browser): Add <code>previous_trace</code> span links (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15569"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15569/hovercard">#15569</a>)</strong></p>
<p>The <code>@ sentry/browser</code> SDK and SDKs based on <code>@
sentry/browser</code> now emits a link from the first root span of a
newly started trace to the root span of a previously started trace. You
can control this feature via an option in
<code>browserTracingIntegration()</code>:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here'
integrations: [
Sentry.browserTracingIntegration({
// Available settings:
// - 'in-memory' (default): Stores previous trace information in memory
// - 'session-storage': Stores previous trace information in the
browser's `sessionStorage`
// - 'off': Disable storing and sending previous trace information
linkPreviousTrace: 'in-memory',
}),
],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span>
<span class="pl-s1">integrations</span>: <span class="pl-kos">[</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">browserTracingIntegration</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c">// Available settings:</span>
<span class="pl-c">// - 'in-memory' (default): Stores previous trace
information in memory</span>
<span class="pl-c">// - 'session-storage': Stores previous trace
information in the browser's `sessionStorage`</span>
<span class="pl-c">// - 'off': Disable storing and sending previous
trace information</span>
<span class="pl-c1">linkPreviousTrace</span>: <span
class="pl-s">'in-memory'</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">,</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
</li>
<li>
<p><strong>feat(browser): Add <code>logger.X</code> methods to browser
SDK (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15763"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15763/hovercard">#15763</a>)</strong></p>
<p>For Sentry's <a
href="https://redirect.github.com/getsentry/sentry/discussions/86804">upcoming
logging product</a>, the SDK now supports sending logs via dedicated</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here',
_experiments: {
enableLogs: true, // This is required to use the logging features
},
});
Sentry.logger.info('This is a trace message', { userId: 123 });
// See PR for better documentation"><pre><span
class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">init</span><span class="pl-kos">(</span><span
class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span><span class="pl-kos">,</span>
<span class="pl-c1">_experiments</span>: <span class="pl-kos">{</span>
<span class="pl-c1">enableLogs</span>: <span
class="pl-c1">true</span><span class="pl-kos">,</span> <span
class="pl-c">// This is required to use the logging features</span>
<span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-c1">logger</span><span class="pl-kos">.</span><span
class="pl-en">info</span><span class="pl-kos">(</span><span
class="pl-s">'This is a trace message'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">userId</span>: <span class="pl-c1">123</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-c">// See PR for better documentation</span></pre></div>
<p>Please note that the logs product is still in early access. See the
link above for more information.</p>
</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Attach host as part of error message to "Failed to
fetch" errors (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15729"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15729/hovercard">#15729</a>)</li>
<li>feat(core): Add <code>parseStringToURL</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15768"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15768/hovercard">#15768</a>)</li>
<li>feat(core): Optimize <code>dropUndefinedKeys</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15760"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15760/hovercard">#15760</a>)</li>
<li>feat(node): Add fastify <code>shouldHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15771"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15771/hovercard">#15771</a>)</li>
<li>fix(nuxt): Delete no longer needed Nitro 'close' hook (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15790"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15790/hovercard">#15790</a>)</li>
<li>perf(nestjs): Remove usage of <code>addNonEnumerableProperty</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15766"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15766/hovercard">#15766</a>)</li>
<li>ref: Avoid some usage of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15757"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15757/hovercard">#15757</a>)</li>
<li>ref: Remove some usages of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15781"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15781/hovercard">#15781</a>)</li>
<li>ref(nextjs): Fix Next.js vercel-edge runtime package information (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15789"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15789/hovercard">#15789</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.21 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.01 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.62 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.79 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>67.12 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.85 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.63 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.44 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.3 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.25 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.43 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.63 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.62 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.83 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.59 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.84 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>232.41 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.81 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>37.03 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.61 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.36 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.8.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.8.0">2025-03-21</a></br><ul>
<li>feat(node): Implement new continuous profiling API spec (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15635"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15635/hovercard">#15635</a>)</li>
<li>feat(profiling): Add platform to chunk envelope (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15758"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15758/hovercard">#15758</a>)</li>
<li>feat(react): Export captureReactException method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15746"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15746/hovercard">#15746</a>)</li>
<li>fix(node): Check for <code>res.end</code> before passing to Proxy
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15776"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15776/hovercard">#15776</a>)</li>
<li>perf(core): Add short-circuits to <code>eventFilters</code>
integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15752"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15752/hovercard">#15752</a>)</li>
<li>perf(node): Short circuit flushing on Vercel only for Vercel (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15734"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15734/hovercard">#15734</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.51 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.15 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.71 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.73 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.1 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.26 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.53 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.04 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.33 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.52 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.38 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.41 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.61 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.68 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.06 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.32 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.88 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.56 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.76 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.65 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.04 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.41 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.7.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.7.0">2025-03-20</a></br><ul>
<li>feat(core): Add <code>captureLog</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15717"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15717/hovercard">#15717</a>)</li>
<li>feat(remix/cloudflare): Export <code>sentryHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15726"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15726/hovercard">#15726</a>)</li>
<li>fix(node): Always flush on Vercel before Lambda freeze (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15602"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15602/hovercard">#15602</a>)</li>
<li>fix(node): Ensure incoming traces are propagated without
HttpInstrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15732"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15732/hovercard">#15732</a>)</li>
<li>fix(node): Use <code>fatal</code> level for unhandled rejections in
<code>strict</code> mode (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15720"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15720/hovercard">#15720</a>)</li>
<li>fix(nuxt): Delete Nuxt server template injection (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15749"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15749/hovercard">#15749</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.28 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.09 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.33 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.5 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.93 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.13 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.69 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.7 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.08 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.23 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.02 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.3 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.49 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.37 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.57 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.56 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>107.94 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.2 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.77 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.52 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.73 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.62 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.01 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.37 KB</td>
</tr>
</tbody>
</table>
</li>
</ul>
from <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
---
> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.
---
**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._
**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJjNzI0M2IxOS0yMmVlLTQ5NWItYWJhMS02YjJlOGVhY2FlYjYiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImM3MjQzYjE5LTIyZWUtNDk1Yi1hYmExLTZiMmU4ZWFjYWViNiJ9fQ=="
width="0" height="0"/>
> - 🧐 [View latest project
report](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@sentry/browser","from":"9.7.0","to":"9.9.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","prPublicId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","packageManager":"npm","priorityScoreList":[],"projectPublicId":"55e114f8-489e-4f14-b900-20574b041e59","projectUrl":"https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source=github-cloud-app&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2025-03-24T13:46:37.750Z"},"vulns":[]}'
## Podsumowanie od Sourcery
Aktualizacja @sentry/browser z wersji 9.7.0 do 9.9.0
Ulepszenia:
- Dodano wsparcie dla instrumentacji po stronie klienta Next.js
- Wprowadzono możliwość łączenia poprzednich śladów (traces)
- Dodano metody loggera dla nadchodzącego produktu do logowania Sentry
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Upgrade @sentry/browser from version 9.7.0 to 9.9.0
Enhancements:
- Added support for Next.js client-side instrumentation
- Introduced ability to link previous traces
- Added logger methods for upcoming Sentry logging product
</details>
Sign up for freeto 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.

2 participants

@lforst@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
perf(node): Short circuit flushing on Vercel only for Vercel by lforst · Pull Request #15734 · getsentry/sentry-javascript · GitHub
Skip to content

perf(node): Short circuit flushing on Vercel only for Vercel - #15734

Merged
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation
Mar 21, 2025
Merged

perf(node): Short circuit flushing on Vercel only for Vercel#15734
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation

Conversation

@lforst

@lforstlforst commented Mar 19, 2025

Copy link
Copy Markdown
Contributor

Only adds the HttpInstrumentation that is supposed to flush for Vercel when we are on Vercel. Should reduce some overhead.

Also adds a bit more explanation because of #15602 (comment)

@lforst
lforst requested a review from mydeaMarch 19, 2025 12:52
@lforst
lforst marked this pull request as ready for review March 19, 2025 12:52

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good 👍
Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

@lforst

Copy link
Copy Markdown
ContributorAuthor

Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

Actually, let me do this in this PR directly 👍 separation of concern wise I don't like it too much but for now it makes sense.

@lforstlforst changed the title docs(node): Add explanation for second http instrumentationperf(node): Short circuit flushing on Vercel only for VercelMar 20, 2025
@lforst
lforst requested a review from mydeaMarch 20, 2025 09:48
@lforst
lforst merged commit f4cd540 into developMar 21, 2025
@lforst
lforst deleted the lforst-explanation-for-second-http-instrumentation branch March 21, 2025 08:13
mergifyBot added a commit to reisene/HulajDusza-serwis that referenced this pull request Apr 17, 2025
![snyk-io[bot]](https://badgen.net/badge/icon/snyk-io%5Bbot%5D/green?label=)
![Contributor](https://badgen.net/badge/icon/Contributor/000000?label=)
[<img width="16" alt="Powered by Pull Request Badge"
src="https://user-images.githubusercontent.com/1393946/111216524-d2bb8e00-85d4-11eb-821b-ed4c00989c02.png">](https://pullrequestbadge.com/?utm_medium=github&utm_source=reisene&utm_campaign=badge_info)<!--
PR-BADGE: PLEASE DO NOT REMOVE THIS COMMENT -->
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)
<h3>Snyk has created this PR to upgrade @sentry/browser from 9.7.0 to
9.9.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **24 days ago**.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>9.9.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.9.0">2025-03-24</a></br><h3>Important
Changes</h3>
<ul>
<li>
<p><strong>feat(nextjs): Support <code>instrumentation-client.ts</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15705"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15705/hovercard">#15705</a>)</strong></p>
<p>Next.js recently added a feature to support <a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/clientInstrumentationHook"
rel="nofollow">client-side (browser) instrumentation via the
<code>experimental.clientInstrumentationHook</code> flag and the
<code>instrumentation-client.ts</code> file</a>.</p>
<p>To be forwards compatible, the Sentry Next.js SDK will now pick up
<code>instrumentation-client.ts</code> files even on older Next.js
versions and add them to your client bundles.<br>
It is suggested that you either rename your
<code>sentry.client.config.ts</code> file to
<code>instrumentation-client.ts</code>, or if you already happen to have
a <code>instrumentation-client.ts</code> file move the contents of
<code>sentry.client.config.ts</code> to
<code>instrumentation-client.ts</code>.</p>
</li>
<li>
<p><strong>feat(browser): Add <code>previous_trace</code> span links (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15569"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15569/hovercard">#15569</a>)</strong></p>
<p>The <code>@ sentry/browser</code> SDK and SDKs based on <code>@
sentry/browser</code> now emits a link from the first root span of a
newly started trace to the root span of a previously started trace. You
can control this feature via an option in
<code>browserTracingIntegration()</code>:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here'
integrations: [
Sentry.browserTracingIntegration({
// Available settings:
// - 'in-memory' (default): Stores previous trace information in memory
// - 'session-storage': Stores previous trace information in the
browser's `sessionStorage`
// - 'off': Disable storing and sending previous trace information
linkPreviousTrace: 'in-memory',
}),
],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span>
<span class="pl-s1">integrations</span>: <span class="pl-kos">[</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">browserTracingIntegration</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c">// Available settings:</span>
<span class="pl-c">// - 'in-memory' (default): Stores previous trace
information in memory</span>
<span class="pl-c">// - 'session-storage': Stores previous trace
information in the browser's `sessionStorage`</span>
<span class="pl-c">// - 'off': Disable storing and sending previous
trace information</span>
<span class="pl-c1">linkPreviousTrace</span>: <span
class="pl-s">'in-memory'</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">,</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
</li>
<li>
<p><strong>feat(browser): Add <code>logger.X</code> methods to browser
SDK (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15763"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15763/hovercard">#15763</a>)</strong></p>
<p>For Sentry's <a
href="https://redirect.github.com/getsentry/sentry/discussions/86804">upcoming
logging product</a>, the SDK now supports sending logs via dedicated</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here',
_experiments: {
enableLogs: true, // This is required to use the logging features
},
});
Sentry.logger.info('This is a trace message', { userId: 123 });
// See PR for better documentation"><pre><span
class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">init</span><span class="pl-kos">(</span><span
class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span><span class="pl-kos">,</span>
<span class="pl-c1">_experiments</span>: <span class="pl-kos">{</span>
<span class="pl-c1">enableLogs</span>: <span
class="pl-c1">true</span><span class="pl-kos">,</span> <span
class="pl-c">// This is required to use the logging features</span>
<span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-c1">logger</span><span class="pl-kos">.</span><span
class="pl-en">info</span><span class="pl-kos">(</span><span
class="pl-s">'This is a trace message'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">userId</span>: <span class="pl-c1">123</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-c">// See PR for better documentation</span></pre></div>
<p>Please note that the logs product is still in early access. See the
link above for more information.</p>
</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Attach host as part of error message to "Failed to
fetch" errors (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15729"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15729/hovercard">#15729</a>)</li>
<li>feat(core): Add <code>parseStringToURL</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15768"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15768/hovercard">#15768</a>)</li>
<li>feat(core): Optimize <code>dropUndefinedKeys</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15760"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15760/hovercard">#15760</a>)</li>
<li>feat(node): Add fastify <code>shouldHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15771"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15771/hovercard">#15771</a>)</li>
<li>fix(nuxt): Delete no longer needed Nitro 'close' hook (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15790"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15790/hovercard">#15790</a>)</li>
<li>perf(nestjs): Remove usage of <code>addNonEnumerableProperty</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15766"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15766/hovercard">#15766</a>)</li>
<li>ref: Avoid some usage of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15757"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15757/hovercard">#15757</a>)</li>
<li>ref: Remove some usages of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15781"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15781/hovercard">#15781</a>)</li>
<li>ref(nextjs): Fix Next.js vercel-edge runtime package information (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15789"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15789/hovercard">#15789</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.21 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.01 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.62 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.79 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>67.12 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.85 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.63 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.44 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.3 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.25 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.43 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.63 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.62 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.83 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.59 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.84 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>232.41 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.81 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>37.03 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.61 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.36 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.8.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.8.0">2025-03-21</a></br><ul>
<li>feat(node): Implement new continuous profiling API spec (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15635"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15635/hovercard">#15635</a>)</li>
<li>feat(profiling): Add platform to chunk envelope (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15758"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15758/hovercard">#15758</a>)</li>
<li>feat(react): Export captureReactException method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15746"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15746/hovercard">#15746</a>)</li>
<li>fix(node): Check for <code>res.end</code> before passing to Proxy
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15776"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15776/hovercard">#15776</a>)</li>
<li>perf(core): Add short-circuits to <code>eventFilters</code>
integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15752"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15752/hovercard">#15752</a>)</li>
<li>perf(node): Short circuit flushing on Vercel only for Vercel (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15734"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15734/hovercard">#15734</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.51 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.15 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.71 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.73 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.1 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.26 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.53 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.04 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.33 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.52 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.38 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.41 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.61 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.68 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.06 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.32 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.88 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.56 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.76 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.65 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.04 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.41 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.7.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.7.0">2025-03-20</a></br><ul>
<li>feat(core): Add <code>captureLog</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15717"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15717/hovercard">#15717</a>)</li>
<li>feat(remix/cloudflare): Export <code>sentryHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15726"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15726/hovercard">#15726</a>)</li>
<li>fix(node): Always flush on Vercel before Lambda freeze (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15602"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15602/hovercard">#15602</a>)</li>
<li>fix(node): Ensure incoming traces are propagated without
HttpInstrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15732"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15732/hovercard">#15732</a>)</li>
<li>fix(node): Use <code>fatal</code> level for unhandled rejections in
<code>strict</code> mode (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15720"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15720/hovercard">#15720</a>)</li>
<li>fix(nuxt): Delete Nuxt server template injection (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15749"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15749/hovercard">#15749</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.28 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.09 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.33 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.5 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.93 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.13 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.69 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.7 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.08 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.23 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.02 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.3 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.49 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.37 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.57 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.56 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>107.94 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.2 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.77 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.52 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.73 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.62 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.01 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.37 KB</td>
</tr>
</tbody>
</table>
</li>
</ul>
from <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
---
> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.
---
**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._
**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJjNzI0M2IxOS0yMmVlLTQ5NWItYWJhMS02YjJlOGVhY2FlYjYiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImM3MjQzYjE5LTIyZWUtNDk1Yi1hYmExLTZiMmU4ZWFjYWViNiJ9fQ=="
width="0" height="0"/>
> - 🧐 [View latest project
report](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@sentry/browser","from":"9.7.0","to":"9.9.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","prPublicId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","packageManager":"npm","priorityScoreList":[],"projectPublicId":"55e114f8-489e-4f14-b900-20574b041e59","projectUrl":"https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source=github-cloud-app&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2025-03-24T13:46:37.750Z"},"vulns":[]}'
## Podsumowanie od Sourcery
Aktualizacja @sentry/browser z wersji 9.7.0 do 9.9.0
Ulepszenia:
- Dodano wsparcie dla instrumentacji po stronie klienta Next.js
- Wprowadzono możliwość łączenia poprzednich śladów (traces)
- Dodano metody loggera dla nadchodzącego produktu do logowania Sentry
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Upgrade @sentry/browser from version 9.7.0 to 9.9.0
Enhancements:
- Added support for Next.js client-side instrumentation
- Introduced ability to link previous traces
- Added logger methods for upcoming Sentry logging product
</details>
Sign up for freeto 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.

2 participants

@lforst@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' perf(node): Short circuit flushing on Vercel only for Vercel by lforst · Pull Request #15734 · getsentry/sentry-javascript · GitHub
Skip to content

perf(node): Short circuit flushing on Vercel only for Vercel - #15734

Merged
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation
Mar 21, 2025
Merged

perf(node): Short circuit flushing on Vercel only for Vercel#15734
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation

Conversation

@lforst

@lforstlforst commented Mar 19, 2025

Copy link
Copy Markdown
Contributor

Only adds the HttpInstrumentation that is supposed to flush for Vercel when we are on Vercel. Should reduce some overhead.

Also adds a bit more explanation because of #15602 (comment)

@lforst
lforst requested a review from mydeaMarch 19, 2025 12:52
@lforst
lforst marked this pull request as ready for review March 19, 2025 12:52

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good 👍
Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

@lforst

Copy link
Copy Markdown
ContributorAuthor

Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

Actually, let me do this in this PR directly 👍 separation of concern wise I don't like it too much but for now it makes sense.

@lforstlforst changed the title docs(node): Add explanation for second http instrumentationperf(node): Short circuit flushing on Vercel only for VercelMar 20, 2025
@lforst
lforst requested a review from mydeaMarch 20, 2025 09:48
@lforst
lforst merged commit f4cd540 into developMar 21, 2025
@lforst
lforst deleted the lforst-explanation-for-second-http-instrumentation branch March 21, 2025 08:13
mergifyBot added a commit to reisene/HulajDusza-serwis that referenced this pull request Apr 17, 2025
![snyk-io[bot]](https://badgen.net/badge/icon/snyk-io%5Bbot%5D/green?label=)
![Contributor](https://badgen.net/badge/icon/Contributor/000000?label=)
[<img width="16" alt="Powered by Pull Request Badge"
src="https://user-images.githubusercontent.com/1393946/111216524-d2bb8e00-85d4-11eb-821b-ed4c00989c02.png">](https://pullrequestbadge.com/?utm_medium=github&utm_source=reisene&utm_campaign=badge_info)<!--
PR-BADGE: PLEASE DO NOT REMOVE THIS COMMENT -->
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)
<h3>Snyk has created this PR to upgrade @sentry/browser from 9.7.0 to
9.9.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **24 days ago**.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>9.9.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.9.0">2025-03-24</a></br><h3>Important
Changes</h3>
<ul>
<li>
<p><strong>feat(nextjs): Support <code>instrumentation-client.ts</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15705"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15705/hovercard">#15705</a>)</strong></p>
<p>Next.js recently added a feature to support <a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/clientInstrumentationHook"
rel="nofollow">client-side (browser) instrumentation via the
<code>experimental.clientInstrumentationHook</code> flag and the
<code>instrumentation-client.ts</code> file</a>.</p>
<p>To be forwards compatible, the Sentry Next.js SDK will now pick up
<code>instrumentation-client.ts</code> files even on older Next.js
versions and add them to your client bundles.<br>
It is suggested that you either rename your
<code>sentry.client.config.ts</code> file to
<code>instrumentation-client.ts</code>, or if you already happen to have
a <code>instrumentation-client.ts</code> file move the contents of
<code>sentry.client.config.ts</code> to
<code>instrumentation-client.ts</code>.</p>
</li>
<li>
<p><strong>feat(browser): Add <code>previous_trace</code> span links (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15569"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15569/hovercard">#15569</a>)</strong></p>
<p>The <code>@ sentry/browser</code> SDK and SDKs based on <code>@
sentry/browser</code> now emits a link from the first root span of a
newly started trace to the root span of a previously started trace. You
can control this feature via an option in
<code>browserTracingIntegration()</code>:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here'
integrations: [
Sentry.browserTracingIntegration({
// Available settings:
// - 'in-memory' (default): Stores previous trace information in memory
// - 'session-storage': Stores previous trace information in the
browser's `sessionStorage`
// - 'off': Disable storing and sending previous trace information
linkPreviousTrace: 'in-memory',
}),
],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span>
<span class="pl-s1">integrations</span>: <span class="pl-kos">[</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">browserTracingIntegration</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c">// Available settings:</span>
<span class="pl-c">// - 'in-memory' (default): Stores previous trace
information in memory</span>
<span class="pl-c">// - 'session-storage': Stores previous trace
information in the browser's `sessionStorage`</span>
<span class="pl-c">// - 'off': Disable storing and sending previous
trace information</span>
<span class="pl-c1">linkPreviousTrace</span>: <span
class="pl-s">'in-memory'</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">,</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
</li>
<li>
<p><strong>feat(browser): Add <code>logger.X</code> methods to browser
SDK (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15763"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15763/hovercard">#15763</a>)</strong></p>
<p>For Sentry's <a
href="https://redirect.github.com/getsentry/sentry/discussions/86804">upcoming
logging product</a>, the SDK now supports sending logs via dedicated</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here',
_experiments: {
enableLogs: true, // This is required to use the logging features
},
});
Sentry.logger.info('This is a trace message', { userId: 123 });
// See PR for better documentation"><pre><span
class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">init</span><span class="pl-kos">(</span><span
class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span><span class="pl-kos">,</span>
<span class="pl-c1">_experiments</span>: <span class="pl-kos">{</span>
<span class="pl-c1">enableLogs</span>: <span
class="pl-c1">true</span><span class="pl-kos">,</span> <span
class="pl-c">// This is required to use the logging features</span>
<span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-c1">logger</span><span class="pl-kos">.</span><span
class="pl-en">info</span><span class="pl-kos">(</span><span
class="pl-s">'This is a trace message'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">userId</span>: <span class="pl-c1">123</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-c">// See PR for better documentation</span></pre></div>
<p>Please note that the logs product is still in early access. See the
link above for more information.</p>
</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Attach host as part of error message to "Failed to
fetch" errors (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15729"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15729/hovercard">#15729</a>)</li>
<li>feat(core): Add <code>parseStringToURL</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15768"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15768/hovercard">#15768</a>)</li>
<li>feat(core): Optimize <code>dropUndefinedKeys</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15760"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15760/hovercard">#15760</a>)</li>
<li>feat(node): Add fastify <code>shouldHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15771"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15771/hovercard">#15771</a>)</li>
<li>fix(nuxt): Delete no longer needed Nitro 'close' hook (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15790"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15790/hovercard">#15790</a>)</li>
<li>perf(nestjs): Remove usage of <code>addNonEnumerableProperty</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15766"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15766/hovercard">#15766</a>)</li>
<li>ref: Avoid some usage of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15757"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15757/hovercard">#15757</a>)</li>
<li>ref: Remove some usages of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15781"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15781/hovercard">#15781</a>)</li>
<li>ref(nextjs): Fix Next.js vercel-edge runtime package information (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15789"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15789/hovercard">#15789</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.21 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.01 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.62 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.79 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>67.12 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.85 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.63 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.44 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.3 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.25 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.43 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.63 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.62 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.83 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.59 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.84 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>232.41 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.81 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>37.03 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.61 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.36 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.8.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.8.0">2025-03-21</a></br><ul>
<li>feat(node): Implement new continuous profiling API spec (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15635"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15635/hovercard">#15635</a>)</li>
<li>feat(profiling): Add platform to chunk envelope (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15758"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15758/hovercard">#15758</a>)</li>
<li>feat(react): Export captureReactException method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15746"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15746/hovercard">#15746</a>)</li>
<li>fix(node): Check for <code>res.end</code> before passing to Proxy
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15776"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15776/hovercard">#15776</a>)</li>
<li>perf(core): Add short-circuits to <code>eventFilters</code>
integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15752"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15752/hovercard">#15752</a>)</li>
<li>perf(node): Short circuit flushing on Vercel only for Vercel (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15734"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15734/hovercard">#15734</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.51 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.15 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.71 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.73 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.1 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.26 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.53 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.04 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.33 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.52 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.38 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.41 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.61 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.68 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.06 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.32 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.88 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.56 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.76 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.65 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.04 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.41 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.7.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.7.0">2025-03-20</a></br><ul>
<li>feat(core): Add <code>captureLog</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15717"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15717/hovercard">#15717</a>)</li>
<li>feat(remix/cloudflare): Export <code>sentryHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15726"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15726/hovercard">#15726</a>)</li>
<li>fix(node): Always flush on Vercel before Lambda freeze (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15602"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15602/hovercard">#15602</a>)</li>
<li>fix(node): Ensure incoming traces are propagated without
HttpInstrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15732"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15732/hovercard">#15732</a>)</li>
<li>fix(node): Use <code>fatal</code> level for unhandled rejections in
<code>strict</code> mode (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15720"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15720/hovercard">#15720</a>)</li>
<li>fix(nuxt): Delete Nuxt server template injection (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15749"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15749/hovercard">#15749</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.28 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.09 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.33 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.5 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.93 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.13 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.69 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.7 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.08 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.23 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.02 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.3 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.49 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.37 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.57 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.56 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>107.94 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.2 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.77 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.52 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.73 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.62 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.01 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.37 KB</td>
</tr>
</tbody>
</table>
</li>
</ul>
from <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
---
> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.
---
**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._
**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJjNzI0M2IxOS0yMmVlLTQ5NWItYWJhMS02YjJlOGVhY2FlYjYiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImM3MjQzYjE5LTIyZWUtNDk1Yi1hYmExLTZiMmU4ZWFjYWViNiJ9fQ=="
width="0" height="0"/>
> - 🧐 [View latest project
report](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@sentry/browser","from":"9.7.0","to":"9.9.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","prPublicId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","packageManager":"npm","priorityScoreList":[],"projectPublicId":"55e114f8-489e-4f14-b900-20574b041e59","projectUrl":"https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source=github-cloud-app&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2025-03-24T13:46:37.750Z"},"vulns":[]}'
## Podsumowanie od Sourcery
Aktualizacja @sentry/browser z wersji 9.7.0 do 9.9.0
Ulepszenia:
- Dodano wsparcie dla instrumentacji po stronie klienta Next.js
- Wprowadzono możliwość łączenia poprzednich śladów (traces)
- Dodano metody loggera dla nadchodzącego produktu do logowania Sentry
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Upgrade @sentry/browser from version 9.7.0 to 9.9.0
Enhancements:
- Added support for Next.js client-side instrumentation
- Introduced ability to link previous traces
- Added logger methods for upcoming Sentry logging product
</details>
Sign up for freeto 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.

2 participants

@lforst@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' perf(node): Short circuit flushing on Vercel only for Vercel by lforst · Pull Request #15734 · getsentry/sentry-javascript · GitHub
Skip to content

perf(node): Short circuit flushing on Vercel only for Vercel - #15734

Merged
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation
Mar 21, 2025
Merged

perf(node): Short circuit flushing on Vercel only for Vercel#15734
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation

Conversation

@lforst

@lforstlforst commented Mar 19, 2025

Copy link
Copy Markdown
Contributor

Only adds the HttpInstrumentation that is supposed to flush for Vercel when we are on Vercel. Should reduce some overhead.

Also adds a bit more explanation because of #15602 (comment)

@lforst
lforst requested a review from mydeaMarch 19, 2025 12:52
@lforst
lforst marked this pull request as ready for review March 19, 2025 12:52

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good 👍
Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

@lforst

Copy link
Copy Markdown
ContributorAuthor

Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

Actually, let me do this in this PR directly 👍 separation of concern wise I don't like it too much but for now it makes sense.

@lforstlforst changed the title docs(node): Add explanation for second http instrumentationperf(node): Short circuit flushing on Vercel only for VercelMar 20, 2025
@lforst
lforst requested a review from mydeaMarch 20, 2025 09:48
@lforst
lforst merged commit f4cd540 into developMar 21, 2025
@lforst
lforst deleted the lforst-explanation-for-second-http-instrumentation branch March 21, 2025 08:13
mergifyBot added a commit to reisene/HulajDusza-serwis that referenced this pull request Apr 17, 2025
![snyk-io[bot]](https://badgen.net/badge/icon/snyk-io%5Bbot%5D/green?label=)
![Contributor](https://badgen.net/badge/icon/Contributor/000000?label=)
[<img width="16" alt="Powered by Pull Request Badge"
src="https://user-images.githubusercontent.com/1393946/111216524-d2bb8e00-85d4-11eb-821b-ed4c00989c02.png">](https://pullrequestbadge.com/?utm_medium=github&utm_source=reisene&utm_campaign=badge_info)<!--
PR-BADGE: PLEASE DO NOT REMOVE THIS COMMENT -->
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)
<h3>Snyk has created this PR to upgrade @sentry/browser from 9.7.0 to
9.9.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **24 days ago**.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>9.9.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.9.0">2025-03-24</a></br><h3>Important
Changes</h3>
<ul>
<li>
<p><strong>feat(nextjs): Support <code>instrumentation-client.ts</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15705"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15705/hovercard">#15705</a>)</strong></p>
<p>Next.js recently added a feature to support <a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/clientInstrumentationHook"
rel="nofollow">client-side (browser) instrumentation via the
<code>experimental.clientInstrumentationHook</code> flag and the
<code>instrumentation-client.ts</code> file</a>.</p>
<p>To be forwards compatible, the Sentry Next.js SDK will now pick up
<code>instrumentation-client.ts</code> files even on older Next.js
versions and add them to your client bundles.<br>
It is suggested that you either rename your
<code>sentry.client.config.ts</code> file to
<code>instrumentation-client.ts</code>, or if you already happen to have
a <code>instrumentation-client.ts</code> file move the contents of
<code>sentry.client.config.ts</code> to
<code>instrumentation-client.ts</code>.</p>
</li>
<li>
<p><strong>feat(browser): Add <code>previous_trace</code> span links (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15569"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15569/hovercard">#15569</a>)</strong></p>
<p>The <code>@ sentry/browser</code> SDK and SDKs based on <code>@
sentry/browser</code> now emits a link from the first root span of a
newly started trace to the root span of a previously started trace. You
can control this feature via an option in
<code>browserTracingIntegration()</code>:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here'
integrations: [
Sentry.browserTracingIntegration({
// Available settings:
// - 'in-memory' (default): Stores previous trace information in memory
// - 'session-storage': Stores previous trace information in the
browser's `sessionStorage`
// - 'off': Disable storing and sending previous trace information
linkPreviousTrace: 'in-memory',
}),
],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span>
<span class="pl-s1">integrations</span>: <span class="pl-kos">[</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">browserTracingIntegration</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c">// Available settings:</span>
<span class="pl-c">// - 'in-memory' (default): Stores previous trace
information in memory</span>
<span class="pl-c">// - 'session-storage': Stores previous trace
information in the browser's `sessionStorage`</span>
<span class="pl-c">// - 'off': Disable storing and sending previous
trace information</span>
<span class="pl-c1">linkPreviousTrace</span>: <span
class="pl-s">'in-memory'</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">,</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
</li>
<li>
<p><strong>feat(browser): Add <code>logger.X</code> methods to browser
SDK (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15763"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15763/hovercard">#15763</a>)</strong></p>
<p>For Sentry's <a
href="https://redirect.github.com/getsentry/sentry/discussions/86804">upcoming
logging product</a>, the SDK now supports sending logs via dedicated</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here',
_experiments: {
enableLogs: true, // This is required to use the logging features
},
});
Sentry.logger.info('This is a trace message', { userId: 123 });
// See PR for better documentation"><pre><span
class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">init</span><span class="pl-kos">(</span><span
class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span><span class="pl-kos">,</span>
<span class="pl-c1">_experiments</span>: <span class="pl-kos">{</span>
<span class="pl-c1">enableLogs</span>: <span
class="pl-c1">true</span><span class="pl-kos">,</span> <span
class="pl-c">// This is required to use the logging features</span>
<span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-c1">logger</span><span class="pl-kos">.</span><span
class="pl-en">info</span><span class="pl-kos">(</span><span
class="pl-s">'This is a trace message'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">userId</span>: <span class="pl-c1">123</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-c">// See PR for better documentation</span></pre></div>
<p>Please note that the logs product is still in early access. See the
link above for more information.</p>
</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Attach host as part of error message to "Failed to
fetch" errors (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15729"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15729/hovercard">#15729</a>)</li>
<li>feat(core): Add <code>parseStringToURL</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15768"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15768/hovercard">#15768</a>)</li>
<li>feat(core): Optimize <code>dropUndefinedKeys</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15760"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15760/hovercard">#15760</a>)</li>
<li>feat(node): Add fastify <code>shouldHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15771"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15771/hovercard">#15771</a>)</li>
<li>fix(nuxt): Delete no longer needed Nitro 'close' hook (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15790"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15790/hovercard">#15790</a>)</li>
<li>perf(nestjs): Remove usage of <code>addNonEnumerableProperty</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15766"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15766/hovercard">#15766</a>)</li>
<li>ref: Avoid some usage of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15757"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15757/hovercard">#15757</a>)</li>
<li>ref: Remove some usages of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15781"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15781/hovercard">#15781</a>)</li>
<li>ref(nextjs): Fix Next.js vercel-edge runtime package information (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15789"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15789/hovercard">#15789</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.21 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.01 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.62 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.79 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>67.12 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.85 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.63 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.44 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.3 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.25 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.43 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.63 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.62 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.83 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.59 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.84 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>232.41 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.81 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>37.03 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.61 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.36 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.8.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.8.0">2025-03-21</a></br><ul>
<li>feat(node): Implement new continuous profiling API spec (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15635"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15635/hovercard">#15635</a>)</li>
<li>feat(profiling): Add platform to chunk envelope (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15758"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15758/hovercard">#15758</a>)</li>
<li>feat(react): Export captureReactException method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15746"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15746/hovercard">#15746</a>)</li>
<li>fix(node): Check for <code>res.end</code> before passing to Proxy
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15776"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15776/hovercard">#15776</a>)</li>
<li>perf(core): Add short-circuits to <code>eventFilters</code>
integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15752"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15752/hovercard">#15752</a>)</li>
<li>perf(node): Short circuit flushing on Vercel only for Vercel (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15734"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15734/hovercard">#15734</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.51 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.15 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.71 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.73 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.1 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.26 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.53 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.04 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.33 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.52 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.38 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.41 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.61 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.68 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.06 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.32 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.88 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.56 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.76 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.65 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.04 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.41 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.7.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.7.0">2025-03-20</a></br><ul>
<li>feat(core): Add <code>captureLog</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15717"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15717/hovercard">#15717</a>)</li>
<li>feat(remix/cloudflare): Export <code>sentryHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15726"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15726/hovercard">#15726</a>)</li>
<li>fix(node): Always flush on Vercel before Lambda freeze (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15602"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15602/hovercard">#15602</a>)</li>
<li>fix(node): Ensure incoming traces are propagated without
HttpInstrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15732"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15732/hovercard">#15732</a>)</li>
<li>fix(node): Use <code>fatal</code> level for unhandled rejections in
<code>strict</code> mode (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15720"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15720/hovercard">#15720</a>)</li>
<li>fix(nuxt): Delete Nuxt server template injection (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15749"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15749/hovercard">#15749</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.28 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.09 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.33 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.5 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.93 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.13 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.69 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.7 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.08 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.23 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.02 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.3 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.49 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.37 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.57 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.56 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>107.94 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.2 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.77 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.52 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.73 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.62 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.01 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.37 KB</td>
</tr>
</tbody>
</table>
</li>
</ul>
from <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
---
> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.
---
**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._
**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJjNzI0M2IxOS0yMmVlLTQ5NWItYWJhMS02YjJlOGVhY2FlYjYiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImM3MjQzYjE5LTIyZWUtNDk1Yi1hYmExLTZiMmU4ZWFjYWViNiJ9fQ=="
width="0" height="0"/>
> - 🧐 [View latest project
report](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@sentry/browser","from":"9.7.0","to":"9.9.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","prPublicId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","packageManager":"npm","priorityScoreList":[],"projectPublicId":"55e114f8-489e-4f14-b900-20574b041e59","projectUrl":"https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source=github-cloud-app&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2025-03-24T13:46:37.750Z"},"vulns":[]}'
## Podsumowanie od Sourcery
Aktualizacja @sentry/browser z wersji 9.7.0 do 9.9.0
Ulepszenia:
- Dodano wsparcie dla instrumentacji po stronie klienta Next.js
- Wprowadzono możliwość łączenia poprzednich śladów (traces)
- Dodano metody loggera dla nadchodzącego produktu do logowania Sentry
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Upgrade @sentry/browser from version 9.7.0 to 9.9.0
Enhancements:
- Added support for Next.js client-side instrumentation
- Introduced ability to link previous traces
- Added logger methods for upcoming Sentry logging product
</details>
Sign up for freeto 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.

2 participants

@lforst@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' perf(node): Short circuit flushing on Vercel only for Vercel by lforst · Pull Request #15734 · getsentry/sentry-javascript · GitHub
Skip to content

perf(node): Short circuit flushing on Vercel only for Vercel - #15734

Merged
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation
Mar 21, 2025
Merged

perf(node): Short circuit flushing on Vercel only for Vercel#15734
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation

Conversation

@lforst

@lforstlforst commented Mar 19, 2025

Copy link
Copy Markdown
Contributor

Only adds the HttpInstrumentation that is supposed to flush for Vercel when we are on Vercel. Should reduce some overhead.

Also adds a bit more explanation because of #15602 (comment)

@lforst
lforst requested a review from mydeaMarch 19, 2025 12:52
@lforst
lforst marked this pull request as ready for review March 19, 2025 12:52

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good 👍
Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

@lforst

Copy link
Copy Markdown
ContributorAuthor

Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

Actually, let me do this in this PR directly 👍 separation of concern wise I don't like it too much but for now it makes sense.

@lforstlforst changed the title docs(node): Add explanation for second http instrumentationperf(node): Short circuit flushing on Vercel only for VercelMar 20, 2025
@lforst
lforst requested a review from mydeaMarch 20, 2025 09:48
@lforst
lforst merged commit f4cd540 into developMar 21, 2025
@lforst
lforst deleted the lforst-explanation-for-second-http-instrumentation branch March 21, 2025 08:13
mergifyBot added a commit to reisene/HulajDusza-serwis that referenced this pull request Apr 17, 2025
![snyk-io[bot]](https://badgen.net/badge/icon/snyk-io%5Bbot%5D/green?label=)
![Contributor](https://badgen.net/badge/icon/Contributor/000000?label=)
[<img width="16" alt="Powered by Pull Request Badge"
src="https://user-images.githubusercontent.com/1393946/111216524-d2bb8e00-85d4-11eb-821b-ed4c00989c02.png">](https://pullrequestbadge.com/?utm_medium=github&utm_source=reisene&utm_campaign=badge_info)<!--
PR-BADGE: PLEASE DO NOT REMOVE THIS COMMENT -->
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)
<h3>Snyk has created this PR to upgrade @sentry/browser from 9.7.0 to
9.9.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **24 days ago**.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>9.9.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.9.0">2025-03-24</a></br><h3>Important
Changes</h3>
<ul>
<li>
<p><strong>feat(nextjs): Support <code>instrumentation-client.ts</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15705"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15705/hovercard">#15705</a>)</strong></p>
<p>Next.js recently added a feature to support <a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/clientInstrumentationHook"
rel="nofollow">client-side (browser) instrumentation via the
<code>experimental.clientInstrumentationHook</code> flag and the
<code>instrumentation-client.ts</code> file</a>.</p>
<p>To be forwards compatible, the Sentry Next.js SDK will now pick up
<code>instrumentation-client.ts</code> files even on older Next.js
versions and add them to your client bundles.<br>
It is suggested that you either rename your
<code>sentry.client.config.ts</code> file to
<code>instrumentation-client.ts</code>, or if you already happen to have
a <code>instrumentation-client.ts</code> file move the contents of
<code>sentry.client.config.ts</code> to
<code>instrumentation-client.ts</code>.</p>
</li>
<li>
<p><strong>feat(browser): Add <code>previous_trace</code> span links (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15569"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15569/hovercard">#15569</a>)</strong></p>
<p>The <code>@ sentry/browser</code> SDK and SDKs based on <code>@
sentry/browser</code> now emits a link from the first root span of a
newly started trace to the root span of a previously started trace. You
can control this feature via an option in
<code>browserTracingIntegration()</code>:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here'
integrations: [
Sentry.browserTracingIntegration({
// Available settings:
// - 'in-memory' (default): Stores previous trace information in memory
// - 'session-storage': Stores previous trace information in the
browser's `sessionStorage`
// - 'off': Disable storing and sending previous trace information
linkPreviousTrace: 'in-memory',
}),
],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span>
<span class="pl-s1">integrations</span>: <span class="pl-kos">[</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">browserTracingIntegration</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c">// Available settings:</span>
<span class="pl-c">// - 'in-memory' (default): Stores previous trace
information in memory</span>
<span class="pl-c">// - 'session-storage': Stores previous trace
information in the browser's `sessionStorage`</span>
<span class="pl-c">// - 'off': Disable storing and sending previous
trace information</span>
<span class="pl-c1">linkPreviousTrace</span>: <span
class="pl-s">'in-memory'</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">,</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
</li>
<li>
<p><strong>feat(browser): Add <code>logger.X</code> methods to browser
SDK (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15763"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15763/hovercard">#15763</a>)</strong></p>
<p>For Sentry's <a
href="https://redirect.github.com/getsentry/sentry/discussions/86804">upcoming
logging product</a>, the SDK now supports sending logs via dedicated</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here',
_experiments: {
enableLogs: true, // This is required to use the logging features
},
});
Sentry.logger.info('This is a trace message', { userId: 123 });
// See PR for better documentation"><pre><span
class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">init</span><span class="pl-kos">(</span><span
class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span><span class="pl-kos">,</span>
<span class="pl-c1">_experiments</span>: <span class="pl-kos">{</span>
<span class="pl-c1">enableLogs</span>: <span
class="pl-c1">true</span><span class="pl-kos">,</span> <span
class="pl-c">// This is required to use the logging features</span>
<span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-c1">logger</span><span class="pl-kos">.</span><span
class="pl-en">info</span><span class="pl-kos">(</span><span
class="pl-s">'This is a trace message'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">userId</span>: <span class="pl-c1">123</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-c">// See PR for better documentation</span></pre></div>
<p>Please note that the logs product is still in early access. See the
link above for more information.</p>
</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Attach host as part of error message to "Failed to
fetch" errors (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15729"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15729/hovercard">#15729</a>)</li>
<li>feat(core): Add <code>parseStringToURL</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15768"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15768/hovercard">#15768</a>)</li>
<li>feat(core): Optimize <code>dropUndefinedKeys</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15760"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15760/hovercard">#15760</a>)</li>
<li>feat(node): Add fastify <code>shouldHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15771"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15771/hovercard">#15771</a>)</li>
<li>fix(nuxt): Delete no longer needed Nitro 'close' hook (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15790"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15790/hovercard">#15790</a>)</li>
<li>perf(nestjs): Remove usage of <code>addNonEnumerableProperty</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15766"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15766/hovercard">#15766</a>)</li>
<li>ref: Avoid some usage of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15757"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15757/hovercard">#15757</a>)</li>
<li>ref: Remove some usages of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15781"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15781/hovercard">#15781</a>)</li>
<li>ref(nextjs): Fix Next.js vercel-edge runtime package information (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15789"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15789/hovercard">#15789</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.21 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.01 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.62 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.79 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>67.12 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.85 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.63 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.44 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.3 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.25 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.43 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.63 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.62 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.83 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.59 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.84 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>232.41 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.81 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>37.03 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.61 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.36 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.8.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.8.0">2025-03-21</a></br><ul>
<li>feat(node): Implement new continuous profiling API spec (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15635"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15635/hovercard">#15635</a>)</li>
<li>feat(profiling): Add platform to chunk envelope (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15758"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15758/hovercard">#15758</a>)</li>
<li>feat(react): Export captureReactException method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15746"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15746/hovercard">#15746</a>)</li>
<li>fix(node): Check for <code>res.end</code> before passing to Proxy
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15776"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15776/hovercard">#15776</a>)</li>
<li>perf(core): Add short-circuits to <code>eventFilters</code>
integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15752"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15752/hovercard">#15752</a>)</li>
<li>perf(node): Short circuit flushing on Vercel only for Vercel (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15734"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15734/hovercard">#15734</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.51 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.15 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.71 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.73 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.1 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.26 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.53 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.04 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.33 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.52 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.38 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.41 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.61 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.68 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.06 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.32 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.88 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.56 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.76 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.65 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.04 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.41 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.7.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.7.0">2025-03-20</a></br><ul>
<li>feat(core): Add <code>captureLog</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15717"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15717/hovercard">#15717</a>)</li>
<li>feat(remix/cloudflare): Export <code>sentryHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15726"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15726/hovercard">#15726</a>)</li>
<li>fix(node): Always flush on Vercel before Lambda freeze (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15602"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15602/hovercard">#15602</a>)</li>
<li>fix(node): Ensure incoming traces are propagated without
HttpInstrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15732"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15732/hovercard">#15732</a>)</li>
<li>fix(node): Use <code>fatal</code> level for unhandled rejections in
<code>strict</code> mode (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15720"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15720/hovercard">#15720</a>)</li>
<li>fix(nuxt): Delete Nuxt server template injection (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15749"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15749/hovercard">#15749</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.28 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.09 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.33 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.5 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.93 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.13 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.69 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.7 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.08 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.23 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.02 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.3 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.49 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.37 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.57 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.56 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>107.94 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.2 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.77 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.52 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.73 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.62 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.01 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.37 KB</td>
</tr>
</tbody>
</table>
</li>
</ul>
from <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
---
> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.
---
**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._
**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJjNzI0M2IxOS0yMmVlLTQ5NWItYWJhMS02YjJlOGVhY2FlYjYiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImM3MjQzYjE5LTIyZWUtNDk1Yi1hYmExLTZiMmU4ZWFjYWViNiJ9fQ=="
width="0" height="0"/>
> - 🧐 [View latest project
report](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@sentry/browser","from":"9.7.0","to":"9.9.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","prPublicId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","packageManager":"npm","priorityScoreList":[],"projectPublicId":"55e114f8-489e-4f14-b900-20574b041e59","projectUrl":"https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source=github-cloud-app&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2025-03-24T13:46:37.750Z"},"vulns":[]}'
## Podsumowanie od Sourcery
Aktualizacja @sentry/browser z wersji 9.7.0 do 9.9.0
Ulepszenia:
- Dodano wsparcie dla instrumentacji po stronie klienta Next.js
- Wprowadzono możliwość łączenia poprzednich śladów (traces)
- Dodano metody loggera dla nadchodzącego produktu do logowania Sentry
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Upgrade @sentry/browser from version 9.7.0 to 9.9.0
Enhancements:
- Added support for Next.js client-side instrumentation
- Introduced ability to link previous traces
- Added logger methods for upcoming Sentry logging product
</details>
Sign up for freeto 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.

2 participants

@lforst@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' perf(node): Short circuit flushing on Vercel only for Vercel by lforst · Pull Request #15734 · getsentry/sentry-javascript · GitHub
Skip to content

perf(node): Short circuit flushing on Vercel only for Vercel - #15734

Merged
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation
Mar 21, 2025
Merged

perf(node): Short circuit flushing on Vercel only for Vercel#15734
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation

Conversation

@lforst

@lforstlforst commented Mar 19, 2025

Copy link
Copy Markdown
Contributor

Only adds the HttpInstrumentation that is supposed to flush for Vercel when we are on Vercel. Should reduce some overhead.

Also adds a bit more explanation because of #15602 (comment)

@lforst
lforst requested a review from mydeaMarch 19, 2025 12:52
@lforst
lforst marked this pull request as ready for review March 19, 2025 12:52

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good 👍
Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

@lforst

Copy link
Copy Markdown
ContributorAuthor

Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

Actually, let me do this in this PR directly 👍 separation of concern wise I don't like it too much but for now it makes sense.

@lforstlforst changed the title docs(node): Add explanation for second http instrumentationperf(node): Short circuit flushing on Vercel only for VercelMar 20, 2025
@lforst
lforst requested a review from mydeaMarch 20, 2025 09:48
@lforst
lforst merged commit f4cd540 into developMar 21, 2025
@lforst
lforst deleted the lforst-explanation-for-second-http-instrumentation branch March 21, 2025 08:13
mergifyBot added a commit to reisene/HulajDusza-serwis that referenced this pull request Apr 17, 2025
![snyk-io[bot]](https://badgen.net/badge/icon/snyk-io%5Bbot%5D/green?label=)
![Contributor](https://badgen.net/badge/icon/Contributor/000000?label=)
[<img width="16" alt="Powered by Pull Request Badge"
src="https://user-images.githubusercontent.com/1393946/111216524-d2bb8e00-85d4-11eb-821b-ed4c00989c02.png">](https://pullrequestbadge.com/?utm_medium=github&utm_source=reisene&utm_campaign=badge_info)<!--
PR-BADGE: PLEASE DO NOT REMOVE THIS COMMENT -->
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)
<h3>Snyk has created this PR to upgrade @sentry/browser from 9.7.0 to
9.9.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **24 days ago**.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>9.9.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.9.0">2025-03-24</a></br><h3>Important
Changes</h3>
<ul>
<li>
<p><strong>feat(nextjs): Support <code>instrumentation-client.ts</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15705"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15705/hovercard">#15705</a>)</strong></p>
<p>Next.js recently added a feature to support <a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/clientInstrumentationHook"
rel="nofollow">client-side (browser) instrumentation via the
<code>experimental.clientInstrumentationHook</code> flag and the
<code>instrumentation-client.ts</code> file</a>.</p>
<p>To be forwards compatible, the Sentry Next.js SDK will now pick up
<code>instrumentation-client.ts</code> files even on older Next.js
versions and add them to your client bundles.<br>
It is suggested that you either rename your
<code>sentry.client.config.ts</code> file to
<code>instrumentation-client.ts</code>, or if you already happen to have
a <code>instrumentation-client.ts</code> file move the contents of
<code>sentry.client.config.ts</code> to
<code>instrumentation-client.ts</code>.</p>
</li>
<li>
<p><strong>feat(browser): Add <code>previous_trace</code> span links (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15569"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15569/hovercard">#15569</a>)</strong></p>
<p>The <code>@ sentry/browser</code> SDK and SDKs based on <code>@
sentry/browser</code> now emits a link from the first root span of a
newly started trace to the root span of a previously started trace. You
can control this feature via an option in
<code>browserTracingIntegration()</code>:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here'
integrations: [
Sentry.browserTracingIntegration({
// Available settings:
// - 'in-memory' (default): Stores previous trace information in memory
// - 'session-storage': Stores previous trace information in the
browser's `sessionStorage`
// - 'off': Disable storing and sending previous trace information
linkPreviousTrace: 'in-memory',
}),
],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span>
<span class="pl-s1">integrations</span>: <span class="pl-kos">[</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">browserTracingIntegration</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c">// Available settings:</span>
<span class="pl-c">// - 'in-memory' (default): Stores previous trace
information in memory</span>
<span class="pl-c">// - 'session-storage': Stores previous trace
information in the browser's `sessionStorage`</span>
<span class="pl-c">// - 'off': Disable storing and sending previous
trace information</span>
<span class="pl-c1">linkPreviousTrace</span>: <span
class="pl-s">'in-memory'</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">,</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
</li>
<li>
<p><strong>feat(browser): Add <code>logger.X</code> methods to browser
SDK (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15763"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15763/hovercard">#15763</a>)</strong></p>
<p>For Sentry's <a
href="https://redirect.github.com/getsentry/sentry/discussions/86804">upcoming
logging product</a>, the SDK now supports sending logs via dedicated</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here',
_experiments: {
enableLogs: true, // This is required to use the logging features
},
});
Sentry.logger.info('This is a trace message', { userId: 123 });
// See PR for better documentation"><pre><span
class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">init</span><span class="pl-kos">(</span><span
class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span><span class="pl-kos">,</span>
<span class="pl-c1">_experiments</span>: <span class="pl-kos">{</span>
<span class="pl-c1">enableLogs</span>: <span
class="pl-c1">true</span><span class="pl-kos">,</span> <span
class="pl-c">// This is required to use the logging features</span>
<span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-c1">logger</span><span class="pl-kos">.</span><span
class="pl-en">info</span><span class="pl-kos">(</span><span
class="pl-s">'This is a trace message'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">userId</span>: <span class="pl-c1">123</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-c">// See PR for better documentation</span></pre></div>
<p>Please note that the logs product is still in early access. See the
link above for more information.</p>
</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Attach host as part of error message to "Failed to
fetch" errors (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15729"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15729/hovercard">#15729</a>)</li>
<li>feat(core): Add <code>parseStringToURL</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15768"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15768/hovercard">#15768</a>)</li>
<li>feat(core): Optimize <code>dropUndefinedKeys</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15760"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15760/hovercard">#15760</a>)</li>
<li>feat(node): Add fastify <code>shouldHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15771"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15771/hovercard">#15771</a>)</li>
<li>fix(nuxt): Delete no longer needed Nitro 'close' hook (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15790"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15790/hovercard">#15790</a>)</li>
<li>perf(nestjs): Remove usage of <code>addNonEnumerableProperty</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15766"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15766/hovercard">#15766</a>)</li>
<li>ref: Avoid some usage of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15757"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15757/hovercard">#15757</a>)</li>
<li>ref: Remove some usages of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15781"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15781/hovercard">#15781</a>)</li>
<li>ref(nextjs): Fix Next.js vercel-edge runtime package information (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15789"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15789/hovercard">#15789</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.21 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.01 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.62 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.79 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>67.12 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.85 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.63 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.44 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.3 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.25 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.43 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.63 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.62 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.83 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.59 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.84 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>232.41 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.81 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>37.03 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.61 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.36 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.8.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.8.0">2025-03-21</a></br><ul>
<li>feat(node): Implement new continuous profiling API spec (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15635"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15635/hovercard">#15635</a>)</li>
<li>feat(profiling): Add platform to chunk envelope (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15758"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15758/hovercard">#15758</a>)</li>
<li>feat(react): Export captureReactException method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15746"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15746/hovercard">#15746</a>)</li>
<li>fix(node): Check for <code>res.end</code> before passing to Proxy
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15776"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15776/hovercard">#15776</a>)</li>
<li>perf(core): Add short-circuits to <code>eventFilters</code>
integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15752"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15752/hovercard">#15752</a>)</li>
<li>perf(node): Short circuit flushing on Vercel only for Vercel (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15734"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15734/hovercard">#15734</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.51 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.15 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.71 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.73 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.1 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.26 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.53 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.04 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.33 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.52 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.38 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.41 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.61 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.68 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.06 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.32 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.88 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.56 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.76 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.65 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.04 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.41 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.7.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.7.0">2025-03-20</a></br><ul>
<li>feat(core): Add <code>captureLog</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15717"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15717/hovercard">#15717</a>)</li>
<li>feat(remix/cloudflare): Export <code>sentryHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15726"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15726/hovercard">#15726</a>)</li>
<li>fix(node): Always flush on Vercel before Lambda freeze (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15602"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15602/hovercard">#15602</a>)</li>
<li>fix(node): Ensure incoming traces are propagated without
HttpInstrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15732"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15732/hovercard">#15732</a>)</li>
<li>fix(node): Use <code>fatal</code> level for unhandled rejections in
<code>strict</code> mode (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15720"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15720/hovercard">#15720</a>)</li>
<li>fix(nuxt): Delete Nuxt server template injection (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15749"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15749/hovercard">#15749</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.28 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.09 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.33 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.5 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.93 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.13 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.69 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.7 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.08 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.23 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.02 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.3 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.49 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.37 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.57 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.56 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>107.94 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.2 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.77 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.52 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.73 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.62 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.01 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.37 KB</td>
</tr>
</tbody>
</table>
</li>
</ul>
from <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
---
> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.
---
**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._
**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJjNzI0M2IxOS0yMmVlLTQ5NWItYWJhMS02YjJlOGVhY2FlYjYiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImM3MjQzYjE5LTIyZWUtNDk1Yi1hYmExLTZiMmU4ZWFjYWViNiJ9fQ=="
width="0" height="0"/>
> - 🧐 [View latest project
report](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@sentry/browser","from":"9.7.0","to":"9.9.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","prPublicId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","packageManager":"npm","priorityScoreList":[],"projectPublicId":"55e114f8-489e-4f14-b900-20574b041e59","projectUrl":"https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source=github-cloud-app&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2025-03-24T13:46:37.750Z"},"vulns":[]}'
## Podsumowanie od Sourcery
Aktualizacja @sentry/browser z wersji 9.7.0 do 9.9.0
Ulepszenia:
- Dodano wsparcie dla instrumentacji po stronie klienta Next.js
- Wprowadzono możliwość łączenia poprzednich śladów (traces)
- Dodano metody loggera dla nadchodzącego produktu do logowania Sentry
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Upgrade @sentry/browser from version 9.7.0 to 9.9.0
Enhancements:
- Added support for Next.js client-side instrumentation
- Introduced ability to link previous traces
- Added logger methods for upcoming Sentry logging product
</details>
Sign up for freeto 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.

2 participants

@lforst@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); perf(node): Short circuit flushing on Vercel only for Vercel by lforst · Pull Request #15734 · getsentry/sentry-javascript · GitHub
Skip to content

perf(node): Short circuit flushing on Vercel only for Vercel - #15734

Merged
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation
Mar 21, 2025
Merged

perf(node): Short circuit flushing on Vercel only for Vercel#15734
lforst merged 3 commits into
developfrom
lforst-explanation-for-second-http-instrumentation

Conversation

@lforst

@lforstlforst commented Mar 19, 2025

Copy link
Copy Markdown
Contributor

Only adds the HttpInstrumentation that is supposed to flush for Vercel when we are on Vercel. Should reduce some overhead.

Also adds a bit more explanation because of #15602 (comment)

@lforst
lforst requested a review from mydeaMarch 19, 2025 12:52
@lforst
lforst marked this pull request as ready for review March 19, 2025 12:52

@mydeamydea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good 👍
Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

@lforst

Copy link
Copy Markdown
ContributorAuthor

Maybe a follow up to this - could we only add this instrumentation if needed (e.g. when process.env.VERCEL is set)? THis would avoid this (slight, but still) overhead for all other platforms 🤔

Actually, let me do this in this PR directly 👍 separation of concern wise I don't like it too much but for now it makes sense.

@lforstlforst changed the title docs(node): Add explanation for second http instrumentationperf(node): Short circuit flushing on Vercel only for VercelMar 20, 2025
@lforst
lforst requested a review from mydeaMarch 20, 2025 09:48
@lforst
lforst merged commit f4cd540 into developMar 21, 2025
@lforst
lforst deleted the lforst-explanation-for-second-http-instrumentation branch March 21, 2025 08:13
mergifyBot added a commit to reisene/HulajDusza-serwis that referenced this pull request Apr 17, 2025
![snyk-io[bot]](https://badgen.net/badge/icon/snyk-io%5Bbot%5D/green?label=)
![Contributor](https://badgen.net/badge/icon/Contributor/000000?label=)
[<img width="16" alt="Powered by Pull Request Badge"
src="https://user-images.githubusercontent.com/1393946/111216524-d2bb8e00-85d4-11eb-821b-ed4c00989c02.png">](https://pullrequestbadge.com/?utm_medium=github&utm_source=reisene&utm_campaign=badge_info)<!--
PR-BADGE: PLEASE DO NOT REMOVE THIS COMMENT -->
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)
<h3>Snyk has created this PR to upgrade @sentry/browser from 9.7.0 to
9.9.0.</h3>
:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>
- The recommended version is **2 versions** ahead of your current
version.
- The recommended version was released **24 days ago**.
<details>
<summary><b>Release notes</b></summary>
<br/>
<details>
<summary>Package name: <b>@sentry/browser</b></summary>
<ul>
<li>
<b>9.9.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.9.0">2025-03-24</a></br><h3>Important
Changes</h3>
<ul>
<li>
<p><strong>feat(nextjs): Support <code>instrumentation-client.ts</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15705"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15705/hovercard">#15705</a>)</strong></p>
<p>Next.js recently added a feature to support <a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/clientInstrumentationHook"
rel="nofollow">client-side (browser) instrumentation via the
<code>experimental.clientInstrumentationHook</code> flag and the
<code>instrumentation-client.ts</code> file</a>.</p>
<p>To be forwards compatible, the Sentry Next.js SDK will now pick up
<code>instrumentation-client.ts</code> files even on older Next.js
versions and add them to your client bundles.<br>
It is suggested that you either rename your
<code>sentry.client.config.ts</code> file to
<code>instrumentation-client.ts</code>, or if you already happen to have
a <code>instrumentation-client.ts</code> file move the contents of
<code>sentry.client.config.ts</code> to
<code>instrumentation-client.ts</code>.</p>
</li>
<li>
<p><strong>feat(browser): Add <code>previous_trace</code> span links (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15569"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15569/hovercard">#15569</a>)</strong></p>
<p>The <code>@ sentry/browser</code> SDK and SDKs based on <code>@
sentry/browser</code> now emits a link from the first root span of a
newly started trace to the root span of a previously started trace. You
can control this feature via an option in
<code>browserTracingIntegration()</code>:</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here'
integrations: [
Sentry.browserTracingIntegration({
// Available settings:
// - 'in-memory' (default): Stores previous trace information in memory
// - 'session-storage': Stores previous trace information in the
browser's `sessionStorage`
// - 'off': Disable storing and sending previous trace information
linkPreviousTrace: 'in-memory',
}),
],
});"><pre><span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span class="pl-en">init</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span>
<span class="pl-s1">integrations</span>: <span class="pl-kos">[</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">browserTracingIntegration</span><span
class="pl-kos">(</span><span class="pl-kos">{</span>
<span class="pl-c">// Available settings:</span>
<span class="pl-c">// - 'in-memory' (default): Stores previous trace
information in memory</span>
<span class="pl-c">// - 'session-storage': Stores previous trace
information in the browser's `sessionStorage`</span>
<span class="pl-c">// - 'off': Disable storing and sending previous
trace information</span>
<span class="pl-c1">linkPreviousTrace</span>: <span
class="pl-s">'in-memory'</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">,</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
</li>
<li>
<p><strong>feat(browser): Add <code>logger.X</code> methods to browser
SDK (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15763"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15763/hovercard">#15763</a>)</strong></p>
<p>For Sentry's <a
href="https://redirect.github.com/getsentry/sentry/discussions/86804">upcoming
logging product</a>, the SDK now supports sending logs via dedicated</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
dsn: 'your-dsn-here',
_experiments: {
enableLogs: true, // This is required to use the logging features
},
});
Sentry.logger.info('This is a trace message', { userId: 123 });
// See PR for better documentation"><pre><span
class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-en">init</span><span class="pl-kos">(</span><span
class="pl-kos">{</span>
<span class="pl-c1">dsn</span>: <span
class="pl-s">'your-dsn-here'</span><span class="pl-kos">,</span>
<span class="pl-c1">_experiments</span>: <span class="pl-kos">{</span>
<span class="pl-c1">enableLogs</span>: <span
class="pl-c1">true</span><span class="pl-kos">,</span> <span
class="pl-c">// This is required to use the logging features</span>
<span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-v">Sentry</span><span class="pl-kos">.</span><span
class="pl-c1">logger</span><span class="pl-kos">.</span><span
class="pl-en">info</span><span class="pl-kos">(</span><span
class="pl-s">'This is a trace message'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">userId</span>: <span class="pl-c1">123</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-c">// See PR for better documentation</span></pre></div>
<p>Please note that the logs product is still in early access. See the
link above for more information.</p>
</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>feat(browser): Attach host as part of error message to "Failed to
fetch" errors (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15729"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15729/hovercard">#15729</a>)</li>
<li>feat(core): Add <code>parseStringToURL</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15768"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15768/hovercard">#15768</a>)</li>
<li>feat(core): Optimize <code>dropUndefinedKeys</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15760"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15760/hovercard">#15760</a>)</li>
<li>feat(node): Add fastify <code>shouldHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15771"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15771/hovercard">#15771</a>)</li>
<li>fix(nuxt): Delete no longer needed Nitro 'close' hook (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15790"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15790/hovercard">#15790</a>)</li>
<li>perf(nestjs): Remove usage of <code>addNonEnumerableProperty</code>
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15766"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15766/hovercard">#15766</a>)</li>
<li>ref: Avoid some usage of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15757"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15757/hovercard">#15757</a>)</li>
<li>ref: Remove some usages of <code>dropUndefinedKeys()</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15781"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15781/hovercard">#15781</a>)</li>
<li>ref(nextjs): Fix Next.js vercel-edge runtime package information (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15789"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15789/hovercard">#15789</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.21 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.01 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.62 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.79 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>67.12 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.85 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.63 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.44 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.3 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.25 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.43 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.63 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.62 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.83 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.59 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.84 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>232.41 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.81 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>37.03 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.61 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.36 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.8.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.8.0">2025-03-21</a></br><ul>
<li>feat(node): Implement new continuous profiling API spec (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15635"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15635/hovercard">#15635</a>)</li>
<li>feat(profiling): Add platform to chunk envelope (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15758"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15758/hovercard">#15758</a>)</li>
<li>feat(react): Export captureReactException method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15746"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15746/hovercard">#15746</a>)</li>
<li>fix(node): Check for <code>res.end</code> before passing to Proxy
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15776"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15776/hovercard">#15776</a>)</li>
<li>perf(core): Add short-circuits to <code>eventFilters</code>
integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15752"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15752/hovercard">#15752</a>)</li>
<li>perf(node): Short circuit flushing on Vercel only for Vercel (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15734"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15734/hovercard">#15734</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.29 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.11 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.34 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.51 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.15 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.71 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.43 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.94 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.73 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.1 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.26 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.53 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.04 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.33 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.52 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.38 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.41 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.61 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.68 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.06 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.32 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.88 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.56 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.76 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.65 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.04 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.41 KB</td>
</tr>
</tbody>
</table>
</li>
<li>
<b>9.7.0</b> - <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.7.0">2025-03-20</a></br><ul>
<li>feat(core): Add <code>captureLog</code> method (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15717"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15717/hovercard">#15717</a>)</li>
<li>feat(remix/cloudflare): Export <code>sentryHandleError</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15726"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15726/hovercard">#15726</a>)</li>
<li>fix(node): Always flush on Vercel before Lambda freeze (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15602"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15602/hovercard">#15602</a>)</li>
<li>fix(node): Ensure incoming traces are propagated without
HttpInstrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15732"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15732/hovercard">#15732</a>)</li>
<li>fix(node): Use <code>fatal</code> level for unhandled rejections in
<code>strict</code> mode (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15720"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15720/hovercard">#15720</a>)</li>
<li>fix(nuxt): Delete Nuxt server template injection (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/15749"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15749/hovercard">#15749</a>)</li>
</ul>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>@ sentry/browser</td>
<td>23.28 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>23.09 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.33 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.5 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>66.93 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.13 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.69 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.42 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.91 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.7 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>25.08 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.23 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.52 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.02 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.3 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.49 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.37 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.39 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.57 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>71.56 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>107.94 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.2 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.77 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.52 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.73 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.62 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.01 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.37 KB</td>
</tr>
</tbody>
</table>
</li>
</ul>
from <a
href="https://redirect.github.com/getsentry/sentry-javascript/releases">@sentry/browser
GitHub release notes</a>
</details>
</details>
---
> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.
---
**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._
**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJjNzI0M2IxOS0yMmVlLTQ5NWItYWJhMS02YjJlOGVhY2FlYjYiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImM3MjQzYjE5LTIyZWUtNDk1Yi1hYmExLTZiMmU4ZWFjYWViNiJ9fQ=="
width="0" height="0"/>
> - 🧐 [View latest project
report](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github-cloud-app&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)
[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@sentry/browser","from":"9.7.0","to":"9.9.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","prPublicId":"c7243b19-22ee-495b-aba1-6b2e8eacaeb6","packageManager":"npm","priorityScoreList":[],"projectPublicId":"55e114f8-489e-4f14-b900-20574b041e59","projectUrl":"https://app.snyk.io/org/reisene/project/55e114f8-489e-4f14-b900-20574b041e59?utm_source=github-cloud-app&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2025-03-24T13:46:37.750Z"},"vulns":[]}'
## Podsumowanie od Sourcery
Aktualizacja @sentry/browser z wersji 9.7.0 do 9.9.0
Ulepszenia:
- Dodano wsparcie dla instrumentacji po stronie klienta Next.js
- Wprowadzono możliwość łączenia poprzednich śladów (traces)
- Dodano metody loggera dla nadchodzącego produktu do logowania Sentry
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Upgrade @sentry/browser from version 9.7.0 to 9.9.0
Enhancements:
- Added support for Next.js client-side instrumentation
- Introduced ability to link previous traces
- Added logger methods for upcoming Sentry logging product
</details>
Sign up for freeto 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.

2 participants

@lforst@mydea