fix: change default propagator to match spec (#1218)

Co-authored-by: Daniel Dyla <dyladan@users.noreply.github.com>
This commit is contained in:
Jonah Rosenblum 2020-06-19 11:26:04 -04:00 committed by GitHub
parent 1f20b4889b
commit 298b19ff17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 10 deletions

View File

@ -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");

View File

@ -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);
});

View File

@ -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) {

View File

@ -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);
});