diff --git a/packages/opentelemetry-core/README.md b/packages/opentelemetry-core/README.md index 08e639d492..7bb1ee7ace 100644 --- a/packages/opentelemetry-core/README.md +++ b/packages/opentelemetry-core/README.md @@ -30,8 +30,6 @@ This package provides default implementations of the OpenTelemetry API for trace OpenTelemetry provides a text-based approach to propagate context to remote services using the [W3C Trace Context](https://www.w3.org/TR/trace-context/) HTTP headers. -> This is used as a default Propagator - ```js const api = require("@opentelemetry/api"); const { HttpTraceContext } = require("@opentelemetry/core"); @@ -56,6 +54,8 @@ api.propagation.setGlobalPropagator(new B3Propagator()); Combines multiple propagators into a single propagator. +> This is used as a default Propagator + ```js const api = require("@opentelemetry/api"); const { CompositePropagator } = require("@opentelemetry/core"); diff --git a/packages/opentelemetry-node/test/registration.test.ts b/packages/opentelemetry-node/test/registration.test.ts index 91153e1fdc..af4f08183c 100644 --- a/packages/opentelemetry-node/test/registration.test.ts +++ b/packages/opentelemetry-node/test/registration.test.ts @@ -22,7 +22,7 @@ import { } from '@opentelemetry/api'; import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; import { NoopContextManager } from '@opentelemetry/context-base'; -import { HttpTraceContext } from '@opentelemetry/core'; +import { CompositePropagator } from '@opentelemetry/core'; import * as assert from 'assert'; import { NodeTracerProvider } from '../src'; @@ -41,7 +41,7 @@ describe('API registration', () => { context['_getContextManager']() instanceof AsyncHooksContextManager ); assert.ok( - propagation['_getGlobalPropagator']() instanceof HttpTraceContext + propagation['_getGlobalPropagator']() instanceof CompositePropagator ); assert.ok(trace.getTracerProvider() === tracerProvider); }); @@ -72,7 +72,7 @@ describe('API registration', () => { assert.ok(context['_getContextManager']() instanceof NoopContextManager); assert.ok( - propagation['_getGlobalPropagator']() instanceof HttpTraceContext + propagation['_getGlobalPropagator']() instanceof CompositePropagator ); assert.ok(trace.getTracerProvider() === tracerProvider); }); diff --git a/packages/opentelemetry-tracing/src/BasicTracerProvider.ts b/packages/opentelemetry-tracing/src/BasicTracerProvider.ts index 43b1474cb4..e1b4a54bb0 100644 --- a/packages/opentelemetry-tracing/src/BasicTracerProvider.ts +++ b/packages/opentelemetry-tracing/src/BasicTracerProvider.ts @@ -15,7 +15,12 @@ */ import * as api from '@opentelemetry/api'; -import { ConsoleLogger, HttpTraceContext } from '@opentelemetry/core'; +import { + ConsoleLogger, + HttpTraceContext, + HttpCorrelationContext, + CompositePropagator, +} from '@opentelemetry/core'; import { SpanProcessor, Tracer } from '.'; import { DEFAULT_CONFIG } from './config'; import { MultiSpanProcessor } from './MultiSpanProcessor'; @@ -78,7 +83,9 @@ export class BasicTracerProvider implements api.TracerProvider { register(config: SDKRegistrationConfig = {}) { api.trace.setGlobalTracerProvider(this); if (config.propagator === undefined) { - config.propagator = new HttpTraceContext(); + config.propagator = new CompositePropagator({ + propagators: [new HttpCorrelationContext(), new HttpTraceContext()], + }); } if (config.contextManager) { diff --git a/packages/opentelemetry-web/test/registration.test.ts b/packages/opentelemetry-web/test/registration.test.ts index 215dfad19f..2639072bf4 100644 --- a/packages/opentelemetry-web/test/registration.test.ts +++ b/packages/opentelemetry-web/test/registration.test.ts @@ -21,7 +21,7 @@ import { trace, } from '@opentelemetry/api'; import { NoopContextManager } from '@opentelemetry/context-base'; -import { HttpTraceContext } from '@opentelemetry/core'; +import { CompositePropagator } from '@opentelemetry/core'; import * as assert from 'assert'; import { StackContextManager, WebTracerProvider } from '../src'; @@ -38,7 +38,7 @@ describe('API registration', () => { assert.ok(context['_getContextManager']() instanceof StackContextManager); assert.ok( - propagation['_getGlobalPropagator']() instanceof HttpTraceContext + propagation['_getGlobalPropagator']() instanceof CompositePropagator ); assert.ok(trace.getTracerProvider() === tracerProvider); }); @@ -69,7 +69,7 @@ describe('API registration', () => { assert.ok(context['_getContextManager']() instanceof NoopContextManager); assert.ok( - propagation['_getGlobalPropagator']() instanceof HttpTraceContext + propagation['_getGlobalPropagator']() instanceof CompositePropagator ); assert.ok(trace.getTracerProvider() === tracerProvider); });