AppSignal for Node.js
AppSignal for Node.js helps you get the most out of your Node.js application, providing you with the tools you need to track errors and monitor the performance of your application's code.
The package supports pure JavaScript and TypeScript applications and can auto-instrument various frameworks and packages with optional plugins. Other frameworks and packages might require some custom instrumentation.
OpenTelemetry
OpenTelemetry is an open-source project that facilitates the instrumentation of standardized telemetry data collection. This means that you can easily integrate your data with AppSignal or another vendor of your choice. You're not locked into a single provider's services. As OpenTelemetry is an open-source project, everyone can collaborate on the same base integrations to provide instrumentation for the benefit of everyone. OpenTelemetry currently supports several popular programming languages, including Node.js.
OpenTelemetry consists of multiple components: tracing, metrics, and logs. These components are still a work in progress in most programming languages, with tracing for many languages being the most stable component. We support OpenTelemetry's tracing component in our Node.js integration to provide better error reporting and performance measurements.
Learn more about OpenTelemetry via the project's official website.
Supported Libraries
Our integration supports the following libraries and frameworks:
- Node.js Core
- Apollo Gateway
- BullMQ
- Express
- Fastify
- GraphQL (such as Apollo Server or Yoga)
- Knex.js
- Koa.js
- MongoDB
- Mongoose
- MySQL (mysql and mysql2 packages)
- NestJS
- Next.js
- PostgreSQL
- Prisma
- Redis (redis and ioredis packages)
- Remix
- Restify
Supported Environments
Node.js is an incredibly flexible runtime, which allows it to be used for a multiple of different use-cases. AppSignal was primarily designed for use on a server, so there are a few places that the Node.js integration is currently not suitable:
- Electron apps: We don't recommend using @appsignal/nodejs inside Electron applications. As we designed the agent to run on a server, it is not currently useful in this environment. It will also lead to possibly unwanted complexity around cross-compilation of the native extension.
- Short-lived processes: Short-lived processes, such as CLI tools, are a poor fit for the agent, which must be able to stay running for a period of time (at least 60 seconds).
- Serverless functions: Serverless functions are meant to be short-lived processes, so they are also a poor fit for the agent.
- Statically generated apps: Some environments (e.g Gatsby.js, Svelte) offer some access to Node.js APIs but ultimately compile their code down to a client side application, and therefore aren't suitable for the Node.js library.
Don't panic! The @appsignal/javascript library does not require the agent and will work where @appsignal/nodejs doesn't currently work, however only error tracking is supported at the moment.