Skip to content

Commit 8436efc

Browse files
Introduced DatadogTracingContext
1 parent 17229bf commit 8436efc

File tree

8 files changed

+295
-211
lines changed

8 files changed

+295
-211
lines changed

packages/core/jest/mock.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,7 @@ module.exports = {
117117
),
118118
setTimeProvider: jest.fn().mockImplementation(() => {}),
119119
timeProvider: jest.fn().mockReturnValue(undefined),
120-
getTracingHeaders: jest.fn().mockReturnValue([]),
121-
injectTracingHeaders: jest.fn().mockImplementation(() => {}),
122-
buildTracingHeadersInjector: jest.fn().mockReturnValue({
123-
inject: (url, injectHeaders) => {}
124-
}),
120+
getTracingContext: jest.fn().mockReturnValue(undefined),
125121
generateTraceId: jest.fn().mockReturnValue('mock-trace-id'),
126122
generateSpanId: jest.fn().mockReturnValue('mock-span-id')
127123
},

packages/core/src/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import {
4040
TracingIdFormat
4141
} from './rum/instrumentation/resourceTracking/distributedTracing/TracingIdentifier';
4242
import { DatadogTracingIdentifier } from './rum/instrumentation/resourceTracking/distributedTracing/DatadogTracingIdentifier';
43+
import { DatadogTracingContext } from './rum/instrumentation/resourceTracking/distributedTracing/DatadogTracingContext';
4344

4445
/* eslint-enable arca/import-ordering */
4546

@@ -73,7 +74,8 @@ export {
7374
DATADOG_GRAPH_QL_VARIABLES_HEADER,
7475
TracingIdType,
7576
TracingIdFormat,
76-
DatadogTracingIdentifier
77+
DatadogTracingIdentifier,
78+
DatadogTracingContext
7779
};
7880

7981
export type { Timestamp, TracingHeadersInjector };

packages/core/src/rum/DdRum.ts

Lines changed: 6 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,16 @@ import { generateErrorEventMapper } from './eventMappers/errorEventMapper';
2323
import type { ErrorEventMapper } from './eventMappers/errorEventMapper';
2424
import { generateResourceEventMapper } from './eventMappers/resourceEventMapper';
2525
import type { ResourceEventMapper } from './eventMappers/resourceEventMapper';
26+
import type { DatadogTracingContext } from './instrumentation/resourceTracking/distributedTracing/DatadogTracingContext';
2627
import { DatadogTracingIdentifier } from './instrumentation/resourceTracking/distributedTracing/DatadogTracingIdentifier';
2728
import { TracingIdentifier } from './instrumentation/resourceTracking/distributedTracing/TracingIdentifier';
28-
import { getTracingHeaders } from './instrumentation/resourceTracking/distributedTracing/distributedTracingHeaders';
29+
import { getTracingContext } from './instrumentation/resourceTracking/distributedTracing/distributedTracingHeaders';
2930
import type {
3031
ErrorSource,
3132
DdRumType,
3233
RumActionType,
3334
ResourceKind,
34-
FirstPartyHost,
35-
TracingHeadersInjector
35+
FirstPartyHost
3636
} from './types';
3737

3838
const generateEmptyPromise = () => new Promise<void>(resolve => resolve());
@@ -300,48 +300,14 @@ class DdRumWrapper implements DdRumType {
300300
return this.nativeRum.getCurrentSessionId();
301301
}
302302

303-
getTracingHeaders = (
303+
getTracingContext = (
304304
url: string,
305305
tracingSamplingRate: number,
306306
firstPartyHosts: FirstPartyHost[]
307-
): { header: string; value: string }[] => {
308-
return getTracingHeaders(url, tracingSamplingRate, firstPartyHosts);
307+
): DatadogTracingContext => {
308+
return getTracingContext(url, tracingSamplingRate, firstPartyHosts);
309309
};
310310

311-
injectTracingHeaders(
312-
url: string,
313-
tracingSamplingRate: number,
314-
firstPartyHosts: FirstPartyHost[],
315-
injectHeaders: (header: string, value: string) => void
316-
) {
317-
getTracingHeaders(url, tracingSamplingRate, firstPartyHosts).forEach(
318-
({ header, value }) => {
319-
injectHeaders(header, value);
320-
}
321-
);
322-
}
323-
324-
buildTracingHeadersInjector(
325-
tracingSamplingRate: number,
326-
firstPartyHosts: FirstPartyHost[]
327-
): TracingHeadersInjector {
328-
const _firstPartyHosts = [...firstPartyHosts];
329-
return {
330-
inject: (
331-
url: string,
332-
injectHeaders: (header: string, value: string) => void
333-
) => {
334-
getTracingHeaders(
335-
url,
336-
tracingSamplingRate,
337-
_firstPartyHosts
338-
).forEach(({ header, value }) => {
339-
injectHeaders(header, value);
340-
});
341-
}
342-
};
343-
}
344-
345311
generateTraceId(): DatadogTracingIdentifier {
346312
return new DatadogTracingIdentifier(TracingIdentifier.createTraceId());
347313
}

0 commit comments

Comments
 (0)