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.
-
The npm request-promise library is officially deprecated. For more information, see request-promise. ↩︎
-
The npm request library is officially deprecated. For more information, see request. ↩︎
-
The Apollo Federation library is officially deprecated. For more information, see Apollo Federation. ↩︎
-
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
, andpg-native
). ↩︎ -
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 usespan.disableAutoEnd()
andspan.end()
. For more information, see ending spans manually. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ -
AWS SQS requires manual async context restoration when you use promises with
async
orawait
. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ -
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 packagekafkajs
. Therefore, you must usekafkajs
instead ofkafka-node
when you use Kafka and Instana in your Node.js application. - When you use
node-rdkafka
orkafka-avro
to produce messages as streams where theobjectMode
option is not set totrue
.
-
The Nats streaming library is deprecated. The npm package is EOL since February 2024. ↩︎
-
The kafka-node library is deprecated. ↩︎
-
If the option
dr_cb
is set totrue
when you initialize theProducer
, the instrumentation can detect whether a message is sent and create a corresponding span only in that case. Ifdr_cb
isfalse
or unset, the instrumentation assumes that a message is sent (and create a corresponding span) as soon as theProducer.produce
method ends. In rare cases, spans might be produced although callingProducer.produce
did not result in a message being sent. ↩︎ -
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 ↩︎
-
Requires
express-winston
to be configured withstatusLevels: true
, as Instana captures log messages of only severitywarn
or higher. ↩︎ -
Using Apigee Microgateway or edgemicro with
@instana/collector
requires extra installation steps. For more information about this use case, see installation instructions. ↩︎