Opbeat is joining forces with Elastic – Read our blog post

Node.js agent compatibility

The Opbeat agent for Node.js is tested against Node.js v0.10 and above. Previous versions of Node.js is not supported.

Frameworks

Though you can use Opbeat with any Node.js framework, we automate a few things for the most popular Node.js modules.

These are the frameworks that we officially support:

Framework Version Note
Express ^4.0.0
hapi >=9.0.0
Koa via koa-router >=5.2.0 <8.0.0 Koa doesn’t have a built in router, so we can’t support Koa directly since we rely on router information for full support. We currently support the most popular Koa router called koa-router

Custom Transactions

By default transactions are named based on their matched HTTP route if the framework used is listed above. These modules override that behavior to give better insights into specialised HTTP servers:

Module Version Note
express-graphql ^0.6.1 Will name all transactions by the GraphQL query name

Tracing and Instrumentation

The Opbeat agent for Node.js will automatically instrument the following modules to give you detailed performance metrics:

Module Version Note
graphql >=0.7.0 Will trace all queries
ioredis ^2.0.0 || ^3.0.0 Will trace all queries
mongodb-core ^1.2.7 || ^2.0.0 Will trace all queries. A lot of higher level MongoDB modules use mongodb-core, so those should be supported as well
mongodb >=2.0.0 Supported via mongodb-core
mongojs >=1.0.0 Supported via mongodb-core
mongoose >=4.0.0 Supported via mongodb-core
mysql ^2.0.0 Will trace all queries
pg >=4.0.0 <8.0.0 Will trace all queries
redis ^2.0.0 Will trace all queries
ws >=1.0.0 <4.0.0 Will trace outgoing WebSocket messages

Better Stack Traces

When clicking on a perfromance trace on Opbeat, you’ll see where in your code you initiated the trace (e.g. a database query).

Given the async nature of Node.js, it’s not possible for us to see further back than the last async boundary. We therefore make sure to monitor as close to your code as possible. But some modules will interfere with this monitoring by injecting an async call bewteen your code and the actual monitored function.

We monitor these “offending” modules directly to give you a better experience.

The modules and versions listed below are the once we support. If you use a version not supported you might not be able to see your own code in the performance traces. This does not impact the stability of your application in any way - only the collected metrics.

If you don’t see your own code in traces shown on Opbeat, please contact Support so we can make sure to support your stack.

Module Version
knex >=0.9.0

Continuity

Opbeat monitors async operations in your Node.js application to maintain awareness of which request is the active request at any given time. Certain modules can interfere with this monitoring if not handled properly.

Below is a list of modules known to cause issues with this monitoring. The versions listed are the versions we support. If you use a version not supported you might experience missing traces. This does not impact the stability of your application in any way - only the collected metrics.

If you do experience missing traces in your performance metrics, please contact Support so we can make sure to support your stack.

Module Version Note
bluebird >=2.0.0 <4.0.0
generic-pool ^2.0.0 Used by a lot of database modules like for instance “pg”