Skip to content

Commit 05e2699

Browse files
authored
fix(sdk-node): register context manager if no tracer options are provided (#4781)
* fix(sdk-node): register context manager if no tracer options are provided * chore: add changelog entry
1 parent c9ea5f2 commit 05e2699

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

experimental/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ All notable changes to experimental packages in this project will be documented
1313

1414
### :bug: (Bug Fix)
1515

16+
* fix(sdk-node): register context manager if no tracer options are provided [#4781](https://github.com/open-telemetry/opentelemetry-js/pull/4781) @pichlermarc
17+
1618
### :books: (Refine Doc)
1719

1820
### :house: (Internal)

experimental/packages/opentelemetry-sdk-node/src/sdk.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,10 @@ export class NodeSDK {
247247
}
248248

249249
tracerProvider.register({
250-
contextManager: this._tracerProviderConfig?.contextManager,
250+
contextManager:
251+
this._tracerProviderConfig?.contextManager ??
252+
// _tracerProviderConfig may be undefined if trace-specific settings are not provided - fall back to raw config
253+
this._configuration?.contextManager,
251254
propagator: this._tracerProviderConfig?.textMapPropagator,
252255
});
253256

experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,22 @@ describe('Node SDK', () => {
325325
await sdk.shutdown();
326326
delete env.OTEL_TRACES_EXPORTER;
327327
});
328+
329+
it('should register a context manager if only a context manager is provided', async () => {
330+
// arrange
331+
const expectedContextManager = new AsyncHooksContextManager();
332+
const sdk = new NodeSDK({
333+
contextManager: expectedContextManager,
334+
});
335+
336+
// act
337+
sdk.start();
338+
339+
// assert
340+
const actualContextManager = context['_getContextManager']();
341+
assert.equal(actualContextManager, expectedContextManager);
342+
await sdk.shutdown();
343+
});
328344
});
329345

330346
async function waitForNumberOfMetrics(

0 commit comments

Comments
 (0)