Supported Node.js libraries and frameworks

The Instana Node.js collector supports tracing for the following Node.js libraries and frameworks. For more information about monitoring Node.js applications, see Monitoring Node.

HTTP

The Collector version column indicates the minimum version of the @instana/collector package that is required for a particular feature. For more information, see the GitHub changelog.

Library Support policy Collector version
Express error handling and path templates 45 days 1.32.0, 1.43.0
Fastify path templates 45 days 1.44.0
HTTP(s) clients 0 day 1.10.0
HTTP(s) servers 0 day 1.10.0
HTTP/2 clients 0 day 1.103.0
HTTP/2 servers 0 day 1.103.0
hapi path templates 45 days 1.68.0
koa-router path templates 45 days 1.56.0
request-promise[1] Deprecated 1.10.0
request[2] Deprecated 1.10.0
superagent 45 days 1.102.0
fetch 0 day 2.15.0
tsoa 45 days 1.140.0

RPC

The Collector version column indicates the minimum version of the @instana/collector package that is required for a particular feature. For more information, see the GitHub changelog.

Library Support policy Collector version
Apollo Federation[3] Deprecated 1.87.0
Apollo Subgraph 45 days 3.1.2
JavaScript gRPC 45 days 1.5.7
GraphQL 45 days 1.69.0

Databases

The Collector version column indicates the minimum version of the @instana/collector package that is required for a particular feature. For more information, see the GitHub changelog.

Library Support policy Collector version
AWS SDK v2 S3 45 days 1.115.0
AWS SDK v3 S3 45 days 1.129.0
AWS SDK v2 DynamoDB 45 days 1.116.0
AWS SDK v3 DynamoDB 45 days 1.127.0
Elasticsearch Client (@elastic/elasticsearch) 45 days 1.96.0
Memcached (memcached) (>= 2.2.2) 45 days 1.126.0
MongoDB (mongodb) (>= 2.2) 45 days 1.13.0
Mongoose (mongoose) 45 days 1.13.0
MySQL (mysql) 45 days 1.29.0
MySQL (mysql2) 45 days 1.37.1
MSSQL (mssql) 45 days 1.47.0
Prisma 45 days 2.11.0
Postgres (pg) 45 days 1.44.2
Postgres (pg-native) 45 days 1.86.0
Redis (redis) 45 days 1.31.0
Redis (ioredis) 45 days 1.33.0
Sequelize 45 days Depends on the specific version of a driver[4]
IBM Db2 45 days 2.2.0
Couchbase 45 days 2.21.0

Messaging

The Collector version column indicates the minimum version of the @instana/collector package that is required for a particular feature. For more information, see the GitHub changelog.

Library Support policy Collector version
AWS SNS SDK v2[5] [6] 45 days 1.136.0
AWS SQS SDK v2[5:1] [6:1] 45 days 1.114.0
AWS SQS SDK v3[5:2] [6:2] 45 days 1.132.0
AWS SDK v2 Kinesis 45 days 1.120.0
AWS SDK v3 Kinesis 45 days 2.30.0
AWS SDK v2 Lambda 45 days 1.122.0
AWS SDK v3 Lambda 45 days 2.34.0
Google Cloud PubSub[5:3] (>= 1.2.0) 45 days 1.107.0
NATS streaming[5:4] [7] [8] Deprecated 1.72.0
NATS[5:5] [7:1] 45 days 1.72.0
RabbitMQ/amqplib[5:6] 45 days 1.51.0
kafka-node [5:7] [7:2] [9] Deprecated 1.20.0
kafkajs[5:8] 45 days 1.83.0
node-rdkafka[5:9] [7:3] [10] 45 days 1.139.0
kafka-avro[5:10] [7:4] Deprecated 1.139.0
Bull[11] 45 days 1.119.0
SQS Consumer 45 days 1.119.3

Cloud Services

The Collector version column indicates the minimum version of the @instana/collector package that is required for a particular feature. For more information, see the GitHub changelog.

Library Support policy Since collector version
AWS SDK v2 SQS[5:11] [6:3] 45 days 1.114.0
AWS SDK v3 SQS[5:12] [6:4] 45 days 1.132.0
AWS SDK v2 S3 45 days 1.115.0
AWS SDK v3 S3 45 days 1.129.0
AWS SDK v2 DynamoDB 45 days 1.116.0
AWS SDK v3 DynamoDB 45 days 1.127.0
AWS SDK v2 SNS 45 days 1.136.0
AWS SDK v2 Kinesis 45 days 1.120.0
AWS SDK v3 Kinesis 45 days 2.30.0
AWS SDK v2 Lambda 45 days 1.122.0
AWS SDK v3 Lambda 45 days 2.34.0
Google Cloud Storage 45 days 1.105.0
Google Cloud PubSub[5:13] (>= 1.2.0) 45 days 1.107.0
SQS Consumer 45 days 1.119.3
Azure Storage Blob 45 days 3.4.0

