From 15a825381a6dd0fce4b252802da1b9f6c20ffc07 Mon Sep 17 00:00:00 2001 From: meealmathur23 Date: Thu, 15 Feb 2024 11:40:58 +0530 Subject: [PATCH] ENG-1926 --- package-lock.json | 88 ++++++++++++++++++++++++++++++++++++ package.json | 3 +- packages/tracer-collector.js | 4 +- 3 files changed, 93 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc64ae2..97df60d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "@opentelemetry/exporter-metrics-otlp-grpc": "^0.35.0", "@opentelemetry/exporter-trace-otlp-grpc": "^0.41.0", "@opentelemetry/instrumentation-grpc": "^0.32.0", + "@opentelemetry/instrumentation-mongoose": "^0.35.0", "@opentelemetry/propagator-b3": "^1.1.1", "@opentelemetry/resources": "^1.2.0", "@opentelemetry/sdk-logs": "^0.44.0", @@ -1557,6 +1558,53 @@ "@opentelemetry/api": "^1.0.2" } }, + "node_modules/@opentelemetry/instrumentation-mongoose": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.35.0.tgz", + "integrity": "sha512-gReBMWD2Oa/wBGRWyg6B2dbPHhgkpOqDio31gE3DbC4JaqCsMByyeix75rZSzZ71RQmVh3d4jRLsqUtNVBzcyg==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.48.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mongoose/node_modules/@opentelemetry/instrumentation": { + "version": "0.48.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.48.0.tgz", + "integrity": "sha512-sjtZQB5PStIdCw5ovVTDGwnmQC+GGYArJNgIcydrDSqUTdYBnMrN9P4pwQZgS3vTGIp+TU1L8vMXGe51NVmIKQ==", + "dependencies": { + "@types/shimmer": "^1.0.2", + "import-in-the-middle": "1.7.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mongoose/node_modules/require-in-the-middle": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz", + "integrity": "sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==", + "dependencies": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/@opentelemetry/instrumentation-mysql": { "version": "0.28.0", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.28.0.tgz", @@ -2712,6 +2760,11 @@ "@types/node": "*" } }, + "node_modules/@types/shimmer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.5.tgz", + "integrity": "sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==" + }, "node_modules/@types/triple-beam": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", @@ -2739,6 +2792,25 @@ "node": ">= 0.6" } }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -3056,6 +3128,11 @@ "node": ">=10" } }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -3945,6 +4022,17 @@ } ] }, + "node_modules/import-in-the-middle": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.7.1.tgz", + "integrity": "sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==", + "dependencies": { + "acorn": "^8.8.2", + "acorn-import-assertions": "^1.9.0", + "cjs-module-lexer": "^1.2.2", + "module-details-from-path": "^1.0.3" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", diff --git a/package.json b/package.json index 694871a..721f703 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@middleware.io/node-apm", - "version": "1.2.11", + "version": "1.2.12", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" @@ -17,6 +17,7 @@ "@opentelemetry/exporter-metrics-otlp-grpc": "^0.35.0", "@opentelemetry/exporter-trace-otlp-grpc": "^0.41.0", "@opentelemetry/instrumentation-grpc": "^0.32.0", + "@opentelemetry/instrumentation-mongoose": "^0.35.0", "@opentelemetry/propagator-b3": "^1.1.1", "@opentelemetry/resources": "^1.2.0", "@opentelemetry/sdk-logs": "^0.44.0", diff --git a/packages/tracer-collector.js b/packages/tracer-collector.js index b8592ea..2fa9525 100644 --- a/packages/tracer-collector.js +++ b/packages/tracer-collector.js @@ -12,6 +12,7 @@ module.exports.init = (config) => { const api = require('@opentelemetry/api'); const { CompositePropagator } = require('@opentelemetry/core'); const { B3Propagator, B3InjectEncoding } = require('@opentelemetry/propagator-b3'); + const { MongooseInstrumentation } = require('@opentelemetry/instrumentation-mongoose'); api.propagation.setGlobalPropagator( new CompositePropagator({ propagators: [ @@ -28,7 +29,8 @@ module.exports.init = (config) => { getNodeAutoInstrumentations({}), new GrpcInstrumentation({ ignoreGrpcMethods:["Export"] - }) + }), + new MongooseInstrumentation(), ], }); sdk.addResource(new Resource({