The following libraries and frameworks are supported by Observe by Snowflake APM and work with all Observe by Snowflake APM features.
Observe by Snowflake supports the following Node.js database client libraries and services for APM instrumentation:
| Library name | Supported versions | Trace Explorer | Catalog | Service Inspector | RED Metrics | Database Statements | Service Maps |
|---|
| mongodb (native driver) | >= 3.3.0, < 8 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| pg (PostgreSQL) | >= 8.0.3, < 9 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Observe by Snowflake supports the following Node.js ORM libraries and services for APM instrumentation:
| Library name | Supported versions | Trace Explorer | Catalog | Service Inspector | RED Metrics | Database Statements | Service Maps |
|---|
| knex | >= 0.10.0,
< 4 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| mongoose | >= 5.9.7,
< 10 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Prisma (@prisma/client) | >= 5.0.0 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Observe by Snowflake supports the following Node.js HTTP server libraries and services for APM instrumentation:
| Library name | Supported versions | Trace Explorer | Catalog | Service Inspector | RED Metrics | Deployments | Service Maps | Error & Exception Tracking |
|---|
| Express | >= 4.0.0,
< 6 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Fastify | >= 4.0.0,
< 6 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Hapi (@hapi/hapi) | >= 17.0.0,
< 22 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Koa | >= 2.0.0,
< 4 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| NestJS (@nestjs/core) | >= 4.0.0,
< 12 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
The libraries and frameworks in this section are supported by OpenTelemetry but are not certified for compatibility with Observe by Snowflake APM.
| Library name | Supported versions | Trace Explorer |
|---|
| ioredis | >= 2.0.0, < 7 | ✅ |
| memcached | >= 2.2.0, < 3 | ✅ |
| redis (node-redis) | >= 2.6.0 | ✅ |
| @redis/client (node-redis 4 and later) | >= 1.0.0, < 2 or >= 5.0.0, < 7 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| AWS SDK v3 (@aws-sdk/client-*) | >= 3.0.0, < 4 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| mysql | >= 2.0.0, < 3 | ✅ |
| mysql2 | >= 1.4.2, < 4 | ✅ |
| oracledb | >= 6.7.0, < 27 | ✅ |
| pg-pool | >= 2.0.0, < 4 | ✅ |
| tedious (MSSQL) | >= 1.11.0, < 21 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| cassandra-driver | >= 4.4.0, < 5 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| Sequelize 1️⃣ | >= 6.0.0, < 7 | ✅ |
| TypeORM 1️⃣ | >= 0.3.0, < 2 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| LangChain (langchain, @langchain/core) 1️⃣ | >= 1.0.0, < 2 | ✅ |
| openai | >= 4.19.0, < 7 | ✅ |
| OpenAI Agents SDK (@openai/agents) 1️⃣ | >= 0.14.0, < 1 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| undici / fetch | >= 5.12.0 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| http / https (Node.js core) | Node.js built-in | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| Bunyan | >= 1.0.0, < 2 | ✅ |
| Pino | >= 5.14.0, < 11 | ✅ |
| Winston | >= 1.0.0, < 4 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| amqplib (RabbitMQ) | >= 0.5.5, < 3 | ✅ |
| kafkajs | >= 0.3.0, < 3 | ✅ |
| socket.io | >= 2.0.0, < 5 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| DataLoader | >= 2.0.0, < 3 | ✅ |
| graphql | >= 14.0.0, < 17 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| Connect | >= 3.0.0, < 4 | ✅ |
| Restify | >= 4.1.0, < 13 | ✅ |
| router | >= 1.0.0, < 3 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| @grpc/grpc-js | >= 1.0.0, < 2 | ✅ |
| Library name | Supported versions | Trace Explorer |
|---|
| generic-pool | >= 2.0.0, < 4 | ✅ |
| lru-memoizer | >= 1.3.0, < 4 | ✅ |
1️⃣ Not loaded by @opentelemetry/auto-instrumentations-node. Install its instrumentation package (@opentelemetry/instrumentation-sequelize, @opentelemetry/instrumentation-typeorm, @opentelemetry/instrumentation-langchain, or @opentelemetry/instrumentation-openai-agents) and register it in your code.
☝️You may access and use this preview feature solely for internal evaluation purposes. Previews are provided as-is. Your use of this preview is subject to the Snowflake Preview Terms located at https://www.snowflake.com/en/legal.
To check the package versions your application uses against these lists, run observe instrumentation audit in your project. See Check OpenTelemetry readiness with the Observe by Snowflake CLI.