diff --git a/src/paymentservice/opentelemetry.js b/src/paymentservice/opentelemetry.js index e5d44b9b76..623a309b1b 100644 --- a/src/paymentservice/opentelemetry.js +++ b/src/paymentservice/opentelemetry.js @@ -11,6 +11,7 @@ const {awsEc2Detector, awsEksDetector} = require('@opentelemetry/resource-detect const {containerDetector} = require('@opentelemetry/resource-detector-container') const {gcpDetector} = require('@opentelemetry/resource-detector-gcp') const {envDetector, hostDetector, osDetector, processDetector} = require('@opentelemetry/resources') +const {RuntimeNodeInstrumentation} = require('@opentelemetry/instrumentation-runtime-node') const sdk = new opentelemetry.NodeSDK({ traceExporter: new OTLPTraceExporter(), @@ -20,6 +21,9 @@ const sdk = new opentelemetry.NodeSDK({ '@opentelemetry/instrumentation-fs': { requireParentSpan: true, }, + }), + new RuntimeNodeInstrumentation({ + monitoringPrecision: 5000, }) ], metricReader: new PeriodicExportingMetricReader({ diff --git a/src/paymentservice/package-lock.json b/src/paymentservice/package-lock.json index d2719f2bb3..fad9651dbb 100644 --- a/src/paymentservice/package-lock.json +++ b/src/paymentservice/package-lock.json @@ -18,6 +18,7 @@ "@opentelemetry/core": "1.24.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.51.1", "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1", + "@opentelemetry/instrumentation-runtime-node": "^0.10.0", "@opentelemetry/resource-detector-alibaba-cloud": "0.28.9", "@opentelemetry/resource-detector-aws": "1.5.0", "@opentelemetry/resource-detector-container": "0.3.9", @@ -909,6 +910,61 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/instrumentation-runtime-node": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.10.0.tgz", + "integrity": "sha512-hvwbi9iSqiclqSkRNFLW/3/v5drUPfD8V9zAmXZWZA68X0yygb2nPQlGce9Aba7p3l+Z4wGL8WcPtHDN2XzpoQ==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.55.0" + }, + "engines": { + "node": ">=17.4.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-runtime-node/node_modules/@opentelemetry/api-logs": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz", + "integrity": "sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-runtime-node/node_modules/@opentelemetry/instrumentation": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.55.0.tgz", + "integrity": "sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==", + "dependencies": { + "@opentelemetry/api-logs": "0.55.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.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-runtime-node/node_modules/import-in-the-middle": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz", + "integrity": "sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==", + "dependencies": { + "acorn": "^8.8.2", + "acorn-import-attributes": "^1.9.5", + "cjs-module-lexer": "^1.2.2", + "module-details-from-path": "^1.0.3" + } + }, "node_modules/@opentelemetry/instrumentation-socket.io": { "version": "0.39.0", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.39.0.tgz", @@ -1571,9 +1627,9 @@ } }, "node_modules/@types/shimmer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.5.tgz", - "integrity": "sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" }, "node_modules/@types/tedious": { "version": "4.0.14", diff --git a/src/paymentservice/package.json b/src/paymentservice/package.json index f51782201d..ccf79a81b0 100644 --- a/src/paymentservice/package.json +++ b/src/paymentservice/package.json @@ -16,18 +16,19 @@ "@grpc/proto-loader": "0.7.13", "@openfeature/flagd-provider": "0.13.0", "@openfeature/server-sdk": "1.14.0", + "@opentelemetry/api": "1.8.0", "@opentelemetry/auto-instrumentations-node": "0.46.1", "@opentelemetry/core": "1.24.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/api": "1.8.0", - "@opentelemetry/sdk-metrics": "1.24.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.51.1", - "@opentelemetry/sdk-node": "0.51.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1", + "@opentelemetry/instrumentation-runtime-node": "^0.10.0", "@opentelemetry/resource-detector-alibaba-cloud": "0.28.9", "@opentelemetry/resource-detector-aws": "1.5.0", "@opentelemetry/resource-detector-container": "0.3.9", "@opentelemetry/resource-detector-gcp": "0.29.9", + "@opentelemetry/resources": "1.24.1", + "@opentelemetry/sdk-metrics": "1.24.1", + "@opentelemetry/sdk-node": "0.51.1", "grpc-js-health-check": "1.1.0", "pino": "8.16.1", "simple-card-validator": "1.1.0",