JSPM

  • Created
  • Published
  • Downloads 99260
  • Score
    100M100P100Q155031F
  • License MIT

Native Tools for the Official Sentry Node.js SDK

Package Exports

  • @sentry/node-native
  • @sentry/node-native/event-loop-block-watchdog
  • @sentry/node-native/package.json

Readme

Sentry

Native Tools for the Official Sentry Node.js SDK

npm version npm dm npm dt

Installation

# Using yarn
yarn add @sentry/node @sentry/node-native

# Using npm
npm install --save @sentry/node @sentry/node-native

eventLoopBlockIntegration

The eventLoopBlockIntegration can be used to monitor for blocked event loops in all threads of a Node.js application.

If you instrument your application via the Node.js --import flag, Sentry will be started and this instrumentation will be automatically applied to all worker threads.

instrument.mjs

import * as Sentry from '@sentry/node';
import { eventLoopBlockIntegration } from '@sentry/node-native';

Sentry.init({
  dsn: '__YOUR_DSN__',
  // Capture stack traces when the event loop is blocked for more than 500ms
  integrations: [eventLoopBlockIntegration({ threshold: 500 })],
});

app.mjs

import { Worker } from 'worker_threads';

const worker = new Worker(new URL('./worker.mjs', import.meta.url));

// This main thread will be monitored for blocked event loops

worker.mjs

// This worker thread will also be monitored for blocked event loops too

Start your application:

node --import instrument.mjs app.mjs

If a thread is blocked for more than the configured threshold, stack traces will be captured for all threads and sent to Sentry.