NodeJS Compatibility Requirements

NodeJS Compatibility Requirements


The NodeJS Datadog Trace library is open source - view the Github repository for more information.

Node >=8 is supported by this library. Even numbered versions like 8.x and 10.x are officially supported. Odd versions like 9.x and 11.x should work but are not officially supported.

Supported integrations

APM provides out-of-the-box instrumentation for many popular frameworks and libraries by using a plugin system. To request support for a module that is not listed, contact our awesome support team.

For details about how to how to toggle and configure plugins, check out the API documentation.

Web framework compatibility

ModuleVersionsSupport TypeNotes
connect>=2Fully supported
express>=4Fully supportedSupports Sails, Loopback, and more
fastify>=1Fully supported
graphql>=0.10Fully supportedSupports Apollo Server and express-graphql
gRPC>=1.13Fully supported
hapi>=2Fully supportedSupports [@hapi/hapi] versions >=17.9
koa>=2Fully supported
microgateway-core>=2.1Fully supportedCore library for Apigee Edge. Support for the edgemicro CLI requires static patching using @datadog/cli.
next>=9.5Fully supportedCLI usage requires NODE_OPTIONS='-r dd-trace/init'.
paperplane>=2.3Fully supportedNot supported in serverless-mode
restify>=3Fully supported

Native module compatibility

ModuleSupport TypeNotes
dnsFully supported
fsFully supported
httpFully supported
httpsFully supported
http2Partially supportedOnly HTTP2 clients are currently supported and not servers.
netFully supported

Data store compatibility

ModuleVersionsSupport TypeNotes
cassandra-driver>=3Fully supported
couchbase^2.4.2Fully supported
elasticsearch>=10Fully supportedSupports @elastic/elasticsearch versions >=5
ioredis>=2Fully supported
knex>=0.8Fully supportedThis integration is only for context propagation
memcached>=2.2Fully supported
mongodb-core>=2Fully supportedSupports Mongoose
mysql>=2Fully supported
mysql2>=1Fully supported
oracledb>=5Fully supported
pg>=4Fully supportedSupports pg-native when used with pg
redis>=0.12Fully supported
tedious>=1Fully supportedSQL Server driver for mssql and sequelize

Worker compatibility

ModuleVersionsSupport TypeNotes
@google-cloud/pubsub>=1.2Fully supported
amqp10>=3Fully supportedSupports AMQP 1.0 brokers (i.e. ActiveMQ, Apache Qpid)
amqplib>=0.5Fully supportedSupports AMQP 0.9 brokers (i.e. RabbitMQ, Apache Qpid)
generic-pool>=2Fully supported
kafkajs>=1.4Fully supported
kafka-nodeComing Soon
rhea>=1Fully supported

SDK compatibility

ModuleVersionsSupport TypeNotes
aws-sdk>=2.1.35Fully supportedCloudWatch, DynamoDB, Kinesis, Redshift, S3, SNS, SQS, and generic requests.

Promise library compatibility

ModuleVersionsSupport Type
bluebird>=2Fully supported
promise>=7Fully supported
promise-js>=0.0.3Fully supported
q>=1Fully supported
when>=3Fully supported

Logger compatibility

ModuleVersionsSupport Type
bunyan>=1Fully supported
paperplane>=2.3.2Fully supported
pino>=2Fully supported
winston>=1Fully supported

Unsupported libraries


fibers is incompatible with async_hooks, a Node.js module that is used by dd-trace-js to track asynchronous contexts thereby ensuring accurate tracing. Interactions between fibers and async_hooks may lead to unpreventable crashes and undefined behavior. So, the use of dd-trace-js with applications that invoke fibers directly or indirectly through frameworks such as Meteor may result in instability (crashes) or incorrect tracing.

For additional information or to discuss leave a comment on this github issue or reach out to support to discuss further.

Further Reading

Additional helpful documentation, links, and articles: