Supported Node.js libraries and frameworks
The Instana Node.js Tracer packages support tracing for the following Node.js libraries and frameworks.
For more information about monitoring Node.js applications, see Monitoring Node.js.
The "npm package version" column indicates the minimum version of the Instana Node.js Tracer package that is required for a particular library or framework. For more information, see the GitHub changelog.
HTTP
The following table outlines the HTTP libraries that the Instana Node.js Tracer packages support:
| Library | Support policy | Minimum required Instana npm version | Instrumentation identifier [1] |
|---|---|---|---|
| express Error handling and path templates | 45 days | 1.32.0, 1.43.0 | express |
| fastify | 45 days | 1.44.0 | fastify |
| http | 0 day | 1.10.0 | httpClient,httpServer |
| https | 0 day | 1.10.0 | httpClient,httpServer |
| http2 | 0 day | 1.103.0 | http2Client, http2Server |
| node-fetch | 0 day | 3.9.0 | node-fetch |
| @hapi/hapi path templates | 45 days | 1.68.0 | hapi |
| koa-router path templates | 45 days | 1.56.0 | koa |
| superagent | 45 days | 1.102.0 | superagent |
| fetch | 0 day | 2.15.0 | nativefetch |
| tsoa | 45 days | 1.140.0 | tsoa |
RPC
The following table outlines the RPC libraries that the Instana Node.js Tracer packages support:
| Library | Support policy | Minimum required Instana npm version | Instrumentation identifier [1:1] |
|---|---|---|---|
| @apollo/federation [2] | Deprecated | 1.87.0 | graphql |
| @apollo/server | 45 days | 4.12.0 | graphql |
| @apollo/subgraph | 45 days | 3.1.2 | graphql |
| @grpc/grpc-js | 45 days | 1.5.7 | grpc |
| graphql | 45 days | 1.69.0 | graphql |
Databases
The following table outlines the database libraries that are supported by the Instana Node.js Tracers:
| Library | Support policy | Minimum required Instana npm version | Instrumentation identifier [1:2] |
|---|---|---|---|
| @elastic/elasticsearch | 45 days | 1.96.0 | elasticsearch |
| memcached(>= 2.2.2) | 45 days | 1.126.0 | memcached |
| mongodb(>= 2.2) | 45 days | 1.13.0 | mongodb |
| mongoose | 45 days | 1.13.0 | mongoose |
| mysql | 45 days | 1.29.0 | mysql |
| mysql2 | 45 days | 1.37.1 | mysql2 |
| mssql | 45 days | 1.47.0 | mssql |
| prisma | 45 days | 2.11.0 | prisma |
| pg | 45 days | 1.44.2 | pg |
| pg-native | 45 days | 1.86.0 | pgnative |
| redis | 45 days | 1.31.0 | redis |
| ioredis | 45 days | 1.33.0 | ioredis |
| sequelize | 45 days | Depends on the specific version of a driver [3] | sequelize |
| ibm-db | 45 days | 2.2.0 | db2 |
| couchbase | 45 days | 2.21.0 | couchbase |
| tedious | 45 days | 3.2.0 | |
| oracledb | 45 days | 4.24.0 |
Messaging
The following table outlines the messaging libraries that the Instana Node.js Tracer packages support:
| Library | Support policy | Minimum required Instana npm version | Instrumentation identifier [1:3] |
|---|---|---|---|
| node-nats-streaming | Deprecated | 1.72.0 | natStreaming |
| nats | 45 days | 1.72.0 | nats |
| amqplib | 45 days | 1.51.0 | amqplib |
| kafka-node | Deprecated | 1.20.0 | kafkanode |
| kafkajs | 45 days | 1.83.0 | kafkajs |
| node-rdkafka | 45 days | 1.139.0 | rdkafka |
| kafka-avro | Deprecated | 1.139.0 | |
| bull | 45 days | 1.119.0 | bull |
| socket.io | 45 days | 2.24.0 | |
| socket.io-client | 45 days | 2.24.0 | |
| @confluentinc/kafka-javascript | 45 days | 5.1.0 |
Cloud services
The following table outlines the cloud services libraries that the Instana Node.js Tracer packages support:
| Library | Support policy | Minimum required Instana npm version | Instrumentation identifier [1:4] |
|---|---|---|---|
| aws-sdk [4] [5] [6] | 45 days | 1.114.0 | aws-sdk/v2 |
| @aws-sdk/client-sqs [4:1] [5:1] | 45 days | 1.132.0 | aws-sdk/v3 |
| @aws-sdk/client-s3 | 45 days | 1.129.0 | aws-sdk/v3 |
| @aws-sdk/client-dynamodb | 45 days | 1.127.0 | aws-sdk/v3 |
| @aws-sdk/client-kinesis | 45 days | 2.30.0 | aws-sdk/v3 |
| @aws-sdk/client-lambda | 45 days | 2.34.0 | aws-sdk/v3 |
| @google-cloud/storage | 45 days | 1.105.0 | gcp/storage |
| @google-cloud/pubsub [4:2] (>= 1.2.0) | 45 days | 1.107.0 | gcp/pubsub |
| sqs-consumer | 45 days | 1.119.3 | sqs-consumer |
| @azure/storage-blob | 45 days | 3.4.0 | azure/blob |
Logging
The following table outlines the logging libraries that are supported by the Instana Node.js Tracers:
| Library | Support policy | Minimum required Instana npm version | Instrumentation identifier [1:5] |
|---|---|---|---|
| bunyan | 45 days | 1.54.0 | bunyan |
| express-winston | 45 days | 1.88.0 | winston |
| log4js | 45 days | 1.84.0 | log4js |
| pino | 45 days | 1.52.0 | pino |
| winston | 45 days | 1.88.0 | winston |
Async
Other
The following table outlines other libraries that are supported by the Instana Node.js Tracers:
| Library | Support policy | Minimum required Instana npm version | Instrumentation identifier [1:7] |
|---|---|---|---|
| edgemicro (2.4, 2.5, >= 3.x) [7] | 45 days | 1.89.0 | |
| fs | 45 days | 2.24.0 |
- 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-nodeto 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 usekafkajsinstead ofkafka-nodewhen you use Kafka and Instana in your Node.js application. - When you use
node-rdkafkato produce messages as streams where theobjectModeoption is not set totrue.
-
The Instrumentation identifier is the internal name that is used in the application configuration to enable or disable tracing for a specific library. If no identifier is available, the instrumentation does not support these features.↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
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,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
asyncorawait. ↩︎ ↩︎ -
AWS SDK v2 is officially deprecated. For more information, see AWS SDK v3 migration.↩︎
-
Using Apigee Microgateway or edgemicro requires extra installation steps. For more information about this use case, see installation instructions. ↩︎