Skip to content

Commit ce40962

Browse files
authored
fix: Provide better descriptions for the performance navigation timing spans (#3245)
1 parent 065c239 commit ce40962

File tree

1 file changed

+33
-16
lines changed

1 file changed

+33
-16
lines changed

packages/tracing/src/browser/metrics.ts

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -282,14 +282,28 @@ export class MetricsInstrumentation {
282282

283283
/** Instrument navigation entries */
284284
function addNavigationSpans(transaction: Transaction, entry: Record<string, any>, timeOrigin: number): void {
285-
addPerformanceNavigationTiming(transaction, entry, 'unloadEvent', timeOrigin);
286-
addPerformanceNavigationTiming(transaction, entry, 'redirect', timeOrigin);
287-
addPerformanceNavigationTiming(transaction, entry, 'domContentLoadedEvent', timeOrigin);
288-
addPerformanceNavigationTiming(transaction, entry, 'loadEvent', timeOrigin);
289-
addPerformanceNavigationTiming(transaction, entry, 'connect', timeOrigin);
290-
addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'connectEnd');
291-
addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'domainLookupStart');
292-
addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin);
285+
addPerformanceNavigationTiming({ transaction, entry, event: 'unloadEvent', timeOrigin });
286+
addPerformanceNavigationTiming({ transaction, entry, event: 'redirect', timeOrigin });
287+
addPerformanceNavigationTiming({ transaction, entry, event: 'domContentLoadedEvent', timeOrigin });
288+
addPerformanceNavigationTiming({ transaction, entry, event: 'loadEvent', timeOrigin });
289+
addPerformanceNavigationTiming({ transaction, entry, event: 'connect', timeOrigin });
290+
addPerformanceNavigationTiming({
291+
transaction,
292+
entry,
293+
event: 'secureConnection',
294+
timeOrigin,
295+
eventEnd: 'connectEnd',
296+
description: 'TLS/SSL',
297+
});
298+
addPerformanceNavigationTiming({
299+
transaction,
300+
entry,
301+
event: 'fetch',
302+
timeOrigin,
303+
eventEnd: 'domainLookupStart',
304+
description: 'cache',
305+
});
306+
addPerformanceNavigationTiming({ transaction, entry, event: 'domainLookup', timeOrigin, description: 'DNS' });
293307
addRequest(transaction, entry, timeOrigin);
294308
}
295309

@@ -362,21 +376,24 @@ export function addResourceSpans(
362376
}
363377

364378
/** Create performance navigation related spans */
365-
function addPerformanceNavigationTiming(
366-
transaction: Transaction,
367-
entry: Record<string, any>,
368-
event: string,
369-
timeOrigin: number,
370-
eventEnd?: string,
371-
): void {
379+
function addPerformanceNavigationTiming(props: {
380+
transaction: Transaction;
381+
entry: Record<string, any>;
382+
event: string;
383+
timeOrigin: number;
384+
eventEnd?: string;
385+
description?: string;
386+
}): void {
387+
const { transaction, entry, event, timeOrigin, eventEnd, description } = props;
388+
372389
const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined);
373390
const start = entry[`${event}Start`] as number | undefined;
374391
if (!start || !end) {
375392
return;
376393
}
377394
_startChild(transaction, {
378395
op: 'browser',
379-
description: event,
396+
description: description ?? event,
380397
startTimestamp: timeOrigin + msToSec(start),
381398
endTimestamp: timeOrigin + msToSec(end),
382399
});

0 commit comments

Comments
 (0)