Supported Versions

Odigos uses the official OpenTelemetry instrumentation libraries and SDK components, thus it supports the same Node.js versions as the OpenTelemetry Node.js.

  • Node.js runtime versions 14 and above are supported.

Traces

Odigos will automatically instrument your Node.js sources to record and collect spans for distributed tracing, by utilizing the OpenTelemetry Node.js Official Instrumentation Libraries.

If you use one of the supported logger libraries, the trace id and span id will be auto-injected into your log records allowing signals correlations between logs and traces.

Instrumentation Libraries

The following npm packages will be auto instrumented by Odigos:

HTTP Frameworks

  • connect versions >=3.0.0 <4. http middleware framework
  • express version >=4.0.0 <5. http web application framework
  • fastify versions >=3.0.0 <5. http web application framework
  • graphql versions >=14.0.0 <17. gql query language and runtime for GraphQL
  • http node:http http server and client modules
  • https node:https https server and client modules
  • koa versions >=2.0.0 <3. http web application framework
  • @koa/router versions >=8.0.0. http web application framework
  • @hapi/hapi versions >=17.0.0 <22. http web application framework
  • @nestjs/core versions >=4.0.0 <11. server side applications framework
  • restify versions >=4.0.0 <12. http web application framework
  • router versions >=1.0.0 <2. http middleware router

HTTP Clients

  • undici version >=5.12.0. http client and Node.js fetch()
  • http node:http http server and client modules
  • https node:https https server and client modules

Database Clients, ORMs, and data access libraries

  • aws-sdk versions >=2.308.0 <3. clients for various AWS services
  • @aws-sdk/client-* versions >=3.0.0 <4. clients for various AWS services
  • cassandra-driver versions >=4.4.0 <5. database client library for Apache Cassandra
  • dataloader versions >=2.0.0 <3. data fetching layer
  • generic-pool version >=2.0.0 <4. resource pool for managing expensive resources
  • ioredis versions >=2.0.0 <6. database redis client for Redis
  • knex versions >=0.10.0 <4. database SQL query builder
  • lru-memorizer versions >=1.3.0 <3. function memoization using lru-cache
  • memcached versions >=2.2.0 <3. database client for memcached
  • mongodb version >=3.3.0 <7. database client for MongoDB
  • mongoose versions >=5.9.7 <7. database object data modeling (ODM) library for MongoDB
  • mysql versions >=2.0.0 <3. database client for MySQL
  • mysql2 versions >=1.4.2 <4. database client for MySQL
  • pg versions >=8.0.0 <9. database client for PostgreSQL
  • pg-pool versions >=2.0.0 <4. database client for PostgreSQL
  • redis versions >=2.6.0. database client for Redis
  • tedious >=1.11.0 <18. database client for Microsoft SQL Server

Messaging Systems Clients

  • amqplib versions >=0.5.5 <1. messaging client for RabbitMQ
  • kafkajs versions >=0.1.0 <3. messaging client for Apache Kafka
  • socket.io versions >=2.0.0 <5. messaging server implementation for Socket.IO communication
  • http node:http http server and client modules
  • https node:https https server and client modules

RPC (Remote Procedure Call)

  • @grpc/grpc-js versions >=1.0.0 <2. rpc client and server for gRPC framework
  • aws-sdk versions >=2.308.0 <3. clients for various AWS services
  • @aws-sdk/client-* versions >=3.0.0 <4. clients for various AWS services

Node.js Core Modules

  • dns. node:dns name resolution module
  • fs node:fs file system interactions module
  • http node:http http server and client modules
  • https node:https https server and client modules
  • net node:net network API module

Loggers

Automatic injection of trace context (trace id and span id) into log records for the following loggers: