Skip to content

Commit de1aed0

Browse files
committed
feat(nodejs): get rid of @opentelemetry/sdk-trace-node package dependency
1 parent e83f93f commit de1aed0

File tree

5 files changed

+52
-122
lines changed

5 files changed

+52
-122
lines changed

nodejs/package-lock.json

Lines changed: 14 additions & 61 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nodejs/packages/layer/package-lock.json

Lines changed: 3 additions & 50 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nodejs/packages/layer/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@
2828
"author": "OpenTelemetry Authors",
2929
"license": "Apache-2.0",
3030
"engines": {
31-
"node": ">=16.0.0"
31+
"node": ">=18.0.0"
3232
},
3333
"dependencies": {
3434
"@opentelemetry/api": "^1.9.0",
3535
"@opentelemetry/api-logs": "^0.57.0",
36+
"@opentelemetry/context-async-hooks": "^1.30.1",
3637
"@opentelemetry/core": "^1.30.0",
3738
"@opentelemetry/exporter-logs-otlp-http": "^0.57.0",
3839
"@opentelemetry/exporter-metrics-otlp-http": "^0.57.0",
@@ -59,8 +60,7 @@
5960
"@opentelemetry/resources": "^1.30.0",
6061
"@opentelemetry/sdk-logs": "^0.57.0",
6162
"@opentelemetry/sdk-metrics": "^1.30.0",
62-
"@opentelemetry/sdk-trace-base": "^1.30.0",
63-
"@opentelemetry/sdk-trace-node": "^1.30.0"
63+
"@opentelemetry/sdk-trace-base": "^1.30.0"
6464
},
6565
"devDependencies": {
6666
"@types/mocha": "^10.0.9",
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';
2+
import {
3+
BasicTracerProvider,
4+
PROPAGATOR_FACTORY,
5+
SDKRegistrationConfig,
6+
TracerConfig,
7+
} from '@opentelemetry/sdk-trace-base';
8+
9+
export class LambdaTracerProvider extends BasicTracerProvider {
10+
protected static override readonly _registeredPropagators = new Map<
11+
string,
12+
PROPAGATOR_FACTORY
13+
>([...BasicTracerProvider._registeredPropagators]);
14+
constructor(config: TracerConfig = {}) {
15+
super(config);
16+
}
17+
override register(config: SDKRegistrationConfig = {}): void {
18+
if (config.contextManager === undefined) {
19+
config.contextManager = new AsyncLocalStorageContextManager();
20+
config.contextManager.enable();
21+
}
22+
super.register(config);
23+
}
24+
}

nodejs/packages/layer/src/wrapper.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,13 @@ import {
1616
W3CTraceContextPropagator,
1717
} from '@opentelemetry/core';
1818
import {
19+
BasicTracerProvider,
1920
BatchSpanProcessor,
2021
ConsoleSpanExporter,
2122
SDKRegistrationConfig,
2223
SimpleSpanProcessor,
24+
TracerConfig,
2325
} from '@opentelemetry/sdk-trace-base';
24-
import {
25-
NodeTracerConfig,
26-
NodeTracerProvider,
27-
} from '@opentelemetry/sdk-trace-node';
2826
import {
2927
MeterProvider,
3028
MeterProviderOptions,
@@ -60,6 +58,8 @@ import {
6058
import { AWSXRayPropagator } from '@opentelemetry/propagator-aws-xray';
6159
import { AWSXRayLambdaPropagator } from '@opentelemetry/propagator-aws-xray-lambda';
6260

61+
import { LambdaTracerProvider } from './LambdaTracerProvider';
62+
6363
const defaultInstrumentationList = [
6464
'dns',
6565
'express',
@@ -88,8 +88,8 @@ declare global {
8888
function configureAwsInstrumentation(
8989
defaultConfig: AwsSdkInstrumentationConfig,
9090
): AwsSdkInstrumentationConfig;
91-
function configureTracerProvider(tracerProvider: NodeTracerProvider): void;
92-
function configureTracer(defaultConfig: NodeTracerConfig): NodeTracerConfig;
91+
function configureTracerProvider(tracerProvider: BasicTracerProvider): void;
92+
function configureTracer(defaultConfig: TracerConfig): TracerConfig;
9393
function configureSdkRegistration(
9494
defaultSdkRegistration: SDKRegistrationConfig,
9595
): SDKRegistrationConfig;
@@ -269,14 +269,14 @@ function initializeProvider() {
269269
detectors: [awsLambdaDetector, envDetector, processDetector],
270270
});
271271

272-
let config: NodeTracerConfig = {
272+
let config: TracerConfig = {
273273
resource,
274274
};
275275
if (typeof configureTracer === 'function') {
276276
config = configureTracer(config);
277277
}
278278

279-
const tracerProvider = new NodeTracerProvider(config);
279+
const tracerProvider = new LambdaTracerProvider(config);
280280
if (typeof configureTracerProvider === 'function') {
281281
configureTracerProvider(tracerProvider);
282282
} else {

0 commit comments

Comments
 (0)