Installation

Please follow the installation guide first, when adding a new application to AppSignal.

Requirements

Before you can compile the AppSignal package, make sure the build/compilation tools are installed for your system. Please check the Supported Operating Systems page for any system dependencies that may be required.

Installation

First, sign up for an AppSignal account. Then, install AppSignal by adding @appsignal/nodejs to your package.json on the command line with npm:

Shell
npm install @appsignal/nodejs

It's also possible to manually add the @appsignal/nodejs package to your package.json. Then, run npm install.

package.json
{ "name": "my-app", "dependencies": { "@appsignal/nodejs": "^3.0.0" } }

Create an appsignal.cjs file to require and configure AppSignal. This file may also be placed in another location, like in the src/ directory. For more information about the configuration, see our configuration section.

Node.js
// appsignal.cjs const { Appsignal } = require("@appsignal/nodejs"); new Appsignal({ active: true, name: "<YOUR APPLICATION NAME>", pushApiKey: "<YOUR API KEY>", });

Requiring the AppSignal client

Now, you can run your application like you normally would, but use the --require flag to load AppSignal's instrumentation before any other library:

Shell
node --require './appsignal.cjs' index.js

We recommend adding the --require flag to any script that starts your app:

package.json
{ "scripts": { "server": "node --require ./appsignal.cjs index.js" } }

You can also use the --require flag with tools such as ts-node and nodemon.

When using a wrapper CLI, such as nest start or fastify start, to start your application, use the NODE_OPTIONS environment variable to pass the flag to the Node.js runtime:

Shell
NODE_OPTIONS='--require ./appsignal.cjs' nest start

For the AppSignal integration to work correctly, the appsignal.cjs file must be required before any other dependencies.

TypeScript support

AppSignal is fully compatible with TypeScript. When running a compiled TypeScript application with node, we recommend using the --enable-source-maps Node.js flag so that error backtraces in AppSignal refer to locations in the original TypeScript code:

Shell
node --enable-source-maps --require './appsignal.cjs' dist/src/main.js

When using a wrapper CLI, such as nest start or fastify start, to start your application, use the NODE_OPTIONS environment variable to pass the flag to the Node.js runtime:

Shell
NODE_OPTIONS='--enable-source-maps --require ./appsignal.cjs' nest start

Import AppSignal Client

The AppSignal client is accessed from the globally exported Appsignal.client object.

To use features like custom metrics, you must first import the AppSignal client:

Node.js
import { Appsignal } from "@appsignal/nodejs"; // or: const { Appsignal } = require("@appsignal/nodejs"); const client = Appsignal.client;

Adding integrations

AppSignal supports several libraries and frameworks with additional packages, such as Express, Koa, Next.js and more. Additional installation instructions for these packages can be found in the Node.js integrations section.


Continue with our installation guide.

Uninstalling AppSignal for Node.js

Uninstall AppSignal from your app by following the steps below. When these steps are completed your app will no longer send data to the AppSignal servers.

  1. Run npm uninstall @appsignal/nodejs to uninstall the AppSignal for Node.js integration, or delete the line within the dependencies block of your application's package.json file referencing the @appsignal/nodejs package.

  2. Run npm install to update your package.lock with the removed packages state.

  3. Remove any AppSignal configuration from your app.

  4. Commit, deploy and restart your app.

    • This will make sure the AppSignal servers won't continue to receive data from your app.
  5. Finally, remove the app on AppSignal.com.

Continue with our uninstall guide.

Stopping The AppSignal Client

AppSignal will stop automatically when your application or machine stops running. However, if you want to stop AppSignal manually you can run the following command:

Node.js
import { Appsignal } from "@appsignal/nodejs"; // or: const { Appsignal } = require("@appsignal/nodejs"); Appsignal.client.stop();