Skip to content

Commit 46f31dd

Browse files
authored
chore!: move b3 into its own package (#1595)
1 parent e5b7de9 commit 46f31dd

File tree

32 files changed

+590
-67
lines changed

32 files changed

+590
-67
lines changed

benchmark/propagator.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ const benchmark = require('./benchmark');
44
const opentelemetry = require('../packages/opentelemetry-core');
55
const api = require('../packages/opentelemetry-api');
66
const { Context } = require('../packages/opentelemetry-context-base');
7+
const { B3Propagator } = require('../packages/opentelemetry-propagator-b3');
78

89
const setups = [
910
{
1011
name: 'B3Propagator',
11-
propagator: new opentelemetry.B3Propagator(),
12+
propagator: new B3Propagator(),
1213
injectCarrier: {},
1314
extractCarrier: {
1415
'x-b3-traceid': 'd4cda95b652f4a1592b449d5929fda1b',

examples/tracer-web/examples/fetch/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { CollectorTraceExporter } from '@opentelemetry/exporter-collector';
55
import { WebTracerProvider } from '@opentelemetry/web';
66
import { FetchPlugin } from '@opentelemetry/plugin-fetch';
77
import { ZoneContextManager } from '@opentelemetry/context-zone';
8-
import { B3Propagator } from '@opentelemetry/core';
8+
import { B3Propagator } from '@opentelemetry/propagator-b3';
99

1010
const provider = new WebTracerProvider({
1111
plugins: [

examples/tracer-web/examples/xml-http-request/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { WebTracerProvider } from '@opentelemetry/web';
33
import { XMLHttpRequestPlugin } from '@opentelemetry/plugin-xml-http-request';
44
import { ZoneContextManager } from '@opentelemetry/context-zone';
55
import { CollectorTraceExporter } from '@opentelemetry/exporter-collector';
6-
import { B3Propagator } from '@opentelemetry/core';
6+
import { B3Propagator } from '@opentelemetry/propagator-b3';
77

88
const providerWithZone = new WebTracerProvider({
99
plugins: [

examples/tracer-web/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"@opentelemetry/exporter-collector": "^0.12.0",
4040
"@opentelemetry/exporter-zipkin": "^0.12.0",
4141
"@opentelemetry/metrics": "^0.12.0",
42+
"@opentelemetry/propagator-b3": "^0.12.0",
4243
"@opentelemetry/plugin-document-load": "^0.9.0",
4344
"@opentelemetry/plugin-fetch": "^0.12.0",
4445
"@opentelemetry/plugin-user-interaction": "^0.9.0",

packages/opentelemetry-api/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Because the npm installer and node module resolution algorithm could potentially
106106
If you prefer to choose your own propagator or context manager, you may pass an options object into the `tracerProvider.register()` method. Omitted or `undefined` options will be replaced by a default value and `null` values will be skipped.
107107

108108
```javascript
109-
const { B3Propagator } = require("@opentelemetry/core");
109+
const { B3Propagator } = require("@opentelemetry/propagator-b3");
110110

111111
tracerProvider.register({
112112
// Use B3 Propagation

packages/opentelemetry-core/README.md

-13
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ This package provides default implementations of the OpenTelemetry API for trace
1414
- [Built-in Implementations](#built-in-implementations)
1515
- [Built-in Propagators](#built-in-propagators)
1616
- [HttpTraceContext Propagator](#httptracecontext-propagator)
17-
- [B3 Propagator](#b3-propagator)
1817
- [Composite Propagator](#composite-propagator)
1918
- [Correlation Context Propagator](#correlation-context-propagator)
2019
- [Built-in Sampler](#built-in-sampler)
@@ -38,18 +37,6 @@ const { HttpTraceContext } = require("@opentelemetry/core");
3837
api.propagation.setGlobalPropagator(new HttpTraceContext());
3938
```
4039

41-
#### B3 Propagator
42-
43-
This is propagator for the B3 HTTP header format, which sends a `SpanContext` on the wire in an HTTP request, allowing other services to create spans with the right context. Based on: <https://github.com/openzipkin/b3-propagation>
44-
45-
```js
46-
const api = require("@opentelemetry/api");
47-
const { B3Propagator } = require("@opentelemetry/core");
48-
49-
/* Set Global Propagator */
50-
api.propagation.setGlobalPropagator(new B3Propagator());
51-
```
52-
5340
#### Composite Propagator
5441

5542
Combines multiple propagators into a single propagator.

packages/opentelemetry-core/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
"access": "public"
5353
},
5454
"devDependencies": {
55+
"@opentelemetry/propagator-b3": "^0.12.0",
5556
"@types/mocha": "8.0.2",
5657
"@types/node": "14.0.27",
5758
"@types/semver": "7.3.2",

packages/opentelemetry-core/src/index.ts

-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ export * from './common/time';
2323
export * from './common/types';
2424
export * from './ExportResult';
2525
export * from './version';
26-
export * from './context/propagation/B3Propagator';
27-
export * from './context/propagation/B3SinglePropagator';
28-
export * from './context/propagation/B3MultiPropagator';
2926
export * from './context/propagation/composite';
3027
export * from './context/propagation/HttpTraceContext';
3128
export * from './context/propagation/types';

packages/opentelemetry-core/test/context/composite.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import {
3434
X_B3_SAMPLED,
3535
X_B3_SPAN_ID,
3636
X_B3_TRACE_ID,
37-
} from '../../src/context/propagation/B3MultiPropagator';
37+
} from '@opentelemetry/propagator-b3';
3838
import {
3939
TRACE_PARENT_HEADER,
4040
TRACE_STATE_HEADER,

packages/opentelemetry-plugin-fetch/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
"devDependencies": {
4747
"@babel/core": "7.11.1",
4848
"@opentelemetry/context-zone": "^0.12.0",
49+
"@opentelemetry/propagator-b3": "^0.12.0",
4950
"@opentelemetry/tracing": "^0.12.0",
5051
"@types/mocha": "8.0.2",
5152
"@types/node": "14.0.27",

packages/opentelemetry-plugin-fetch/test/fetch.test.ts

+22-15
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515
*/
1616
import * as api from '@opentelemetry/api';
1717
import * as core from '@opentelemetry/core';
18+
import {
19+
B3Propagator,
20+
B3InjectEncoding,
21+
X_B3_TRACE_ID,
22+
X_B3_SPAN_ID,
23+
X_B3_SAMPLED,
24+
} from '@opentelemetry/propagator-b3';
1825
import { ZoneContextManager } from '@opentelemetry/context-zone';
1926
import * as tracing from '@opentelemetry/tracing';
2027
import {
@@ -219,8 +226,8 @@ describe('fetch', () => {
219226

220227
before(() => {
221228
api.propagation.setGlobalPropagator(
222-
new core.B3Propagator({
223-
injectEncoding: core.B3InjectEncoding.MULTI_HEADER,
229+
new B3Propagator({
230+
injectEncoding: B3InjectEncoding.MULTI_HEADER,
224231
})
225232
);
226233
});
@@ -449,26 +456,26 @@ describe('fetch', () => {
449456
it('should set trace headers', () => {
450457
const span: api.Span = exportSpy.args[1][0][0];
451458
assert.strictEqual(
452-
lastResponse.headers[core.X_B3_TRACE_ID],
459+
lastResponse.headers[X_B3_TRACE_ID],
453460
span.context().traceId,
454-
`trace header '${core.X_B3_TRACE_ID}' not set`
461+
`trace header '${X_B3_TRACE_ID}' not set`
455462
);
456463
assert.strictEqual(
457-
lastResponse.headers[core.X_B3_SPAN_ID],
464+
lastResponse.headers[X_B3_SPAN_ID],
458465
span.context().spanId,
459-
`trace header '${core.X_B3_SPAN_ID}' not set`
466+
`trace header '${X_B3_SPAN_ID}' not set`
460467
);
461468
assert.strictEqual(
462-
lastResponse.headers[core.X_B3_SAMPLED],
469+
lastResponse.headers[X_B3_SAMPLED],
463470
String(span.context().traceFlags),
464-
`trace header '${core.X_B3_SAMPLED}' not set`
471+
`trace header '${X_B3_SAMPLED}' not set`
465472
);
466473
});
467474

468475
it('should set trace headers with a request object', () => {
469476
const r = new Request('url');
470477
window.fetch(r);
471-
assert.ok(typeof r.headers.get(core.X_B3_TRACE_ID) === 'string');
478+
assert.ok(typeof r.headers.get(X_B3_TRACE_ID) === 'string');
472479
});
473480

474481
it('should NOT clear the resources', () => {
@@ -486,19 +493,19 @@ describe('fetch', () => {
486493
});
487494
it('should NOT set trace headers', () => {
488495
assert.strictEqual(
489-
lastResponse.headers[core.X_B3_TRACE_ID],
496+
lastResponse.headers[X_B3_TRACE_ID],
490497
undefined,
491-
`trace header '${core.X_B3_TRACE_ID}' should not be set`
498+
`trace header '${X_B3_TRACE_ID}' should not be set`
492499
);
493500
assert.strictEqual(
494-
lastResponse.headers[core.X_B3_SPAN_ID],
501+
lastResponse.headers[X_B3_SPAN_ID],
495502
undefined,
496-
`trace header '${core.X_B3_SPAN_ID}' should not be set`
503+
`trace header '${X_B3_SPAN_ID}' should not be set`
497504
);
498505
assert.strictEqual(
499-
lastResponse.headers[core.X_B3_SAMPLED],
506+
lastResponse.headers[X_B3_SAMPLED],
500507
undefined,
501-
`trace header '${core.X_B3_SAMPLED}' should not be set`
508+
`trace header '${X_B3_SAMPLED}' should not be set`
502509
);
503510
});
504511
});

packages/opentelemetry-plugin-xml-http-request/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
"devDependencies": {
4747
"@babel/core": "7.11.1",
4848
"@opentelemetry/context-zone": "^0.12.0",
49+
"@opentelemetry/propagator-b3": "^0.12.0",
4950
"@opentelemetry/tracing": "^0.12.0",
5051
"@types/mocha": "8.0.2",
5152
"@types/node": "14.0.27",

packages/opentelemetry-plugin-xml-http-request/test/xhr.test.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,18 @@
1515
*/
1616
import * as api from '@opentelemetry/api';
1717
import {
18-
B3Propagator,
1918
LogLevel,
2019
otperformance as performance,
21-
X_B3_SAMPLED,
22-
X_B3_SPAN_ID,
23-
X_B3_TRACE_ID,
2420
isWrapped,
2521
NoopLogger,
26-
B3InjectEncoding,
2722
} from '@opentelemetry/core';
23+
import {
24+
B3Propagator,
25+
B3InjectEncoding,
26+
X_B3_SAMPLED,
27+
X_B3_SPAN_ID,
28+
X_B3_TRACE_ID,
29+
} from '@opentelemetry/propagator-b3';
2830
import { ZoneContextManager } from '@opentelemetry/context-zone';
2931
import * as tracing from '@opentelemetry/tracing';
3032
import { HttpAttribute } from '@opentelemetry/semantic-conventions';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
build
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module.exports = {
2+
"env": {
3+
"mocha": true,
4+
"commonjs": true,
5+
"node": true,
6+
"browser": true
7+
},
8+
...require('../../eslint.config.js')
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/bin
2+
/coverage
3+
/doc
4+
/test

0 commit comments

Comments
 (0)