Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .tav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ mongodb:
- versions: '>=5 <6'
node: '>=14.20.1'
commands: node test/instrumentation/modules/mongodb/mongodb.test.js
- versions: '>=6 <7'
- versions: '>=6 <8'
node: '>=16.20.1'
commands: node test/instrumentation/modules/mongodb/mongodb.test.js

Expand Down
58 changes: 29 additions & 29 deletions docs/reference/supported-technologies.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,36 +80,36 @@ By default transactions are named based on their matched HTTP route if the frame

The Node.js agent will automatically instrument the following modules to give you detailed performance metrics:

| Module | Version | Note |
| --- | --- | --- |
| [aws-sdk](https://www.npmjs.com/package/aws-sdk) | >=2.858.0 <3 | Will instrument SQS send/receive/delete messages, all S3 methods, all DynamoDB methods, and the SNS publish method |
| [@aws-sdk/client-s3](https://www.npmjs.com/package/@aws-sdk/client-s3) | >=3.15.0 <4 | Will instrument all S3 methods |
| [@aws-sdk/client-sns](https://www.npmjs.com/package/@aws-sdk/client-s3) | >=3.15.0 <4 | Will instrument the SNS publish method |
| [@aws-sdk/client-sqs](https://www.npmjs.com/package/@aws-sdk/client-s3) | >=3.15.0 <4 | Will instrument SQS send/receive/delete messages |
| [@aws-sdk/client-dynamodb](https://www.npmjs.com/package/@aws-sdk/client-dynamodb) | >=3.15.0 <4 | Will instrument all DynamoDB methods |
| [cassandra-driver](https://www.npmjs.com/package/cassandra-driver) | >=3.0.0 <5 | Will instrument all queries |
| [elasticsearch](https://www.npmjs.com/package/elasticsearch) | >=8.0.0 <17 | Will instrument all queries |
| Module | Version | Note |
| --- |-----------------| --- |
| [aws-sdk](https://www.npmjs.com/package/aws-sdk) | >=2.858.0 <3 | Will instrument SQS send/receive/delete messages, all S3 methods, all DynamoDB methods, and the SNS publish method |
| [@aws-sdk/client-s3](https://www.npmjs.com/package/@aws-sdk/client-s3) | >=3.15.0 <4 | Will instrument all S3 methods |
| [@aws-sdk/client-sns](https://www.npmjs.com/package/@aws-sdk/client-s3) | >=3.15.0 <4 | Will instrument the SNS publish method |
| [@aws-sdk/client-sqs](https://www.npmjs.com/package/@aws-sdk/client-s3) | >=3.15.0 <4 | Will instrument SQS send/receive/delete messages |
| [@aws-sdk/client-dynamodb](https://www.npmjs.com/package/@aws-sdk/client-dynamodb) | >=3.15.0 <4 | Will instrument all DynamoDB methods |
| [cassandra-driver](https://www.npmjs.com/package/cassandra-driver) | >=3.0.0 <5 | Will instrument all queries |
| [elasticsearch](https://www.npmjs.com/package/elasticsearch) | >=8.0.0 <17 | Will instrument all queries |
| [@elastic/elasticsearch](https://www.npmjs.com/package/@elastic/elasticsearch) | >=7.0.0 <10.0.0 | Will instrument all queries |
| [graphql](https://www.npmjs.com/package/graphql) | >=0.7.0 <17 | Will instrument all queries |
| [handlebars](https://www.npmjs.com/package/handlebars) | >=1 <5 | Will instrument compile and render calls |
| [jade](https://www.npmjs.com/package/jade) | >=0.5.6 <2 | Will instrument compile and render calls; Deprecated. No longer tested. Use pug. |
| [pug](https://www.npmjs.com/package/pug) | >=0.1.0 <4 | Will instrument compile and render calls |
| [ioredis](https://www.npmjs.com/package/ioredis) | >=2.0.0 <6.0.0 | Will instrument all queries |
| [memcached](https://www.npmjs.com/package/memcached) | >=2.2.0 <3 | Will instrument all commands. |
| [mongodb-core](https://www.npmjs.com/package/mongodb-core) | >=1.2.19 <4 | Will instrument all queries.A lot of higher level MongoDB modules use mongodb-core,so those should be supported as well. |
| [mongodb](https://www.npmjs.com/package/mongodb) | >=2.0.0 <3.3.0 | Supported via mongodb-core |
| [mongodb](https://www.npmjs.com/package/mongodb) | >=3.3.0 <7 | Will instrument all queries |
| [mongojs](https://www.npmjs.com/package/mongojs) | >=1.0.0 <2.7.0 | Supported via mongodb-core |
| [mongoose](https://www.npmjs.com/package/mongoose) | >=4.0.0 <5.7.0 | Supported via mongodb-core |
| [mongoose](https://www.npmjs.com/package/mongoose) | >=5.7.0 <8 | Supported via mongodb |
| [mysql](https://www.npmjs.com/package/mysql) | >=2.0.0 <3 | Will instrument all queries |
| [mysql2](https://www.npmjs.com/package/mysql2) | >=1.0.0 <4.0.0 | Will instrument all queries |
| [pg](https://www.npmjs.com/package/pg) | >=4.0.0 <9.0.0 | Will instrument all queries |
| [redis](https://www.npmjs.com/package/redis) | >=2.0.0 <5.0.0 | Will instrument all queries |
| [tedious](https://www.npmjs.com/package/tedious) | >=1.9 <20.0.0 | (Excluding v4.0.0.) Will instrument all queries |
| [undici](https://www.npmjs.com/package/undici) | >=4.7.1 <8 | Will instrument undici HTTP requests, except HTTP CONNECT. Requires node v14.17.0 or later, or the user to have installed the [*diagnostics_channel* polyfill](https://www.npmjs.com/package/diagnostics_channel). |
| [ws](https://www.npmjs.com/package/ws) | >=1.0.0 <8.0.0 | Will instrument outgoing WebSocket messages |
| [kafkajs](https://www.npmjs.com/package/kafkajs) | >=2.0.0 <3.0.0 | Will instrument all send methods for producers and message and batch processing for consumers. |
| [graphql](https://www.npmjs.com/package/graphql) | >=0.7.0 <17 | Will instrument all queries |
| [handlebars](https://www.npmjs.com/package/handlebars) | >=1 <5 | Will instrument compile and render calls |
| [jade](https://www.npmjs.com/package/jade) | >=0.5.6 <2 | Will instrument compile and render calls; Deprecated. No longer tested. Use pug. |
| [pug](https://www.npmjs.com/package/pug) | >=0.1.0 <4 | Will instrument compile and render calls |
| [ioredis](https://www.npmjs.com/package/ioredis) | >=2.0.0 <6.0.0 | Will instrument all queries |
| [memcached](https://www.npmjs.com/package/memcached) | >=2.2.0 <3 | Will instrument all commands. |
| [mongodb-core](https://www.npmjs.com/package/mongodb-core) | >=1.2.19 <4 | Will instrument all queries.A lot of higher level MongoDB modules use mongodb-core,so those should be supported as well. |
| [mongodb](https://www.npmjs.com/package/mongodb) | >=2.0.0 <3.3.0 | Supported via mongodb-core |
| [mongodb](https://www.npmjs.com/package/mongodb) | >=3.3.0 <8 | Will instrument all queries |
| [mongojs](https://www.npmjs.com/package/mongojs) | >=1.0.0 <2.7.0 | Supported via mongodb-core |
| [mongoose](https://www.npmjs.com/package/mongoose) | >=4.0.0 <5.7.0 | Supported via mongodb-core |
| [mongoose](https://www.npmjs.com/package/mongoose) | >=5.7.0 <8 | Supported via mongodb |
| [mysql](https://www.npmjs.com/package/mysql) | >=2.0.0 <3 | Will instrument all queries |
| [mysql2](https://www.npmjs.com/package/mysql2) | >=1.0.0 <4.0.0 | Will instrument all queries |
| [pg](https://www.npmjs.com/package/pg) | >=4.0.0 <9.0.0 | Will instrument all queries |
| [redis](https://www.npmjs.com/package/redis) | >=2.0.0 <5.0.0 | Will instrument all queries |
| [tedious](https://www.npmjs.com/package/tedious) | >=1.9 <20.0.0 | (Excluding v4.0.0.) Will instrument all queries |
| [undici](https://www.npmjs.com/package/undici) | >=4.7.1 <8 | Will instrument undici HTTP requests, except HTTP CONNECT. Requires node v14.17.0 or later, or the user to have installed the [*diagnostics_channel* polyfill](https://www.npmjs.com/package/diagnostics_channel). |
| [ws](https://www.npmjs.com/package/ws) | >=1.0.0 <8.0.0 | Will instrument outgoing WebSocket messages |
| [kafkajs](https://www.npmjs.com/package/kafkajs) | >=2.0.0 <3.0.0 | Will instrument all send methods for producers and message and batch processing for consumers. |


## Better Stack Traces [compatibility-better-stack-traces]
Expand Down
1 change: 1 addition & 0 deletions docs/release-notes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ To check for security updates, go to [Security announcements for the Elastic sta
**Release date:** Month day, year

### Features and enhancements [next-features-enhancements]
* Support instrumenting `mongodb` v7. ([#4911](https://github.com/elastic/apm-agent-nodejs/pull/4911))

### Fixes [next-fixes]

Expand Down
2 changes: 1 addition & 1 deletion lib/instrumentation/modules/mongodb.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const HOSTNAME_PORT_RE = /^(.+):(\d+)$/;

module.exports = (mongodb, agent, { version, enabled }) => {
if (!enabled) return mongodb;
if (!semver.satisfies(version, '>=3.3 <7')) {
if (!semver.satisfies(version, '>=3.3 <8')) {
agent.logger.debug(
'mongodb version %s not instrumented (mongodb <3.3 is instrumented via mongodb-core)',
version,
Expand Down
94 changes: 52 additions & 42 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@
"memcached": "^2.2.2",
"mimic-response": "1.0.0",
"mkdirp": "^3.0.1",
"mongodb": "^6.0.0",
"mongodb": "^7.0.0",
"mongodb-core": "^3.2.7",
"mysql": "^2.18.1",
"mysql2": "^3.2.4",
Expand Down
6 changes: 5 additions & 1 deletion test/_is_mongodb_incompat.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ function isMongodbIncompat() {
if (!semver.satisfies(nodeVer, '>=14.20.1')) {
return msg;
}
} else if (semver.satisfies(mongodbVer, '>=6.0.0')) {
} else if (semver.satisfies(mongodbVer, '>=6.0.0 <7')) {
if (!semver.satisfies(nodeVer, '>=16.20.1')) {
return msg;
}
} else if (semver.satisfies(mongodbVer, '>=7.0.0')) {
if (!semver.satisfies(nodeVer, '>=16.20.1')) {
return msg;
}
Expand Down