-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(core): Ensure standalone spans are not sent if SDK is disabled #14088
fix(core): Ensure standalone spans are not sent if SDK is disabled #14088
Conversation
@@ -565,7 +565,7 @@ export abstract class BaseClient<O extends ClientOptions> implements Client<O> { | |||
|
|||
if (this._isEnabled() && this._transport) { | |||
return this._transport.send(envelope).then(null, reason => { | |||
DEBUG_BUILD && logger.error('Error while sending event:', reason); | |||
DEBUG_BUILD && logger.error('Error while sending envelope:', reason); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given that sendEnvelope
is called for multiple envelope item types (not just events), I opted to slightly change the message here to reflect this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
makes sense to me! 👍
size-limit report 📦
|
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@sentry/node](https://github.com/getsentry/sentry-javascript/tree/master/packages/node) ([source](https://github.com/getsentry/sentry-javascript)) | dependencies | minor | [`8.35.0` -> `8.36.0`](https://renovatebot.com/diffs/npm/@sentry%2fnode/8.35.0/8.36.0) | | [@sentry/react](https://github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://github.com/getsentry/sentry-javascript)) | dependencies | minor | [`8.35.0` -> `8.36.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.35.0/8.36.0) | --- ### Release Notes <details> <summary>getsentry/sentry-javascript (@​sentry/node)</summary> ### [`v8.36.0`](https://github.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#8360) [Compare Source](getsentry/sentry-javascript@8.35.0...8.36.0) ##### Important Changes - **feat(nextjs/vercel-edge/cloudflare): Switch to OTEL for performance monitoring ([#​13889](getsentry/sentry-javascript#13889 With this release, the Sentry Next.js, and Cloudflare SDKs will now capture performance data based on OpenTelemetry. Some exceptions apply in cases where Next.js captures inaccurate data itself. NOTE: You may experience minor differences in transaction names in Sentry. Most importantly transactions for serverside pages router invocations will now be named `GET /[param]/my/route` instead of `/[param]/my/route`. This means that those transactions are now better aligned with the OpenTelemetry semantic conventions. ##### Other Changes - deps: Bump bundler plugins and CLI to 2.22.6 and 2.37.0 respectively ([#​14050](getsentry/sentry-javascript#14050)) - feat(deps): bump [@​opentelemetry/instrumentation-aws-sdk](https://github.com/opentelemetry/instrumentation-aws-sdk) from 0.44.0 to 0.45.0 ([#​14099](getsentry/sentry-javascript#14099)) - feat(deps): bump [@​opentelemetry/instrumentation-connect](https://github.com/opentelemetry/instrumentation-connect) from 0.39.0 to 0.40.0 ([#​14101](getsentry/sentry-javascript#14101)) - feat(deps): bump [@​opentelemetry/instrumentation-express](https://github.com/opentelemetry/instrumentation-express) from 0.43.0 to 0.44.0 ([#​14102](getsentry/sentry-javascript#14102)) - feat(deps): bump [@​opentelemetry/instrumentation-fs](https://github.com/opentelemetry/instrumentation-fs) from 0.15.0 to 0.16.0 ([#​14098](getsentry/sentry-javascript#14098)) - feat(deps): bump [@​opentelemetry/instrumentation-kafkajs](https://github.com/opentelemetry/instrumentation-kafkajs) from 0.3.0 to 0.4.0 ([#​14100](getsentry/sentry-javascript#14100)) - feat(nextjs): Add method and url to route handler request data ([#​14084](getsentry/sentry-javascript#14084)) - feat(node): Add breadcrumbs for `child_process` and `worker_thread` ([#​13896](getsentry/sentry-javascript#13896)) - fix(core): Ensure standalone spans are not sent if SDK is disabled ([#​14088](getsentry/sentry-javascript#14088)) - fix(nextjs): Await flush in api handlers ([#​14023](getsentry/sentry-javascript#14023)) - fix(nextjs): Don't leak webpack types into exports ([#​14116](getsentry/sentry-javascript#14116)) - fix(nextjs): Fix matching logic for file convention type for root level components ([#​14038](getsentry/sentry-javascript#14038)) - fix(nextjs): Respect directives in value injection loader ([#​14083](getsentry/sentry-javascript#14083)) - fix(nuxt): Only wrap `.mjs` entry files in rollup ([#​14060](getsentry/sentry-javascript#14060)) - fix(nuxt): Re-export all exported bindings ([#​14086](getsentry/sentry-javascript#14086)) - fix(nuxt): Server-side setup in readme ([#​14049](getsentry/sentry-javascript#14049)) - fix(profiling-node): Always warn when running on incompatible major version of Node.js ([#​14043](getsentry/sentry-javascript#14043)) - fix(replay): Fix `onError` callback ([#​14002](getsentry/sentry-javascript#14002)) - perf(otel): Only calculate current timestamp once ([#​14094](getsentry/sentry-javascript#14094)) - test(browser-integration): Add sentry DSN route handler by default ([#​14095](getsentry/sentry-javascript#14095)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzguNiIsInVwZGF0ZWRJblZlciI6IjM4LjEzOC42IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=--> Reviewed-on: https://git.tristess.app/alexandresoro/ouca/pulls/289 Reviewed-by: Alexandre Soro <code@soro.dev> Co-authored-by: renovate <renovate@git.tristess.app> Co-committed-by: renovate <renovate@git.tristess.app>
Previously, when standalone (most prominently INP) spans would
.end()
, they'd always be sent to Sentry, even if the SDK was disabled (viaSentry.init({enabled: false})
for example). This was caused by us directly callingtransport.send
and not checking for the enabled option, instead of using the client to send the span envelope.This PR now changes the sending logic to use the client's
sendEnvelope
method which we generally use to send envelopes (sessions, client reports, checkins, metrics (RIP), and also events). This has a minor implication: We will now also emit abeforeEnvelope
client hook event for sending standalone spans. I think this is actually more correct than before but could potentially break someone. IMO this is worth the "risk" as it's easily revertible and client hooks are primarily meant for internal use. Happy to adjust the PR though if reviewers have different opinions.fixes #14082