Skip to content

ref: Stop using dropUndefinedKeys in SpanExporter #15794

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 1 commit into from
Mar 24, 2025

Conversation

mydea
Copy link
Member

@mydea mydea commented Mar 24, 2025

Another place to get rid of this, this is serialized afterwards and this should not really matter!

@mydea mydea requested review from lforst and AbhiPrasad March 24, 2025 12:08
@mydea mydea self-assigned this Mar 24, 2025
@mydea mydea merged commit 4262d53 into develop Mar 24, 2025
108 checks passed
@mydea mydea deleted the fn/ref-undefinedKeysSpanExporter branch March 24, 2025 13:09
mergify bot added a commit to reisene/HulajDusza-serwis that referenced this pull request Apr 18, 2025
![reisene](https://badgen.net/badge/icon/reisene/green?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 -->

<!--- SUMMARY_MARKER --->
## Sweep Summary <sub><a href="https://app.sweep.dev"><img
src="https://raw.githubusercontent.com/sweepai/sweep/main/.assets/sweep-square.png"
width="25" alt="Sweep"></a></sub>

Adds user registration functionality with email uniqueness validation
and password encoding to the HulajDusza service.

- Created `UserRegistrationDto` with validation annotations for email,
password, and name fields.
- Added `isEmailInUse` method to `UserService` to check if an email is
already registered.
- Implemented `registerUser` method in `UserServiceImpl` that creates a
new user with encoded password.
- Added `/api/users/register` endpoint in `UserController` that handles
user registration requests and returns appropriate HTTP responses.

---
[Ask Sweep AI questions about this PR](https://app.sweep.dev)
<!--- SUMMARY_MARKER --->


![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.9.0 to
9.10.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 **1 version** ahead of your current
version.

- The recommended version was released **22 days ago**.



<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>@sentry/browser</b></summary>
    <ul>
      <li>
<b>9.10.0</b> - <a
href="https://github.com/getsentry/sentry-javascript/releases/tag/9.10.0">2025-03-27</a></br><h3>Important
Changes</h3>
<ul>
<li>
<p><strong>feat: Add support for logs</strong></p>
<ul>
<li>feat(node): Add logging public APIs to Node SDKs (<a
href="https://github.com/getsentry/sentry-javascript/pull/15764"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15764/hovercard">#15764</a>)</li>
<li>feat(core): Add support for <code>beforeSendLog</code> (<a
href="https://github.com/getsentry/sentry-javascript/pull/15814"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15814/hovercard">#15814</a>)</li>
<li>feat(core): Add support for parameterizing logs (<a
href="https://github.com/getsentry/sentry-javascript/pull/15812"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15812/hovercard">#15812</a>)</li>
<li>fix: Remove critical log severity level (<a
href="https://github.com/getsentry/sentry-javascript/pull/15824"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15824/hovercard">#15824</a>)</li>
</ul>
<p>All JavaScript SDKs other than <code>@ sentry/cloudflare</code> and
<code>@ sentry/deno</code> now support sending logs via dedicated
methods as part of Sentry's <a
href="https://github.com/getsentry/sentry/discussions/86804">upcoming
logging product</a>.</p>
<p>Logging is gated by an experimental option,
<code>_experiments.enableLogs</code>.</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="Sentry.init({
  dsn: 'PUBLIC_DSN',
  // `enableLogs` must be set to true to use the logging features
  _experiments: { enableLogs: true },
});

const { trace, debug, info, warn, error, fatal, fmt } = Sentry.logger;

trace('Starting database connection', { database: 'users' });
debug('Cache miss for user', { userId: 123 });
error('Failed to process payment', { orderId: 'order_123', amount: 99.99
});
fatal('Database connection pool exhausted', { database: 'users',
activeConnections: 100 });

// Structured logging via the `fmt` helper function. When you use `fmt`,
the string template and parameters are sent separately so they can be
queried independently in Sentry.

info(fmt(`Updated profile for user ${userId}`));
warn(fmt(`Rate limit approaching for endpoint ${endpoint}. Requests:
${requests}, Limit: ${limit}`));"><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">'PUBLIC_DSN'</span><span class="pl-kos">,</span>
<span class="pl-c">// `enableLogs` must be set to true to use the
logging features</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-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>

<span class="pl-k">const</span> <span class="pl-kos">{</span> trace<span
class="pl-kos">,</span> debug<span class="pl-kos">,</span> info<span
class="pl-kos">,</span> warn<span class="pl-kos">,</span> error<span
class="pl-kos">,</span> fatal<span class="pl-kos">,</span> fmt <span
class="pl-kos">}</span> <span class="pl-c1">=</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">trace</span><span class="pl-kos">(</span><span
class="pl-s">'Starting database connection'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">database</span>: <span class="pl-s">'users'</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span>
<span class="pl-en">debug</span><span class="pl-kos">(</span><span
class="pl-s">'Cache miss for user'</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-en">error</span><span class="pl-kos">(</span><span
class="pl-s">'Failed to process payment'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">orderId</span>: <span class="pl-s">'order_123'</span><span
class="pl-kos">,</span> <span class="pl-c1">amount</span>: <span
class="pl-c1">99.99</span> <span class="pl-kos">}</span><span
class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-en">fatal</span><span class="pl-kos">(</span><span
class="pl-s">'Database connection pool exhausted'</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">database</span>: <span class="pl-s">'users'</span><span
class="pl-kos">,</span> <span class="pl-c1">activeConnections</span>:
<span class="pl-c1">100</span> <span class="pl-kos">}</span><span
class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-c">// Structured logging via the `fmt` helper function.
When you use `fmt`, the string template and parameters are sent
separately so they can be queried independently in Sentry.</span>

<span class="pl-en">info</span><span class="pl-kos">(</span><span
class="pl-en">fmt</span><span class="pl-kos">(</span><span
class="pl-s">`Updated profile for user <span class="pl-s1"><span
class="pl-kos">${</span><span class="pl-s1">userId</span><span
class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span
class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-en">warn</span><span class="pl-kos">(</span><span
class="pl-en">fmt</span><span class="pl-kos">(</span><span
class="pl-s">`Rate limit approaching for endpoint <span
class="pl-s1"><span class="pl-kos">${</span><span
class="pl-s1">endpoint</span><span class="pl-kos">}</span></span>.
Requests: <span class="pl-s1"><span class="pl-kos">${</span><span
class="pl-s1">requests</span><span class="pl-kos">}</span></span>,
Limit: <span class="pl-s1"><span class="pl-kos">${</span><span
class="pl-s1">limit</span><span
class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span
class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p>With server-side SDKs like <code>@ sentry/node</code>, <code>@
sentry/bun</code> or server-side of <code>@ sentry/nextjs</code> or
<code>@ sentry/sveltekit</code>, you can do structured logging without
needing the <code>fmt</code> helper function.</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="const { info, warn }
= Sentry.logger;

info('User %s logged in successfully', [123]);
warn('Failed to load user %s data', [123], { errorCode: 404
});"><pre><span class="pl-k">const</span> <span class="pl-kos">{</span>
info<span class="pl-kos">,</span> warn <span class="pl-kos">}</span>
<span class="pl-c1">=</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">'User %s logged in successfully'</span><span
class="pl-kos">,</span> <span class="pl-kos">[</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-en">warn</span><span class="pl-kos">(</span><span
class="pl-s">'Failed to load user %s data'</span><span
class="pl-kos">,</span> <span class="pl-kos">[</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-c1">errorCode</span>: <span class="pl-c1">404</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<p>To filter logs, or update them before they are sent to Sentry, you
can use the <code>_experiments.beforeSendLog</code> option.</p>
</li>
<li>
<p><strong>feat(browser): Add <code>diagnoseSdkConnectivity()</code>
function to programmatically detect possible connectivity issues (<a
href="https://github.com/getsentry/sentry-javascript/pull/15821"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15821/hovercard">#15821</a>)</strong></p>
<p>The <code>diagnoseSdkConnectivity()</code> function can be used to
programmatically detect possible connectivity issues with the Sentry
SDK.</p>
<div class="highlight highlight-source-js notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="const result = await
Sentry.diagnoseSdkConnectivity();"><pre><span class="pl-k">const</span>
<span class="pl-s1">result</span> <span class="pl-c1">=</span> <span
class="pl-k">await</span> <span class="pl-v">Sentry</span><span
class="pl-kos">.</span><span
class="pl-en">diagnoseSdkConnectivity</span><span
class="pl-kos">(</span><span class="pl-kos">)</span><span
class="pl-kos">;</span></pre></div>
<p>The result will be an object with the following properties:</p>
<ul>
<li><code>"no-client-active"</code>: There was no active client when the
function was called. This possibly means that the SDK was not
initialized yet.</li>
<li><code>"sentry-unreachable"</code>: The Sentry SaaS servers were not
reachable. This likely means that there is an ad blocker active on the
page or that there are other connection issues.</li>
<li><code>undefined</code>: The SDK is working as expected.</li>
</ul>
</li>
<li>
<p><strong>SDK Tracing Performance Improvements for Node
SDKs</strong></p>
<ul>
<li>feat: Stop using <code>dropUndefinedKeys</code> (<a
href="https://github.com/getsentry/sentry-javascript/pull/15796"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15796/hovercard">#15796</a>)</li>
<li>feat(node): Only add span listeners for instrumentation when used
(<a
href="https://github.com/getsentry/sentry-javascript/pull/15802"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15802/hovercard">#15802</a>)</li>
<li>ref: Avoid <code>dropUndefinedKeys</code> for
<code>spanToJSON</code> calls (<a
href="https://github.com/getsentry/sentry-javascript/pull/15792"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15792/hovercard">#15792</a>)</li>
<li>ref: Avoid using <code>SentryError</code> for PromiseBuffer control
flow (<a
href="https://github.com/getsentry/sentry-javascript/pull/15822"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15822/hovercard">#15822</a>)</li>
<li>ref: Stop using <code>dropUndefinedKeys</code> in SpanExporter (<a
href="https://github.com/getsentry/sentry-javascript/pull/15794"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15794/hovercard">#15794</a>)</li>
<li>ref(core): Avoid using <code>SentryError</code> for event processing
control flow (<a
href="https://github.com/getsentry/sentry-javascript/pull/15823"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15823/hovercard">#15823</a>)</li>
<li>ref(node): Avoid <code>dropUndefinedKeys</code> in Node SDK init (<a
href="https://github.com/getsentry/sentry-javascript/pull/15797"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15797/hovercard">#15797</a>)</li>
<li>ref(opentelemetry): Avoid sampling work for non-root spans (<a
href="https://github.com/getsentry/sentry-javascript/pull/15820"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15820/hovercard">#15820</a>)</li>
</ul>
<p>We've been hard at work making performance improvements to the Sentry
Node SDKs (<code>@ sentry/node</code>, <code>@
sentry/aws-serverless</code>, <code>@ sentry/nestjs</code>, etc.). We've
seen that upgrading from <code>9.7.0</code> to <code>9.10.0</code> leads
to 30-40% improvement in request latency for HTTP web-server
applications that use tracing with high sample rates. Non web-server
applications and non-tracing applications will see smaller
improvements.</p>
</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>chore(deps): Bump <code>rrweb</code> to <code>2.35.0</code> (<a
href="https://github.com/getsentry/sentry-javascript/pull/15825"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15825/hovercard">#15825</a>)</li>
<li>deps: Bump bundler plugins to <code>3.2.3</code> (<a
href="https://github.com/getsentry/sentry-javascript/pull/15829"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15829/hovercard">#15829</a>)</li>
<li>feat: Always truncate stored breadcrumb messages to 2kb (<a
href="https://github.com/getsentry/sentry-javascript/pull/15819"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15819/hovercard">#15819</a>)</li>
<li>feat(nextjs): Disable server webpack-handling for static builds (<a
href="https://github.com/getsentry/sentry-javascript/pull/15751"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15751/hovercard">#15751</a>)</li>
<li>fix(nuxt): Don't override Nuxt options if undefined (<a
href="https://github.com/getsentry/sentry-javascript/pull/15795"
data-hovercard-type="pull_request"
data-hovercard-url="/getsentry/sentry-javascript/pull/15795/hovercard">#15795</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.08 KB</td>
</tr>
<tr>
<td>@ sentry/browser - with treeshaking flags</td>
<td>22.88 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing)</td>
<td>36.49 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay)</td>
<td>73.65 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay) - with treeshaking
flags</td>
<td>67 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay with Canvas)</td>
<td>78.3 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Tracing, Replay, Feedback)</td>
<td>90.87 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. Feedback)</td>
<td>40.21 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. sendFeedback)</td>
<td>27.71 KB</td>
</tr>
<tr>
<td>@ sentry/browser (incl. FeedbackAsync)</td>
<td>32.5 KB</td>
</tr>
<tr>
<td>@ sentry/react</td>
<td>24.86 KB</td>
</tr>
<tr>
<td>@ sentry/react (incl. Tracing)</td>
<td>38.39 KB</td>
</tr>
<tr>
<td>@ sentry/vue</td>
<td>27.3 KB</td>
</tr>
<tr>
<td>@ sentry/vue (incl. Tracing)</td>
<td>38.18 KB</td>
</tr>
<tr>
<td>@ sentry/svelte</td>
<td>23.12 KB</td>
</tr>
<tr>
<td>CDN Bundle</td>
<td>24.33 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing)</td>
<td>36.51 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay)</td>
<td>71.53 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback)</td>
<td>76.71 KB</td>
</tr>
<tr>
<td>CDN Bundle - uncompressed</td>
<td>70.93 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing) - uncompressed</td>
<td>108.11 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td>
<td>219.4 KB</td>
</tr>
<tr>
<td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td>
<td>231.97 KB</td>
</tr>
<tr>
<td>@ sentry/nextjs (client)</td>
<td>39.68 KB</td>
</tr>
<tr>
<td>@ sentry/sveltekit (client)</td>
<td>36.92 KB</td>
</tr>
<tr>
<td>@ sentry/node</td>
<td>142.91 KB</td>
</tr>
<tr>
<td>@ sentry/node - without tracing</td>
<td>96.12 KB</td>
</tr>
<tr>
<td>@ sentry/aws-serverless</td>
<td>120.46 KB</td>
</tr>
</tbody>
</table>
      </li>
      <li>
<b>9.9.0</b> - <a
href="https://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://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://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://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://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://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://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://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://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://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://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://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://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://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>
    </ul>
from <a
href="https://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=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJmYjEwN2UyYy01YjQ3LTRlMzAtYWM2Ni1iN2NjNmM1NTFmNTAiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImZiMTA3ZTJjLTViNDctNGUzMC1hYzY2LWI3Y2M2YzU1MWY1MCJ9fQ=="
width="0" height="0"/>

> - 🧐 [View latest project
report](https://app.snyk.io/org/reisene/project/3b48baaa-833b-4239-b348-16091472ee83?utm_source&#x3D;github&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/3b48baaa-833b-4239-b348-16091472ee83/settings/integration?utm_source&#x3D;github&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/3b48baaa-833b-4239-b348-16091472ee83/settings/integration?pkg&#x3D;@sentry/browser&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@sentry/browser","from":"9.9.0","to":"9.10.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"fb107e2c-5b47-4e30-ac66-b7cc6c551f50","prPublicId":"fb107e2c-5b47-4e30-ac66-b7cc6c551f50","packageManager":"npm","priorityScoreList":[],"projectPublicId":"3b48baaa-833b-4239-b348-16091472ee83","projectUrl":"https://app.snyk.io/org/reisene/project/3b48baaa-833b-4239-b348-16091472ee83?utm_source=github&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":1,"publishedDate":"2025-03-27T18:39:06.554Z"},"vulns":[]}'

## Podsumowanie wygenerowane przez Sourcery

Aktualizacja @sentry/browser z wersji 9.9.0 do 9.10.0, zawierająca nowe
funkcje i poprawki wydajności.

Nowe funkcje:
- Wprowadzono metody logowania z eksperymentalnym wsparciem logów
- Dodano możliwość łączenia poprzednich śladów (traces) w śledzeniu
przeglądarki (browser tracing)

Ulepszenia:
- Dodano wsparcie dla programowego diagnozowania problemów z łącznością
SDK
- Poprawiono wydajność dla Node SDK dzięki optymalizacjom śledzenia
(tracing optimizations)

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Upgrade @sentry/browser from version 9.9.0 to 9.10.0, incorporating new
features and performance improvements

New Features:
- Introduced logging methods with experimental log support
- Added ability to link previous traces in browser tracing

Enhancements:
- Added support for programmatically diagnosing SDK connectivity issues
- Improved performance for Node SDKs with tracing optimizations

</details>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants