@sentry/node

  • Version 10.3.0
  • Published
  • 1.14 MB
  • 35 dependencies
  • MIT license

Install

npm i @sentry/node
yarn add @sentry/node
pnpm add @sentry/node

Overview

Sentry Node SDK using OpenTelemetry for performance instrumentation

Index

Functions

function amqplibIntegration

amqplibIntegration: () => any;
  • Adds Sentry tracing instrumentation for the [amqplib](https://www.npmjs.com/package/amqplib) library.

    For more information, see the [amqplibIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/amqplib/).

    Example 1

    const Sentry = require('@sentry/node');
    Sentry.init({
    integrations: [Sentry.amqplibIntegration()],
    });

function buildLaunchDarklyFlagUsedHandler

buildLaunchDarklyFlagUsedHandler: () => unknown;
  • This is a shim for the LaunchDarkly flag used handler.

function connectIntegration

connectIntegration: () => any;
  • Adds Sentry tracing instrumentation for [Connect](https://github.com/senchalabs/connect/).

    If you also want to capture errors, you need to call setupConnectErrorHandler(app) after you initialize your connect app.

    For more information, see the [connect documentation](https://docs.sentry.io/platforms/javascript/guides/connect/).

    Example 1

    const Sentry = require('@sentry/node');
    Sentry.init({
    integrations: [Sentry.connectIntegration()],
    })

function dataloaderIntegration

dataloaderIntegration: () => any;
  • Adds Sentry tracing instrumentation for the [dataloader](https://www.npmjs.com/package/dataloader) library.

    For more information, see the [dataloaderIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/dataloader/).

    Example 1

    const Sentry = require('@sentry/node');
    Sentry.init({
    integrations: [Sentry.dataloaderIntegration()],
    });

function expressErrorHandler

expressErrorHandler: (options?: ExpressHandlerOptions) => ExpressErrorMiddleware;
  • An Express-compatible error handler.

function expressIntegration

expressIntegration: () => any;
  • Adds Sentry tracing instrumentation for [Express](https://expressjs.com/).

    If you also want to capture errors, you need to call setupExpressErrorHandler(app) after you set up your Express server.

    For more information, see the [express documentation](https://docs.sentry.io/platforms/javascript/guides/express/).

    Example 1

    const Sentry = require('@sentry/node');
    Sentry.init({
    integrations: [Sentry.expressIntegration()],
    })

function fastifyIntegration

fastifyIntegration: (
options?: Partial<FastifyIntegrationOptions> | undefined
) => any;
  • Adds Sentry tracing instrumentation for [Fastify](https://fastify.dev/).

    If you also want to capture errors, you need to call setupFastifyErrorHandler(app) after you set up your Fastify server.

    For more information, see the [fastify documentation](https://docs.sentry.io/platforms/javascript/guides/fastify/).

    Example 1

    const Sentry = require('@sentry/node');
    Sentry.init({
    integrations: [Sentry.fastifyIntegration()],
    })

function firebaseIntegration

firebaseIntegration: () => any;

    function fsIntegration

    fsIntegration: (
    options?:
    | {
    recordFilePaths?: boolean | undefined;
    recordErrorMessagesAsSpanAttributes?: boolean | undefined;
    }
    | undefined
    ) => any;
    • This integration will create spans for fs API operations, like reading and writing files.

      **WARNING:** This integration may add significant overhead to your application. Especially in scenarios with a lot of file I/O, like for example when running a framework dev server, including this integration can massively slow down your application.

      Parameter options

      Configuration for this integration.

    function genericPoolIntegration

    genericPoolIntegration: () => any;
    • Adds Sentry tracing instrumentation for the [generic-pool](https://www.npmjs.com/package/generic-pool) library.

      For more information, see the [genericPoolIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/genericpool/).

      Example 1

      const Sentry = require('@sentry/node');
      Sentry.init({
      integrations: [Sentry.genericPoolIntegration()],
      });

    function getAutoPerformanceIntegrations

    getAutoPerformanceIntegrations: () => Integration[];
    • With OTEL, all performance integrations will be added, as OTEL only initializes them when the patched package is actually required.

    function getDefaultIntegrations

    getDefaultIntegrations: (options: Options) => Integration[];
    • Get the default integrations for the Node SDK.

    function getDefaultIntegrationsWithoutPerformance

    getDefaultIntegrationsWithoutPerformance: () => Integration[];
    • Get default integrations, excluding performance.

    function graphqlIntegration

    graphqlIntegration: (options?: GraphqlOptions | undefined) => any;
    • Adds Sentry tracing instrumentation for the [graphql](https://www.npmjs.com/package/graphql) library.

      For more information, see the [graphqlIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/graphql/).

      Parameter options

      Configuration options for the GraphQL integration.

      Example 1

      ```javascript const Sentry = require('@sentry/node');

      Sentry.init({ integrations: [Sentry.graphqlIntegration()], });

    function hapiIntegration

    hapiIntegration: () => any;
    • Adds Sentry tracing instrumentation for [Hapi](https://hapi.dev/).

      If you also want to capture errors, you need to call setupHapiErrorHandler(server) after you set up your server.

      For more information, see the [hapi documentation](https://docs.sentry.io/platforms/javascript/guides/hapi/).

      Example 1

      const Sentry = require('@sentry/node');
      Sentry.init({
      integrations: [Sentry.hapiIntegration()],
      })

    function httpIntegration

    httpIntegration: (options?: HttpOptions | undefined) => any;
    • The http integration instruments Node's internal http and https modules. It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.

    function init

    init: (options?: NodeOptions | undefined) => NodeClient | undefined;
    • Initialize Sentry for Node.

    function initOpenTelemetry

    initOpenTelemetry: (
    client: NodeClient,
    options?: AdditionalOpenTelemetryOptions
    ) => void;
    • Initialize OpenTelemetry for Node.

    function initWithoutDefaultIntegrations

    initWithoutDefaultIntegrations: (
    options?: NodeOptions | undefined
    ) => NodeClient | undefined;
    • Initialize Sentry for Node, without any integrations added by default.

    function kafkaIntegration

    kafkaIntegration: () => any;
    • Adds Sentry tracing instrumentation for the [kafkajs](https://www.npmjs.com/package/kafkajs) library.

      For more information, see the [kafkaIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/kafka/).

      Example 1

      ```javascript const Sentry = require('@sentry/node');

      Sentry.init({ integrations: [Sentry.kafkaIntegration()], });

    function knexIntegration

    knexIntegration: () => any;
    • Knex integration

      Capture tracing data for [Knex](https://knexjs.org/).

      Example 1

      import * as Sentry from '@sentry/node';
      Sentry.init({
      integrations: [Sentry.knexIntegration()],
      });

    function koaIntegration

    koaIntegration: (options?: KoaOptions | undefined) => any;
    • Adds Sentry tracing instrumentation for [Koa](https://koajs.com/).

      If you also want to capture errors, you need to call setupKoaErrorHandler(app) after you set up your Koa server.

      For more information, see the [koa documentation](https://docs.sentry.io/platforms/javascript/guides/koa/).

      Parameter options

      Configuration options for the Koa integration.

      Example 1

      const Sentry = require('@sentry/node');
      Sentry.init({
      integrations: [Sentry.koaIntegration()],
      })

      Example 2

      // To ignore middleware spans
      const Sentry = require('@sentry/node');
      Sentry.init({
      integrations: [
      Sentry.koaIntegration({
      ignoreLayersType: ['middleware']
      })
      ],
      })

    function launchDarklyIntegration

    launchDarklyIntegration: (_options?: unknown) => any;
    • This is a shim for the LaunchDarkly integration. We need this in order to not throw runtime errors when accidentally importing this on the server through a meta framework like Next.js.

    function lruMemoizerIntegration

    lruMemoizerIntegration: () => any;
    • Adds Sentry tracing instrumentation for the [lru-memoizer](https://www.npmjs.com/package/lru-memoizer) library.

      For more information, see the [lruMemoizerIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/lrumemoizer/).

      Example 1

      ```javascript const Sentry = require('@sentry/node');

      Sentry.init({ integrations: [Sentry.lruMemoizerIntegration()], });

    function mongoIntegration

    mongoIntegration: () => any;
    • Adds Sentry tracing instrumentation for the [mongodb](https://www.npmjs.com/package/mongodb) library.

      For more information, see the [mongoIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mongo/).

      Example 1

      const Sentry = require('@sentry/node');
      Sentry.init({
      integrations: [Sentry.mongoIntegration()],
      });

    function mongooseIntegration

    mongooseIntegration: () => any;
    • Adds Sentry tracing instrumentation for the [mongoose](https://www.npmjs.com/package/mongoose) library.

      For more information, see the [mongooseIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mongoose/).

      Example 1

      const Sentry = require('@sentry/node');
      Sentry.init({
      integrations: [Sentry.mongooseIntegration()],
      });

    function mysql2Integration

    mysql2Integration: () => any;
    • Adds Sentry tracing instrumentation for the [mysql2](https://www.npmjs.com/package/mysql2) library.

      For more information, see the [mysql2Integration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql2/).

      Example 1

      const Sentry = require('@sentry/node');
      Sentry.init({
      integrations: [Sentry.mysqlIntegration()],
      });

    function mysqlIntegration

    mysqlIntegration: () => any;
    • Adds Sentry tracing instrumentation for the [mysql](https://www.npmjs.com/package/mysql) library.

      For more information, see the [mysqlIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql/).

      Example 1

      const Sentry = require('@sentry/node');
      Sentry.init({
      integrations: [Sentry.mysqlIntegration()],
      });

    function nativeNodeFetchIntegration

    nativeNodeFetchIntegration: (options?: NodeFetchOptions | undefined) => any;

      function openAIIntegration

      openAIIntegration: (options?: OpenAiOptions | undefined) => any;
      • Adds Sentry tracing instrumentation for the OpenAI SDK.

        This integration is enabled by default.

        When configured, this integration automatically instruments OpenAI SDK client instances to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.

        Example 1

        import * as Sentry from '@sentry/node';
        Sentry.init({
        integrations: [Sentry.openAIIntegration()],
        });

        ## Options

        - recordInputs: Whether to record prompt messages (default: respects sendDefaultPii client option) - recordOutputs: Whether to record response text (default: respects sendDefaultPii client option)

        ### Default Behavior

        By default, the integration will: - Record inputs and outputs ONLY if sendDefaultPii is set to true in your Sentry client options - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled

        Example 2

        // Record inputs and outputs when sendDefaultPii is false
        Sentry.init({
        integrations: [
        Sentry.openAIIntegration({
        recordInputs: true,
        recordOutputs: true
        })
        ],
        });
        // Never record inputs/outputs regardless of sendDefaultPii
        Sentry.init({
        sendDefaultPii: true,
        integrations: [
        Sentry.openAIIntegration({
        recordInputs: false,
        recordOutputs: false
        })
        ],
        });

      function openFeatureIntegration

      openFeatureIntegration: (_options?: unknown) => any;
      • This is a shim for the OpenFeature integration. We need this in order to not throw runtime errors when accidentally importing this on the server through a meta framework like Next.js.

      function postgresIntegration

      postgresIntegration: () => any;
      • Adds Sentry tracing instrumentation for the [pg](https://www.npmjs.com/package/pg) library.

        For more information, see the [postgresIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/postgres/).

        Example 1

        const Sentry = require('@sentry/node');
        Sentry.init({
        integrations: [Sentry.postgresIntegration()],
        });

      function postgresJsIntegration

      postgresJsIntegration: () => any;
      • Adds Sentry tracing instrumentation for the [postgres](https://www.npmjs.com/package/postgres) library.

        For more information, see the [postgresIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/postgres/).

        Example 1

        const Sentry = require('@sentry/node');
        Sentry.init({
        integrations: [Sentry.postgresJsIntegration()],
        });

      function preloadOpenTelemetry

      preloadOpenTelemetry: (options?: NodePreloadOptions) => void;
      • Preload OpenTelemetry for Node. This can be used to preload instrumentation early, but set up Sentry later. By preloading the OTEL instrumentation wrapping still happens early enough that everything works.

      function prismaIntegration

      prismaIntegration: (
      args_0?:
      | {
      prismaInstrumentation?:
      | Instrumentation<
      import('@opentelemetry/instrumentation').InstrumentationConfig
      >
      | undefined;
      }
      | undefined
      ) => any;
      • Adds Sentry tracing instrumentation for the [prisma](https://www.npmjs.com/package/prisma) library. For more information, see the [prismaIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/prisma/).

        NOTE: By default, this integration works with Prisma version 6. To get performance instrumentation for other Prisma versions, 1. Install the @prisma/instrumentation package with the desired version. 1. Pass a new PrismaInstrumentation() instance as exported from @prisma/instrumentation to the prismaInstrumentation option of this integration:

        ```js import { PrismaInstrumentation } from '@prisma/instrumentation'

        Sentry.init({ integrations: [ prismaIntegration({ // Override the default instrumentation that Sentry uses prismaInstrumentation: new PrismaInstrumentation() }) ] }) ```

        The passed instrumentation instance will override the default instrumentation instance the integration would use, while the prismaIntegration will still ensure data compatibility for the various Prisma versions. 1. Depending on your Prisma version (prior to version 6), add previewFeatures = ["tracing"] to the client generator block of your Prisma schema:

        ``` generator client { provider = "prisma-client-js" previewFeatures = ["tracing"] } ```

      function redisIntegration

      redisIntegration: (options?: RedisOptions | undefined) => any;
      • Adds Sentry tracing instrumentation for the [redis](https://www.npmjs.com/package/redis) and [ioredis](https://www.npmjs.com/package/ioredis) libraries.

        For more information, see the [redisIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/redis/).

        Example 1

        const Sentry = require('@sentry/node');
        Sentry.init({
        integrations: [Sentry.redisIntegration()],
        });

      function setupConnectErrorHandler

      setupConnectErrorHandler: (app: ConnectApp) => void;
      • Add a Connect middleware to capture errors to Sentry.

        Parameter app

        The Connect app to attach the error handler to

        Example 1

        const Sentry = require('@sentry/node');
        const connect = require("connect");
        const app = connect();
        Sentry.setupConnectErrorHandler(app);
        // Add you connect routes here
        app.listen(3000);

      function setupExpressErrorHandler

      setupExpressErrorHandler: (
      app: {
      use: (middleware: ExpressMiddleware | ExpressErrorMiddleware) => unknown;
      },
      options?: ExpressHandlerOptions
      ) => void;
      • Add an Express error handler to capture errors to Sentry.

        The error handler must be before any other middleware and after all controllers.

        Parameter app

        The Express instances

        Parameter options

        Configuration options for the handler

        Example 1

        const Sentry = require('@sentry/node');
        const express = require("express");
        const app = express();
        // Add your routes, etc.
        // Add this after all routes,
        // but before any and other error-handling middlewares are defined
        Sentry.setupExpressErrorHandler(app);
        app.listen(3000);

      function setupFastifyErrorHandler

      setupFastifyErrorHandler: (
      fastify: FastifyInstance,
      options?: Partial<FastifyHandlerOptions>
      ) => void;
      • Add an Fastify error handler to capture errors to Sentry.

        Parameter fastify

        The Fastify instance to which to add the error handler

        Parameter options

        Configuration options for the handler

        Example 1

        const Sentry = require('@sentry/node');
        const Fastify = require("fastify");
        const app = Fastify();
        Sentry.setupFastifyErrorHandler(app);
        // Add your routes, etc.
        app.listen({ port: 3000 });

      function setupHapiErrorHandler

      setupHapiErrorHandler: (server: Server) => Promise<void>;
      • Add a Hapi plugin to capture errors to Sentry.

        Parameter server

        The Hapi server to attach the error handler to

        Example 1

        const Sentry = require('@sentry/node');
        const Hapi = require('@hapi/hapi');
        const init = async () => {
        const server = Hapi.server();
        // all your routes here
        await Sentry.setupHapiErrorHandler(server);
        await server.start();
        };

      function setupKoaErrorHandler

      setupKoaErrorHandler: (app: {
      use: (arg0: (ctx: any, next: any) => Promise<void>) => void;
      }) => void;
      • Add an Koa error handler to capture errors to Sentry.

        The error handler must be before any other middleware and after all controllers.

        Parameter app

        The Express instances

        Parameter options

        Configuration options for the handler

        Example 1

        const Sentry = require('@sentry/node');
        const Koa = require("koa");
        const app = new Koa();
        Sentry.setupKoaErrorHandler(app);
        // Add your routes, etc.
        app.listen(3000);

      function statsigIntegration

      statsigIntegration: (_options?: unknown) => any;
      • This is a shim for the Statsig integration. We need this in order to not throw runtime errors when accidentally importing this on the server through a meta framework like Next.js.

      function tediousIntegration

      tediousIntegration: () => any;
      • Adds Sentry tracing instrumentation for the [tedious](https://www.npmjs.com/package/tedious) library.

        For more information, see the [tediousIntegration documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/tedious/).

        Example 1

        const Sentry = require('@sentry/node');
        Sentry.init({
        integrations: [Sentry.tediousIntegration()],
        });

      function unleashIntegration

      unleashIntegration: (_options?: unknown) => any;
      • This is a shim for the Unleash integration. We need this in order to not throw runtime errors when accidentally importing this on the server through a meta framework like Next.js.

      function vercelAIIntegration

      vercelAIIntegration: (options?: VercelAiOptions | undefined) => any;
      • Adds Sentry tracing instrumentation for the [ai](https://www.npmjs.com/package/ai) library. This integration is not enabled by default, you need to manually add it.

        For more information, see the [ai documentation](https://sdk.vercel.ai/docs/ai-sdk-core/telemetry).

        Example 1

        const Sentry = require('@sentry/node');
        Sentry.init({
        integrations: [Sentry.vercelAIIntegration()],
        });

        This integration adds tracing support to all ai function calls. You need to opt-in to collecting spans for a specific call, you can do so by setting experimental_telemetry.isEnabled to true in the first argument of the function call.

        const result = await generateText({
        model: openai('gpt-4-turbo'),
        experimental_telemetry: { isEnabled: true },
        });

        If you want to collect inputs and outputs for a specific call, you must specifically opt-in to each function call by setting experimental_telemetry.recordInputs and experimental_telemetry.recordOutputs to true.

        ```javascript const result = await generateText({ model: openai('gpt-4-turbo'), experimental_telemetry: { isEnabled: true, recordInputs: true, recordOutputs: true }, });

      Classes

      class OpenFeatureIntegrationHook

      class OpenFeatureIntegrationHookShim {}
      • This is a shim for the OpenFeature integration hook.

      constructor

      constructor();

      method after

      after: () => void;

      method error

      error: () => void;

      Interfaces

      interface NodeOptions

      interface NodeOptions extends Options<NodeTransportOptions>, BaseNodeOptions {}
      • Configuration options for the Sentry Node SDK

        See Also

        • @sentry/core Options for more information.

      Package Files (36)

      Dependencies (35)

      Dev Dependencies (1)

      Peer Dependencies (0)

      No peer dependencies.

      Badge

      To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

      You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@sentry/node.

      • Markdown
        [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@sentry/node)
      • HTML
        <a href="https://www.jsdocs.io/package/@sentry/node"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>