This package allows you to send your NodeJS OpenTelemetry trace data to Sentry via OpenTelemetry SpanProcessors.
This SDK is considered experimental and in an alpha state. It may experience breaking changes. Please reach out on GitHub if you have any feedback/concerns.
npm install @sentry/node @sentry/opentelemetry-node
# Or yarn
yarn add @sentry/node @sentry/opentelemetry-nodeNote that @sentry/opentelemetry-node depends on the following peer dependencies:
@opentelemetry/apiversion1.0.0or greater@opentelemetry/sdk-trace-baseversion1.0.0or greater, or a package that implements that, like@opentelemetry/sdk-node.
You need to register the SentrySpanProcessor and SentryPropagator with your OpenTelemetry installation:
const Sentry = require("@sentry/node");
const {
SentrySpanProcessor,
SentryPropagator,
} = require("@sentry/opentelemetry-node");
const opentelemetry = require("@opentelemetry/sdk-node");
const otelApi = require("@opentelemetry/api");
const {
getNodeAutoInstrumentations,
} = require("@opentelemetry/auto-instrumentations-node");
const {
OTLPTraceExporter,
} = require("@opentelemetry/exporter-trace-otlp-grpc");
// Make sure to call `Sentry.init` BEFORE initializing the OpenTelemetry SDK
Sentry.init({
dsn: '__DSN__',
tracesSampleRate: 1.0,
// set the instrumenter to use OpenTelemetry instead of Sentry
instrumenter: 'otel',
// ...
});
const sdk = new opentelemetry.NodeSDK({
// Existing config
traceExporter: new OTLPTraceExporter(),
instrumentations: [getNodeAutoInstrumentations()],
// Sentry config
spanProcessor: new SentrySpanProcessor(),
textMapPropagator: new SentryPropagator(),
});
sdk.start();