{"_id":"@coralogix/instrumentation","_rev":"7-4d126a546057291d0c38efe9fc933bda","name":"@coralogix/instrumentation","dist-tags":{"latest":"0.220.0"},"versions":{"0.207.0":{"name":"@coralogix/instrumentation","version":"0.207.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@coralogix/instrumentation@0.207.0","maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"09fb1a579d23e6bb3cfea609a4df175ba1500e93","tarball":"https://registry.npmjs.org/@coralogix/instrumentation/-/instrumentation-0.207.0.tgz","fileCount":194,"integrity":"sha512-DQNxnN2o15t1Q5VCr00cyROmDgYzSd8BXyuHl+alyK5qmYwK2ywaLXK0Vq3nv00gRxZ6USNjGomjAhqrGGrzbA==","signatures":[{"sig":"MEUCIQDM6EG2ocJcTmJLhLymBUEr2bphIBn+5+ahyk7iG/xA1wIgYe2XNl+8dDL6uBlKidWKYjip7VfrLRe4kLv4mAAM3Uw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649731},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":"^18.19.0 || >=20.6.0"},"gitHead":"6d95f030ec3c50f0363b0258d1ac054a7321a96d","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"npm run test:cjs && npm run test:esm","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"node ../../../scripts/version-update.js","tdd:node":"npm run test -- --watch-extensions ts --watch","test:cjs":"nyc mocha 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","test:esm":"nyc node --experimental-loader=./hook.mjs ../../../node_modules/mocha/bin/mocha 'test/node/*.test.mjs'","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../../scripts/align-api-deps.js","peer-api-check":"node ../../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"coralogixnpm","email":"npm@coralogix.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Base class for node which OpenTelemetry instrumentation modules extend","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"import-in-the-middle":"^2.0.0","require-in-the-middle":"^8.0.0","@opentelemetry/api-logs":"0.207.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"17.1.0","karma":"6.4.4","mocha":"11.7.4","sinon":"18.0.1","codecov":"3.8.3","webpack":"5.101.3","ts-loader":"9.5.4","typescript":"5.0.4","@babel/core":"7.27.1","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"6.0.1","@types/mocha":"10.0.10","@types/sinon":"17.0.4","babel-loader":"10.0.0","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@babel/preset-env":"7.27.2","@opentelemetry/api":"1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"7.0.1","karma-chrome-launcher":"3.1.0","@opentelemetry/sdk-logs":"0.207.0","@opentelemetry/sdk-metrics":"2.2.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/instrumentation_0.207.0_1768995922693_0.3239981761325881","host":"s3://npm-registry-packages-npm-production"}},"0.208.0":{"name":"@coralogix/instrumentation","version":"0.208.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@coralogix/instrumentation@0.208.0","maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"0633141db7a72e7bcdb7bc67526aeb362e827647","tarball":"https://registry.npmjs.org/@coralogix/instrumentation/-/instrumentation-0.208.0.tgz","fileCount":194,"integrity":"sha512-UqXQ9hSbC0SvnA7ZL54dEMpPmDcAo4sYe+hauY9J8BNdoOAQSZViHcARITZV4rs5oRH9W1BdC+YtE0Tzj24c2w==","signatures":[{"sig":"MEUCIQDLbCx35rigP8/sSqaHETR6S7g8701fJs3eL8JM9BcXqgIgXbpS29wAOgoiF2pghenMoKMX2DVmtNQH2jRLoOwdpu4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649923},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":"^18.19.0 || >=20.6.0"},"gitHead":"640b1666c7f26572be0e76b52dc8379e0a87f3ac","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"npm run test:cjs && npm run test:esm","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"node ../../../scripts/version-update.js","tdd:node":"npm run test -- --watch-extensions ts --watch","test:cjs":"nyc mocha 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","test:esm":"nyc node --experimental-loader=./hook.mjs ../../../node_modules/mocha/bin/mocha 'test/node/*.test.mjs'","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../../scripts/align-api-deps.js","peer-api-check":"node ../../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"coralogixnpm","email":"npm@coralogix.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Base class for node which OpenTelemetry instrumentation modules extend","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"import-in-the-middle":"^2.0.0","require-in-the-middle":"^8.0.0","@opentelemetry/api-logs":"0.208.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"17.1.0","karma":"6.4.4","mocha":"11.7.4","sinon":"18.0.1","codecov":"3.8.3","webpack":"5.101.3","ts-loader":"9.5.4","typescript":"5.0.4","@babel/core":"7.27.1","@types/node":"18.6.5","karma-mocha":"2.0.1","webpack-cli":"6.0.1","@types/mocha":"10.0.10","@types/sinon":"17.0.4","babel-loader":"10.0.0","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@babel/preset-env":"7.27.2","@opentelemetry/api":"1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"7.0.1","karma-chrome-launcher":"3.1.0","@opentelemetry/sdk-logs":"0.207.0","@opentelemetry/sdk-metrics":"2.2.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/instrumentation_0.208.0_1769014269138_0.5227048718309939","host":"s3://npm-registry-packages-npm-production"}},"0.213.0":{"name":"@coralogix/instrumentation","version":"0.213.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@coralogix/instrumentation@0.213.0","maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js/issues"},"dist":{"shasum":"cbe7c05213864ae2be9b65f6d13a1dfb337ccf2c","tarball":"https://registry.npmjs.org/@coralogix/instrumentation/-/instrumentation-0.213.0.tgz","fileCount":194,"integrity":"sha512-Q/aodcat6Vh5NtZTVqi0a5iOfKKH59Ud/JbwyDHG3TJoCAQRfQXHJjJPWymtoEeHOsc2KoTtItuBlVrqcVCBaQ==","signatures":[{"sig":"MEQCIHbx0s/V9w1POqeChDRkHvr/M6TZTSTVY4Lh3llFoFyEAiBTtpWndcr3x5dZeJzUV/DXkduN426HgWnO1EZcaT/dxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585967},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":"^18.19.0 || >=20.6.0"},"gitHead":"5b1faf721855c70aed4b358475c6e1b67f3cc837","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"npm run test:cjs && npm run test:esm","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"node ../../../scripts/version-update.js","tdd:node":"npm run test -- --watch-extensions ts --watch","test:cjs":"nyc mocha 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","test:esm":"nyc node --experimental-loader=./hook.mjs ../../../node_modules/mocha/bin/mocha 'test/node/*.test.mjs'","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../../scripts/align-api-deps.js","peer-api-check":"node ../../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"coralogixnpm","email":"npm@coralogix.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Base class for node which OpenTelemetry instrumentation modules extend","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"import-in-the-middle":"^3.0.0","require-in-the-middle":"^8.0.0","@opentelemetry/api-logs":"0.213.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"17.1.0","karma":"6.4.4","mocha":"11.7.5","sinon":"18.0.1","webpack":"5.104.1","ts-loader":"9.5.4","typescript":"5.0.4","@babel/core":"7.27.1","@types/node":"18.19.130","karma-mocha":"2.0.1","webpack-cli":"6.0.1","@types/mocha":"10.0.10","@types/sinon":"17.0.4","babel-loader":"10.0.0","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@babel/preset-env":"7.27.2","@opentelemetry/api":"1.9.0","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"7.0.1","karma-chrome-launcher":"3.1.0","@opentelemetry/sdk-metrics":"2.6.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/instrumentation_0.213.0_1773310205468_0.932709963442877","host":"s3://npm-registry-packages-npm-production"}},"0.215.0":{"name":"@coralogix/instrumentation","version":"0.215.0","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@coralogix/instrumentation@0.215.0","maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"},{"name":"cx-shaharkazaz","email":"shahar.kazaz@coralogix.com"}],"homepage":"https://github.com/coralogix/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation","bugs":{"url":"https://github.com/coralogix/opentelemetry-js/issues"},"dist":{"shasum":"9801da39a00acb6bb24a0a799fc2233ada4fcd2c","tarball":"https://registry.npmjs.org/@coralogix/instrumentation/-/instrumentation-0.215.0.tgz","fileCount":194,"integrity":"sha512-H7n6o/EGtYQny0O0/BKDWLB1lAdd1hqB8UTD1rIFcQ58lvXurEHiSB+hHMr4iXmEUgihQI6UDVhAeakm2jbHeg==","signatures":[{"sig":"MEYCIQDZE0nCpaeu+pvIn4+L7hHYpaybpc5ob6IigPJEbZChjAIhAKCvol8LS8gDWtIJKAfKyJqXFr2S7WhG8br+Cl+pmjB1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coralogix%2finstrumentation@0.215.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588936},"main":"build/src/index.js","types":"build/src/index.d.ts","esnext":"build/esnext/index.js","module":"build/esm/index.js","browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js"},"engines":{"node":"^18.19.0 || >=20.6.0"},"gitHead":"78c31bb1441a0e54c5f4cc3a4d7708268465f8e3","scripts":{"tdd":"npm run tdd:node","lint":"eslint . --ext .ts","test":"npm run test:cjs && npm run test:esm","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","version":"node ../../../scripts/version-update.js","lint:fix":"eslint . --ext .ts --fix","prewatch":"node ../../../scripts/version-update.js","tdd:node":"npm run test -- --watch-extensions ts --watch","test:cjs":"nyc mocha 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","test:esm":"nyc node --experimental-loader=./hook.mjs ../../../node_modules/mocha/bin/mocha 'test/node/*.test.mjs'","tdd:browser":"karma start","test:browser":"karma start --single-run","align-api-deps":"node ../../../scripts/align-api-deps.js","peer-api-check":"node ../../../scripts/peer-api-check.js","prepublishOnly":"npm run compile"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76a89427-ab13-4714-b29b-d2940cab1dfc"}},"repository":{"url":"git+https://github.com/coralogix/opentelemetry-js.git","type":"git"},"_npmVersion":"11.11.0","description":"Base class for node which OpenTelemetry instrumentation modules extend","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"import-in-the-middle":"^3.0.0","require-in-the-middle":"^8.0.0","@opentelemetry/api-logs":"0.215.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"17.1.0","karma":"6.4.4","mocha":"11.7.5","sinon":"18.0.1","webpack":"5.104.1","ts-loader":"9.5.4","typescript":"5.0.4","@babel/core":"7.27.1","@types/node":"18.19.130","karma-mocha":"2.0.1","webpack-cli":"7.0.2","@types/mocha":"10.0.10","@types/sinon":"17.0.4","babel-loader":"10.0.0","karma-webpack":"5.0.1","karma-coverage":"2.2.1","@babel/preset-env":"7.27.2","@opentelemetry/api":"1.9.1","@types/webpack-env":"1.16.3","karma-spec-reporter":"0.0.36","babel-plugin-istanbul":"7.0.1","karma-chrome-launcher":"3.1.0","@opentelemetry/sdk-metrics":"2.7.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/instrumentation_0.215.0_1777964958994_0.08896189723027059","host":"s3://npm-registry-packages-npm-production"}},"0.220.0":{"name":"@coralogix/instrumentation","version":"0.220.0","description":"Base class for node which OpenTelemetry instrumentation modules extend","author":{"name":"OpenTelemetry Authors"},"homepage":"https://github.com/coralogix/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation","license":"Apache-2.0","main":"build/src/index.js","module":"build/esm/index.js","esnext":"build/esnext/index.js","types":"build/src/index.d.ts","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/coralogix/opentelemetry-js.git"},"browser":{"./src/platform/index.ts":"./src/platform/browser/index.ts","./build/esm/platform/index.js":"./build/esm/platform/browser/index.js","./build/esnext/platform/index.js":"./build/esnext/platform/browser/index.js","./build/src/platform/index.js":"./build/src/platform/browser/index.js"},"scripts":{"prepublishOnly":"npm run compile","compile":"tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json","clean":"tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json","lint":"eslint .","lint:fix":"eslint . --fix","tdd":"npm run tdd:node","tdd:node":"npm run test -- --watch-extensions ts --watch","tdd:browser":"karma start","test:cjs":"nyc --silent mocha 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'","test:esm":"nyc --silent --no-clean node --experimental-loader=./hook.mjs ../../../node_modules/mocha/bin/mocha 'test/node/*.test.mjs'","test":"npm run test:cjs && npm run test:esm && nyc report","test:browser":"karma start --single-run","version":"node ../../../scripts/version-update.js","watch":"tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json","prewatch":"node ../../../scripts/version-update.js","peer-api-check":"node ../../../scripts/peer-api-check.js","align-api-deps":"node ../../../scripts/align-api-deps.js"},"keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"bugs":{"url":"https://github.com/coralogix/opentelemetry-js/issues"},"dependencies":{"@opentelemetry/api-logs":"0.220.0","import-in-the-middle":"^3.0.0","require-in-the-middle":"^8.0.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"},"devDependencies":{"@babel/core":"7.29.7","@babel/preset-env":"7.29.7","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-metrics":"2.9.0","@types/mocha":"10.0.10","@types/node":"18.19.130","@types/sinon":"17.0.4","@types/webpack-env":"1.16.3","babel-loader":"10.0.0","babel-plugin-istanbul":"8.0.0","karma":"6.4.4","karma-chrome-launcher":"3.1.0","karma-coverage":"2.2.1","karma-mocha":"2.0.1","karma-spec-reporter":"0.0.36","karma-webpack":"5.0.1","mocha":"11.7.6","nyc":"17.1.0","sinon":"18.0.1","ts-loader":"9.5.7","typescript":"5.0.4","webpack":"5.104.1","webpack-cli":"7.0.3"},"engines":{"node":"^18.19.0 || >=20.6.0"},"sideEffects":false,"gitHead":"121d54dfccfae1b4e8b3954914679159b80c8ba0","_id":"@coralogix/instrumentation@0.220.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-h+Ifrhb0CTMa/ZjMwpsGERBzbNfZNqTMIM7dH65MY4olJYqusYX9dcuHfq7EPlMcdoLaabjeuVcmmTIJaZdTgA==","shasum":"8aabfc9783f1d38295ecbe6d23540feffa887c49","tarball":"https://registry.npmjs.org/@coralogix/instrumentation/-/instrumentation-0.220.0.tgz","fileCount":194,"unpackedSize":588568,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coralogix%2finstrumentation@0.220.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCMx5DzATeDtjNdfso3xqRMT3v33JPwVcdKN4I4XpV9OwIgcxPgon72f0C892WXj6cEwQUQpRsp+serGdxPo8Agoh0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76a89427-ab13-4714-b29b-d2940cab1dfc"}},"directories":{},"maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"},{"name":"ashley-hunter-cx","email":"ashley.hunter@coralogix.com"},{"name":"cx-shaharkazaz","email":"shahar.kazaz@coralogix.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/instrumentation_0.220.0_1783079472662_0.33545091293274676"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-21T11:45:22.260Z","modified":"2026-07-03T11:51:13.128Z","0.207.0":"2026-01-21T11:45:22.852Z","0.208.0":"2026-01-21T16:51:09.326Z","0.213.0":"2026-03-12T10:10:05.638Z","0.215.0":"2026-05-05T07:09:19.172Z","0.220.0":"2026-07-03T11:51:12.807Z"},"bugs":{"url":"https://github.com/coralogix/opentelemetry-js/issues"},"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","homepage":"https://github.com/coralogix/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation","keywords":["opentelemetry","nodejs","browser","tracing","profiling","metrics","stats"],"repository":{"type":"git","url":"git+https://github.com/coralogix/opentelemetry-js.git"},"description":"Base class for node which OpenTelemetry instrumentation modules extend","maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"},{"name":"ashley-hunter-cx","email":"ashley.hunter@coralogix.com"},{"name":"cx-shaharkazaz","email":"shahar.kazaz@coralogix.com"}],"readme":"# OpenTelemetry Instrumentation for web and node\n\n[![NPM Published Version][npm-img]][npm-url]\n[![Apache License][license-image]][license-image]\n\n**Note: This is an experimental package under active development. New releases may include breaking changes.**\n\n## Installation\n\n**Note: Much of OpenTelemetry JS documentation is written assuming the compiled application is run as CommonJS.**\nFor more details on ECMAScript Modules vs CommonJS, refer to [esm-support](https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/esm-support.md).\n\n```bash\nnpm install --save @opentelemetry/instrumentation\n```\n\n## Usage in Node\n\n```typescript\nimport {\n  InstrumentationBase,\n  InstrumentationConfig,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n} from '@opentelemetry/instrumentation';\n\nimport type * as module_name_to_be_patched from 'module_name_to_be_patched';\n\nexport class MyInstrumentation extends InstrumentationBase {\n  constructor(config: InstrumentationConfig = {}) {\n    super('MyInstrumentation', VERSION, config);\n  }\n\n  /**\n   * Init method will be called when the plugin is constructed.\n   * It returns an `InstrumentationNodeModuleDefinition` which describes\n   *   the node module to be instrumented and patched.\n   * It may also return a list of `InstrumentationNodeModuleDefinition`s if\n   *   the plugin should patch multiple modules or versions.\n   */\n  protected init() {\n    const module = new InstrumentationNodeModuleDefinition(\n      'module_name_to_be_patched',\n      ['1.*'],\n       this._onPatchMain,\n       this._onUnPatchMain,\n    );\n    // in case you need to patch additional files - this is optional\n    module.files.push(this._addPatchingMethod());\n\n    return module;\n    // you can also define more modules then just return an array of modules\n    // return [module1, module2, ....]\n  }\n\n  private _onPatchMain(moduleExports: typeof module_name_to_be_patched) {\n    this._wrap(\n      moduleExports,\n      'mainMethodName',\n      this._patchMainMethodName()\n    );\n    return moduleExports;\n  }\n\n  private _onUnPatchMain(moduleExports: typeof module_name_to_be_patched) {\n    this._unwrap(moduleExports, 'mainMethodName');\n  }\n\n  private _addPatchingMethod(): InstrumentationNodeModuleFile {\n    const file = new InstrumentationNodeModuleFile(\n      'module_name_to_be_patched/src/some_file.js',\n      this._onPatchMethodName,\n      this._onUnPatchMethodName,\n    );\n    return file;\n  }\n\n  private _onPatchMethodName(moduleExports: typeof module_name_to_be_patched) {\n    this._wrap(\n      moduleExports,\n      'methodName',\n      this._patchMethodName()\n    );\n    return moduleExports;\n  }\n\n  private _onUnPatchMethodName(moduleExports: typeof module_name_to_be_patched) {\n    this._unwrap(moduleExports, 'methodName');\n  }\n\n  private _patchMethodName(): (original) => any {\n    const plugin = this;\n    return function methodName(original) {\n      return function patchMethodName(this: any): PromiseOrValue<module_name_to_be_patched.methodName> {\n        console.log('methodName', arguments);\n        return original.apply(this, arguments);\n      };\n    };\n  }\n\n  private _patchMainMethodName(): (original) => any {\n    const plugin = this;\n    return function mainMethodName(original) {\n      return function patchMainMethodName(this: any): PromiseOrValue<module_name_to_be_patched.mainMethodName> {\n        console.log('mainMethodName', arguments);\n        return original.apply(this, arguments);\n      };\n    };\n  }\n}\n\n// Later, but before the module to instrument is required\n\nconst myInstrumentation = new MyInstrumentation();\nmyInstrumentation.setTracerProvider(provider); // this is optional, only if global TracerProvider shouldn't be used\nmyInstrumentation.setMeterProvider(meterProvider); // this is optional\nmyInstrumentation.enable();\n// or use Auto Loader\n```\n\n## Usage in Web\n\n```typescript\nimport {\n  InstrumentationBase,\n  InstrumentationConfig,\n} from '@opentelemetry/instrumentation';\n\nimport { Instrumentation } from '@opentelemetry/instrumentation';\n\nexport class MyInstrumentation extends InstrumentationBase {\n  constructor(config: InstrumentationConfig = {}) {\n    super('MyInstrumentation', VERSION, config);\n  }\n\n  private _patchOpen() {\n    return (original: OpenFunction): OpenFunction => {\n      const plugin = this;\n      return function patchOpen(this: XMLHttpRequest, ...args): void {\n        console.log('open', arguments);\n        return original.apply(this, args);\n      };\n    };\n  }\n\n  public enable() {\n    this._wrap(XMLHttpRequest.prototype, 'open', this._patchOpen());\n  }\n  public disable() {\n    this._unwrap(XMLHttpRequest.prototype, 'open');\n  }\n}\n\n// Later\n\nconst myInstrumentation = new MyInstrumentation();\nmyInstrumentation.setTracerProvider(provider); // this is optional, only if global TracerProvider shouldn't be used\nmyInstrumentation.setMeterProvider(meterProvider); // this is optional, only if global MeterProvider shouldn't be used\nmyInstrumentation.enable();\n// or use Auto Loader\n```\n\n## AutoLoader\n\n### NODE - Auto Loader\n\n```javascript\nconst { trace } = require('@opentelemetry/api');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { HttpInstrumentation } = require('@opentelemetry/instrumentation-http');\nconst { TracerProvider } = require('@opentelemetry/sdk-trace');\n\nconst tracerProvider = new TracerProvider();\ntrace.setGlobalTracerProvider(tracerProvider);\n// See https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/sdk-trace/\n// for a more complete example setting up a *context manager* and *propagators*.\n\nregisterInstrumentations({\n  instrumentations: [\n    new HttpInstrumentation(),\n  ],\n  //tracerProvider: tracerProvider, // optional, only if global TracerProvider shouldn't be used\n  //meterProvider: meterProvider, // optional, only if global MeterProvider shouldn't be used\n});\n\n```\n\n### WEB - Auto Loader\n\n```javascript\nconst { B3Propagator } = require('@opentelemetry/propagator-b3');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { XMLHttpRequestInstrumentation } = require('@opentelemetry/instrumentation-xml-http-request');\nconst { WebTracerProvider } = require('@opentelemetry/sdk-trace-web');\n\nconst tracerProvider = new WebTracerProvider();\n\ntracerProvider.register({\n  propagator: new B3Propagator(),\n});\n\nregisterInstrumentations({\n  instrumentations: [\n    new XMLHttpRequestInstrumentation({\n      ignoreUrls: [/localhost/],\n      propagateTraceHeaderCorsUrls: [\n        'http://localhost:8090',\n      ],\n    }),\n  ],\n  //tracerProvider: tracerProvider, // optional, only if global TracerProvider shouldn't be used\n  //meterProvider: meterProvider, // optional, only if global MeterProvider shouldn't be used\n});\n```\n\n## Selection of the used TracerProvider/MeterProvider\n\nThe `registerInstrumentations()` API allows to specify which `TracerProvider` and/or `MeterProvider` to use by the given options object.\nIf nothing is specified the global registered provider is used. Usually this is what most users want therefore it's recommended to keep this default.\n\nThere might be use case where someone has the need for more providers within an application. Please note that special care must be takes in such setups\nto avoid leaking information from one provider to the other because there are a lot places where e.g. the global `ContextManager` or `Propagator` is used.\n\n## Instrumentation for ECMAScript Modules (ESM) in Node.js (experimental)\n\nNode.js uses a different module loader for ECMAScript Modules (ESM) vs. CommonJS (CJS).\nA `require()` call will cause Node.js to use the CommonJS module loader.\nAn `import ...` statement or `import()` call will cause Node.js to use the ECMAScript module loader.\n\nIf your application is written in JavaScript as ESM, or it must compile to ESM from TypeScript, then a loader hook is required to properly patch instrumentation.\nThe custom hook for ESM instrumentation is `--experimental-loader=@opentelemetry/instrumentation/hook.mjs`.\nThis flag must be passed to the `node` binary, which is often done as a startup command and/or in the `NODE_OPTIONS` environment variable.\n\nFor more details on ECMAScript Modules vs CommonJS, refer to [esm-support](https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/esm-support.md).\n\n## Limitations\n\nInstrumentations for external modules (e.g. express, mongodb,...) hooks the `require` call or `import` statement. Therefore following conditions need to be met that this mechanism can work:\n\n- Instrumentations are registered **before** the module to instrument is `require`ed (CJS only)\n- modules are not included in a bundle. Tools like `esbuild`, `webpack`, ... usually have some mechanism to exclude specific modules from bundling\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\nThird-party licenses and copyright notices can be found in the [LICENSES directory](./LICENSES).\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: <https://opentelemetry.io/>\n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/instrumentation\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Finstrumentation.svg\n","readmeFilename":"README.md"}