From 1478707ceaaa693f1aca35f9dc7be1c8b44d7d44 Mon Sep 17 00:00:00 2001 From: "Rustam @SecondFry Gubaydullin" Date: Wed, 28 Aug 2024 18:31:18 +0300 Subject: [PATCH] feat!: use modern diagnostics_channel API --- package-lock.json | 26 ++++++++++++++++--- .../node/instrumentation-undici/package.json | 4 +-- .../src/internal-types.ts | 6 ++--- .../node/instrumentation-undici/src/undici.ts | 7 +++-- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index e9d5dce8a8..c1588f920d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38476,7 +38476,7 @@ "@opentelemetry/sdk-trace-base": "^1.8.0", "@opentelemetry/sdk-trace-node": "^1.8.0", "@types/mocha": "7.0.2", - "@types/node": "18.6.5", + "@types/node": "18.19.47", "mocha": "7.2.0", "nyc": "15.1.0", "rimraf": "5.0.10", @@ -38487,12 +38487,21 @@ "undici": "6.11.1" }, "engines": { - "node": ">=14" + "node": ">= 18.19.0" }, "peerDependencies": { "@opentelemetry/api": "^1.7.0" } }, + "plugins/node/instrumentation-undici/node_modules/@types/node": { + "version": "18.19.47", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.47.tgz", + "integrity": "sha512-1f7dB3BL/bpd9tnDJrrHb66Y+cVrhxSOTGorRNdHwYTUlTay3HuTDPKo9a/4vX9pMQkhYBcAbL4jQdNlhCFP9A==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, "plugins/node/opentelemetry-instrumentation-aws-lambda": { "name": "@opentelemetry/instrumentation-aws-lambda", "version": "0.43.0", @@ -53025,7 +53034,7 @@ "@opentelemetry/sdk-trace-base": "^1.8.0", "@opentelemetry/sdk-trace-node": "^1.8.0", "@types/mocha": "7.0.2", - "@types/node": "18.6.5", + "@types/node": "18.19.47", "mocha": "7.2.0", "nyc": "15.1.0", "rimraf": "5.0.10", @@ -53034,6 +53043,17 @@ "ts-mocha": "10.0.0", "typescript": "4.4.4", "undici": "6.11.1" + }, + "dependencies": { + "@types/node": { + "version": "18.19.47", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.47.tgz", + "integrity": "sha512-1f7dB3BL/bpd9tnDJrrHb66Y+cVrhxSOTGorRNdHwYTUlTay3HuTDPKo9a/4vX9pMQkhYBcAbL4jQdNlhCFP9A==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + } } }, "@opentelemetry/instrumentation-user-interaction": { diff --git a/plugins/node/instrumentation-undici/package.json b/plugins/node/instrumentation-undici/package.json index ffc2442776..ca3f529cd7 100644 --- a/plugins/node/instrumentation-undici/package.json +++ b/plugins/node/instrumentation-undici/package.json @@ -30,7 +30,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=14" + "node": ">= 18.19.0" }, "files": [ "build/src/**/*.js", @@ -46,7 +46,7 @@ "@opentelemetry/sdk-trace-base": "^1.8.0", "@opentelemetry/sdk-trace-node": "^1.8.0", "@types/mocha": "7.0.2", - "@types/node": "18.6.5", + "@types/node": "18.19.47", "mocha": "7.2.0", "nyc": "15.1.0", "rimraf": "5.0.10", diff --git a/plugins/node/instrumentation-undici/src/internal-types.ts b/plugins/node/instrumentation-undici/src/internal-types.ts index fee0e7294a..4b4dbcf457 100644 --- a/plugins/node/instrumentation-undici/src/internal-types.ts +++ b/plugins/node/instrumentation-undici/src/internal-types.ts @@ -13,14 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import type { Channel } from 'diagnostics_channel'; - import { UndiciRequest, UndiciResponse } from './types'; export interface ListenerRecord { name: string; - channel: Channel; - onMessage: (message: any, name: string) => void; + onMessage: (message: any, name: string | symbol) => void; + unsubscribe: () => void; } export interface RequestMessage { diff --git a/plugins/node/instrumentation-undici/src/undici.ts b/plugins/node/instrumentation-undici/src/undici.ts index 0d8ebedc73..ed5ae0b9b5 100644 --- a/plugins/node/instrumentation-undici/src/undici.ts +++ b/plugins/node/instrumentation-undici/src/undici.ts @@ -77,7 +77,7 @@ export class UndiciInstrumentation extends InstrumentationBase sub.channel.unsubscribe(sub.onMessage)); + this._channelSubs.forEach(sub => sub.unsubscribe()); this._channelSubs.length = 0; } @@ -139,12 +139,11 @@ export class UndiciInstrumentation extends InstrumentationBase diagch.unsubscribe(diagnosticChannel, onMessage), }); }