Description
Description
Today, we have @sentry/node
which out of the box comes with a lot of (OpenTelemetry-based) auto instrumentation.
While this is the default experience we want for our users - e.g. no need to install further packages - it can be annoying for certain users:
- Users who do not care about performance monitoring, do not need to pull in all these node dependencies
- Users who have their own OTEL setup may run into problems with conflicts of versions
- Users who do not care about performance auto-instrumentation, for example if you instrument a CLI or similar things
For these users, we should look into providing an easier way to get the Sentry experience they deserve. For example, we could add a @sentry/node-core
package, which is more or less the node package minus all the OTEL instrumentation packages. Then, the @sentry/node
package could extend this and add the respective auto instrumentation. The node-core
package would only register our own custom http & fetch instrumentation to get the core functionality we need working (this is already basically done for http, for fetch still TODO: #15212)
With this, users could choose to do:
import * as Sentry from '@sentry/node-core';
Sentry.init({
dsn: 'xxx',
});
And would get a fully working Sentry instance, but without performance auto-instrumentation & otel instrumentation package dependencies.
Notes / Thoughts
Some additional pointers for implementation:
- The node core SDK needs a
httpIntegration
&fetchIntergation
which basically only registerSentryHttpInstrumentation
andSentryNodeFetchInstrumentation
. The node SDK must extend these and register the additional otel instrumentations, as we already do today
Metadata
Assignees
Type
Projects
Status
Waiting for: Product Owner