npm install @sentry/node
# Or yarn
yarn add @sentry/node
Sentry should be initialized as early in your app as possible. It is essential that you call Sentry.init
before you
require any other modules in your application, otherwise auto-instrumentation of these modules will not work.
You need to create a file named instrument.js
that imports and initializes Sentry:
// CJS Syntax
const Sentry = require('@sentry/node');
// ESM Syntax
import * as Sentry from '@sentry/node';
Sentry.init({
dsn: '__DSN__',
// ...
});
You need to require or import the instrument.js
file before importing any other modules in your application. This is
necessary to ensure that Sentry can automatically instrument all modules in your application:
// Import this first!
import './instrument';
// Now import other modules
import http from 'http';
// Your application code goes here
When running your application in ESM mode, you should use the Node.js
--import
command line option to ensure that Sentry is loaded before
the application code is evaluated.
Adjust the Node.js call for your application to use the --import
parameter and point it at instrument.js
, which
contains your Sentry.init
() code:
# Note: This is only available for Node v18.19.0 onwards.
node --import ./instrument.mjs app.mjs
If it is not possible for you to pass the --import
flag to the Node.js binary, you can alternatively use the
NODE_OPTIONS
environment variable as follows:
NODE_OPTIONS="--import ./instrument.mjs" npm run start