From 1f8f3a3d6d2b59565733237975c3781391ac693e Mon Sep 17 00:00:00 2001 From: Anu Sridhar Date: Wed, 3 Apr 2024 10:58:37 +1100 Subject: [PATCH 1/6] fix(opentelemetry-sdk-trace-node): support xray propagator Signed-off-by: Anu Sridhar --- package-lock.json | 43 ++++++++++++++++++- .../opentelemetry-sdk-trace-node/package.json | 3 +- .../src/NodeTracerProvider.ts | 2 + .../test/NodeTracerProvider.test.ts | 3 +- 4 files changed, 48 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6cc7166559..ce7854ca08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -777,7 +777,8 @@ "version": "0.49.1", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.0.0", + "@opentelemetry/api-logs": "0.49.1" }, "devDependencies": { "@types/mocha": "10.0.6", @@ -10042,6 +10043,20 @@ "resolved": "experimental/packages/otlp-transformer", "link": true }, + "node_modules/@opentelemetry/propagator-aws-xray": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.3.1.tgz", + "integrity": "sha512-6fDMzFlt5r6VWv7MUd0eOpglXPFqykW8CnOuUxJ1VZyLy6mV1bzBlzpsqEmhx1bjvZYvH93vhGkQZqrm95mlrQ==", + "dependencies": { + "@opentelemetry/core": "^1.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, "node_modules/@opentelemetry/propagator-b3": { "resolved": "packages/opentelemetry-propagator-b3", "link": true @@ -35481,6 +35496,15 @@ "@opentelemetry/api": ">=1.0.0 <1.9.0" } }, + "packages/opentelemetry-resources/node_modules/@opentelemetry/api": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", + "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, "packages/opentelemetry-resources/node_modules/@opentelemetry/resources_1.9.0": { "name": "@opentelemetry/resources", "version": "1.9.0", @@ -35939,6 +35963,7 @@ "dependencies": { "@opentelemetry/context-async-hooks": "1.22.0", "@opentelemetry/core": "1.22.0", + "@opentelemetry/propagator-aws-xray": "1.3.1", "@opentelemetry/propagator-b3": "1.22.0", "@opentelemetry/propagator-jaeger": "1.22.0", "@opentelemetry/sdk-trace-base": "1.22.0", @@ -40220,6 +40245,7 @@ "version": "file:experimental/packages/api-events", "requires": { "@opentelemetry/api": "^1.0.0", + "@opentelemetry/api-logs": "0.49.1", "@types/mocha": "10.0.6", "@types/node": "18.6.5", "@types/webpack-env": "1.16.3", @@ -43193,6 +43219,14 @@ } } }, + "@opentelemetry/propagator-aws-xray": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.3.1.tgz", + "integrity": "sha512-6fDMzFlt5r6VWv7MUd0eOpglXPFqykW8CnOuUxJ1VZyLy6mV1bzBlzpsqEmhx1bjvZYvH93vhGkQZqrm95mlrQ==", + "requires": { + "@opentelemetry/core": "^1.0.0" + } + }, "@opentelemetry/propagator-b3": { "version": "file:packages/opentelemetry-propagator-b3", "requires": { @@ -43329,6 +43363,12 @@ "webpack-merge": "5.10.0" }, "dependencies": { + "@opentelemetry/api": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", + "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", + "dev": true + }, "@opentelemetry/resources_1.9.0": { "version": "npm:@opentelemetry/resources@1.9.0", "dev": true, @@ -43987,6 +44027,7 @@ "@opentelemetry/api": ">=1.0.0 <1.9.0", "@opentelemetry/context-async-hooks": "1.22.0", "@opentelemetry/core": "1.22.0", + "@opentelemetry/propagator-aws-xray": "1.3.1", "@opentelemetry/propagator-b3": "1.22.0", "@opentelemetry/propagator-jaeger": "1.22.0", "@opentelemetry/resources": "1.22.0", diff --git a/packages/opentelemetry-sdk-trace-node/package.json b/packages/opentelemetry-sdk-trace-node/package.json index eb1d77c137..97021f42da 100644 --- a/packages/opentelemetry-sdk-trace-node/package.json +++ b/packages/opentelemetry-sdk-trace-node/package.json @@ -67,6 +67,7 @@ "dependencies": { "@opentelemetry/context-async-hooks": "1.22.0", "@opentelemetry/core": "1.22.0", + "@opentelemetry/propagator-aws-xray": "1.3.1", "@opentelemetry/propagator-b3": "1.22.0", "@opentelemetry/propagator-jaeger": "1.22.0", "@opentelemetry/sdk-trace-base": "1.22.0", @@ -74,4 +75,4 @@ }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node", "sideEffects": false -} +} \ No newline at end of file diff --git a/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts b/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts index 9d552162f6..50562f3200 100644 --- a/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts +++ b/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts @@ -26,6 +26,7 @@ import { import * as semver from 'semver'; import { NodeTracerConfig } from './config'; import { JaegerPropagator } from '@opentelemetry/propagator-jaeger'; +import { AWSXRayPropagator } from '@opentelemetry/propagator-aws-xray'; /** * Register this TracerProvider for use with the OpenTelemetry API. @@ -50,6 +51,7 @@ export class NodeTracerProvider extends BasicTracerProvider { () => new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER }), ], ['jaeger', () => new JaegerPropagator()], + ['xray', ()=> new AWSXRayPropagator()] ]); constructor(config: NodeTracerConfig = {}) { diff --git a/packages/opentelemetry-sdk-trace-node/test/NodeTracerProvider.test.ts b/packages/opentelemetry-sdk-trace-node/test/NodeTracerProvider.test.ts index 1b1dbbd6d8..a0acf0d0d0 100644 --- a/packages/opentelemetry-sdk-trace-node/test/NodeTracerProvider.test.ts +++ b/packages/opentelemetry-sdk-trace-node/test/NodeTracerProvider.test.ts @@ -236,7 +236,7 @@ describe('NodeTracerProvider', () => { }); it('should allow propagators as per the specification', () => { - (process.env as any).OTEL_PROPAGATORS = 'b3,b3multi,jaeger'; + (process.env as any).OTEL_PROPAGATORS = 'b3,b3multi,jaeger,xray'; const provider = new NodeTracerProvider(); provider.register(); @@ -249,6 +249,7 @@ describe('NodeTracerProvider', () => { 'x-b3-sampled', 'x-b3-parentspanid', 'uber-trace-id', + 'x-amzn-trace-id', ]); }); }); From c54869b9a9a281aa965dddf2982e01da54de4085 Mon Sep 17 00:00:00 2001 From: Anu Sridhar Date: Wed, 3 Apr 2024 11:33:33 +1100 Subject: [PATCH 2/6] linter fix Signed-off-by: Anu Sridhar --- packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts b/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts index 50562f3200..f4ff846e8f 100644 --- a/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts +++ b/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts @@ -51,7 +51,7 @@ export class NodeTracerProvider extends BasicTracerProvider { () => new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER }), ], ['jaeger', () => new JaegerPropagator()], - ['xray', ()=> new AWSXRayPropagator()] + ['xray', () => new AWSXRayPropagator()] ]); constructor(config: NodeTracerConfig = {}) { From cc052375a23f861ab203fa49d76aea658233446d Mon Sep 17 00:00:00 2001 From: Anu Sridhar Date: Wed, 3 Apr 2024 11:44:00 +1100 Subject: [PATCH 3/6] Build trigger From b8a0a12c58fef58ef83a80e69963abcb8ab673e4 Mon Sep 17 00:00:00 2001 From: Anuraag Sridhar Date: Wed, 3 Apr 2024 16:05:58 +1100 Subject: [PATCH 4/6] Update package.json Revert newline change --- packages/opentelemetry-sdk-trace-node/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opentelemetry-sdk-trace-node/package.json b/packages/opentelemetry-sdk-trace-node/package.json index 97021f42da..3a36cd9f7d 100644 --- a/packages/opentelemetry-sdk-trace-node/package.json +++ b/packages/opentelemetry-sdk-trace-node/package.json @@ -75,4 +75,4 @@ }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node", "sideEffects": false -} \ No newline at end of file +} From 714362b4ca4d0a067cb66bed812eb8ce4491c33a Mon Sep 17 00:00:00 2001 From: Marc Pichler Date: Fri, 3 May 2024 14:46:08 +0200 Subject: [PATCH 5/6] chore: add changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 773b8a7db7..9f42753dd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ * feat(instrumentation): generic config type in instrumentation base [#4659](https://github.com/open-telemetry/opentelemetry-js/pull/4659) @blumamir * feat: support node 22 [#4666](https://github.com/open-telemetry/opentelemetry-js/pull/4666) @dyladan +* feat(sdk-trace-node): support `xray` Propagator via `OTEL_PROPAGATORS` environment variable [#4602](https://github.com/open-telemetry/opentelemetry-js/pull/4602) @anuraags ### :bug: (Bug Fix) From d2db1332e732cb76779ff517a323415fa0d2fa06 Mon Sep 17 00:00:00 2001 From: Marc Pichler Date: Fri, 3 May 2024 14:52:46 +0200 Subject: [PATCH 6/6] fix: lint --- packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts b/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts index f4ff846e8f..c82b600d93 100644 --- a/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts +++ b/packages/opentelemetry-sdk-trace-node/src/NodeTracerProvider.ts @@ -51,7 +51,7 @@ export class NodeTracerProvider extends BasicTracerProvider { () => new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER }), ], ['jaeger', () => new JaegerPropagator()], - ['xray', () => new AWSXRayPropagator()] + ['xray', () => new AWSXRayPropagator()], ]); constructor(config: NodeTracerConfig = {}) {