Logging

The Collector Version column indicates the minimum version of the @instana/collector package that is required for a particular feature. For more information, see the GitHub changelog.

Library Support policy Collector version
Bunyan 45 days 1.54.0
express-winston[12] 45 days 1.88.0
log4js 45 days 1.84.0
Pino 45 days 1.52.0
Winston (>= 3.x) 45 days 1.53.0
Winston (<= 2.x) 45 days 1.88.0

Async

The Collector version column indicates the minimum version of the @instana/collector package that is required for a particular feature. For more information, see the GitHub changelog.

Library Support policy Collector version
async 45 days 1.10.0
Bluebird 45 days 1.35.0
Native Promises 0 day 1.10.0
Timers 0 day 1.10.0

Other

The column Collector version column indicates the minimum version of the @instana/collector package that is required for a particular feature. For more information, see the GitHub changelog.

Library Support policy Collector version Comment
Apigee Microgateway/edgemicro (2.4, 2.5, >= 3.x) 45 days 1.89.0 Requires extra installation steps.[13]

OpenTelemetry instrumentations

Instana uses certain OpenTelemetry instrumentations to increase the library coverage.

The Collector version column in the following table indicates the minimum version of the Instana Node.js collector that is required for a feature. For more information, see the GitHub changelog.

Library Support policy Since collector version
socket.io 45 days 2.24.0
socket.io-client 45 days 2.24.0
restify 45 days 2.24.0
fs 45 days 2.24.0
tedious 45 days 3.2.0

If you encounter issues with the OpenTelemetry integration, you can disable it. For more information about how to disable the integration, see Disabling OpenTelemetry integration.


  1. The npm request-promise library is officially deprecated. For more information, see request-promise. ↩︎

  2. The npm request library is officially deprecated. For more information, see request. ↩︎

  3. The Apollo Federation library is officially deprecated. For more information, see Apollo Federation. ↩︎

  4. Instana does not instrument Sequelize directly, but rather the underlying database drivers. Visibility into sequelize actions depends on the database library that you are using together with sequelize (mysql, mysql2, mssql, pg, and pg-native). ↩︎

  5. To capture subsequent calls correctly after you receive a message with AWS SQS, kafkajs, kafka-node, node-rdkafka, kafka-avro, RabbitMQ, amqplib, NATS, NATS streaming, or Google Cloud PubSub, you need to use span.disableAutoEnd() and span.end(). For more information, see ending spans manually. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  6. AWS SQS requires manual async context restoration when you use promises with async or await. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  7. Trace continuity is not supported in the following cases:

    • For NATS: Because NATS has no message headers. For more information, see NATS tracing docs.
    • For NATS streaming: Because NATS streaming has no message headers. For more information, see NATS tracing docs.
    • When you use the npm package kafka-node to send or consume messages: Because that package does not support Kafka record headers. For more information, see kafka-node#763 and kafka-node#1309. Trace continuity is supported for Kafka in general starting with Kafka 0.11 for other runtimes and also when you use the package kafkajs. Therefore, you must use kafkajs instead of kafka-node when you use Kafka and Instana in your Node.js application.
    • When you use node-rdkafka or kafka-avro to produce messages as streams where the objectMode option is not set to true.
    ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
  8. The Nats streaming library is deprecated. The npm package is EOL since February 2024. ↩︎

  9. The kafka-node library is deprecated. ↩︎

  10. If the option dr_cb is set to true when you initialize the Producer, the instrumentation can detect whether a message is sent and create a corresponding span only in that case. If dr_cb is false or unset, the instrumentation assumes that a message is sent (and create a corresponding span) as soon as the Producer.produce method ends. In rare cases, spans might be produced although calling Producer.produce did not result in a message being sent. ↩︎

  11. Bull repeatable jobs that are part of bulk are not properly instrumented due to not being expected by the API. They are expected to be forbidden in the newest versions of Bull ↩︎

  12. Requires express-winston to be configured with statusLevels: true, as Instana captures log messages of only severity warn or higher. ↩︎

  13. Using Apigee Microgateway or edgemicro with @instana/collector requires extra installation steps. For more information about this use case, see installation instructions. ↩︎