Skip to content
This repository was archived by the owner on Oct 3, 2023. It is now read-only.

Commit 7dbec3d

Browse files
Default trace/span IDs to random in getInitialLoadRootSpan (with correct base now) (#21)
1 parent 4959430 commit 7dbec3d

9 files changed

Lines changed: 19 additions & 7 deletions

File tree

File renamed without changes.

packages/opencensus-web-core/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export {Annotation, Attributes, Config, Exporter, Link, MessageEvent, Propagatio
2727

2828
export * from './common/time-util';
2929
export * from './common/url-util';
30+
export * from './common/id-util';
3031

3132
// Export global tracing instance.
3233
import {Tracing} from './trace/model/tracing';

packages/opencensus-web-core/src/trace/model/root-span.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
import * as coreTypes from '@opencensus/core';
18-
import {randomTraceId} from '../../internal/util';
18+
import {randomTraceId} from '../../common/id-util';
1919
import {SpanKind} from './enums';
2020
import {Span} from './span';
2121

packages/opencensus-web-core/src/trace/model/span.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
import * as coreTypes from '@opencensus/core';
1818

19+
import {randomSpanId} from '../../common/id-util';
1920
import {getDateForPerfTime} from '../../common/time-util';
20-
import {randomSpanId} from '../../internal/util';
2121

2222
import {CanonicalCode, LinkType, MessageEventType, SpanKind} from './enums';
2323

packages/opencensus-web-core/src/trace/propagation/no_headers_propagation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
import * as coreTypes from '@opencensus/core';
18-
import {randomSpanId, randomTraceId} from '../../internal/util';
18+
import {randomSpanId, randomTraceId} from '../../common/id-util';
1919

2020
/** Propagation implementation that does not set or get headers. */
2121
export class NoHeadersPropagation implements coreTypes.Propagation {

packages/opencensus-web-core/test/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
// This file is an entry point for the webpack test configuration, so this
1818
// should import from all test files.
1919

20-
import './test-internal-util';
20+
import './test-id-util';
2121
import './test-root-span';
2222
import './test-span';
2323
import './test-time-util';

packages/opencensus-web-core/test/test-internal-util.ts renamed to packages/opencensus-web-core/test/test-id-util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {randomSpanId, randomTraceId} from '../src/internal/util';
17+
import {randomSpanId, randomTraceId} from '../src/common/id-util';
1818

1919
const NUM_VERIFY_TRIALS = 10;
2020

packages/opencensus-web-instrumentation-perf/src/initial-load-root-span.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {Annotation, ATTRIBUTE_HTTP_URL, ATTRIBUTE_HTTP_USER_AGENT, ATTRIBUTE_LONG_TASK_ATTRIBUTION, ATTRIBUTE_NAV_TYPE, parseUrl, RootSpan, Span, SpanKind, Tracer} from '@opencensus/web-core';
17+
import {Annotation, ATTRIBUTE_HTTP_URL, ATTRIBUTE_HTTP_USER_AGENT, ATTRIBUTE_LONG_TASK_ATTRIBUTION, ATTRIBUTE_NAV_TYPE, parseUrl, randomSpanId, randomTraceId, RootSpan, Span, SpanKind, Tracer} from '@opencensus/web-core';
18+
1819
import {GroupedPerfEntries} from './perf-grouper';
1920
import {PerformanceLongTaskTiming, PerformanceNavigationTimingExtended} from './perf-types';
2021
import {getResourceSpan} from './resource-span';
@@ -53,7 +54,8 @@ const NAVIGATION_TIMING_EVENTS = [
5354
*/
5455
export function getInitialLoadRootSpan(
5556
tracer: Tracer, perfEntries: GroupedPerfEntries,
56-
navigationFetchSpanId: string, traceId: string): RootSpan {
57+
navigationFetchSpanId: string = randomSpanId(),
58+
traceId: string = randomTraceId()): RootSpan {
5759
const navTiming = perfEntries.navigationTiming;
5860
const navigationUrl = navTiming ? navTiming.name : location.href;
5961
const parsedNavigationUrl = parseUrl(navigationUrl);

packages/opencensus-web-instrumentation-perf/test/test-initial-load-root-span.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {getInitialLoadRootSpan} from '../src/initial-load-root-span';
1919
import {GroupedPerfEntries} from '../src/perf-grouper';
2020

2121
const SPAN_ID_REGEX = /[0-9a-f]{16}/;
22+
const TRACE_ID_REGEX = /[0-9a-f]{32}/;
2223
const USER_AGENT = 'Mozilla/5.0 TEST';
2324

2425
const PERF_ENTRIES: GroupedPerfEntries = {
@@ -299,4 +300,12 @@ describe('getInitialLoadRootSpan', () => {
299300
});
300301
expect(longTaskSpan.annotations).toEqual([]);
301302
});
303+
304+
it('defaults trace and span ID to random values if not specified', () => {
305+
const root = getInitialLoadRootSpan(new Tracer(), PERF_ENTRIES);
306+
307+
expect(root.traceId).toMatch(TRACE_ID_REGEX);
308+
const navigationFetchSpan = root.spans[0];
309+
expect(navigationFetchSpan.id).toMatch(SPAN_ID_REGEX);
310+
});
302311
});

0 commit comments

Comments
 (0)