From 3f07895d928f03b2e2c00a43416f26b8a74ea2c7 Mon Sep 17 00:00:00 2001 From: Alberto Leal Date: Tue, 9 Feb 2021 11:21:57 -0500 Subject: [PATCH 1/4] fix: Provide better descriptions for the performance navigation timing spans --- packages/tracing/src/browser/metrics.ts | 35 ++++++++++++++----------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/packages/tracing/src/browser/metrics.ts b/packages/tracing/src/browser/metrics.ts index d1ca770e0ad1..4d87a4b9f604 100644 --- a/packages/tracing/src/browser/metrics.ts +++ b/packages/tracing/src/browser/metrics.ts @@ -282,14 +282,14 @@ export class MetricsInstrumentation { /** Instrument navigation entries */ function addNavigationSpans(transaction: Transaction, entry: Record, timeOrigin: number): void { - addPerformanceNavigationTiming(transaction, entry, 'unloadEvent', timeOrigin); - addPerformanceNavigationTiming(transaction, entry, 'redirect', timeOrigin); - addPerformanceNavigationTiming(transaction, entry, 'domContentLoadedEvent', timeOrigin); - addPerformanceNavigationTiming(transaction, entry, 'loadEvent', timeOrigin); - addPerformanceNavigationTiming(transaction, entry, 'connect', timeOrigin); - addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'connectEnd'); - addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'domainLookupStart'); - addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin); + addPerformanceNavigationTiming({ transaction, entry, event: 'unloadEvent', timeOrigin }); + addPerformanceNavigationTiming({ transaction, entry, event: 'redirect', timeOrigin }); + addPerformanceNavigationTiming({ transaction, entry, event: 'domContentLoadedEvent', timeOrigin }); + addPerformanceNavigationTiming({ transaction, entry, event: 'loadEvent', timeOrigin }); + addPerformanceNavigationTiming({ transaction, entry, event: 'connect', timeOrigin }); + addPerformanceNavigationTiming({ transaction, entry, event: 'secureConnection', timeOrigin, eventEnd: 'connectEnd', description: 'secureConnection (TLS)' }); + addPerformanceNavigationTiming({ transaction, entry, event: 'fetch', timeOrigin, eventEnd: 'domainLookupStart', description: 'cache' }); + addPerformanceNavigationTiming({ transaction, entry, event: 'domainLookup', timeOrigin, description: 'DNS' }); addRequest(transaction, entry, timeOrigin); } @@ -362,13 +362,16 @@ export function addResourceSpans( } /** Create performance navigation related spans */ -function addPerformanceNavigationTiming( - transaction: Transaction, - entry: Record, - event: string, - timeOrigin: number, - eventEnd?: string, -): void { +function addPerformanceNavigationTiming(props: { + transaction: Transaction; + entry: Record; + event: string; + timeOrigin: number; + eventEnd?: string; + description?: string; +}): void { + const { transaction, entry, event, timeOrigin, eventEnd, description } = props; + const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined); const start = entry[`${event}Start`] as number | undefined; if (!start || !end) { @@ -376,7 +379,7 @@ function addPerformanceNavigationTiming( } _startChild(transaction, { op: 'browser', - description: event, + description: description ?? event, startTimestamp: timeOrigin + msToSec(start), endTimestamp: timeOrigin + msToSec(end), }); From 1732fe522387ebd708f55cf3d46cfb551e820cf9 Mon Sep 17 00:00:00 2001 From: Alberto Leal Date: Wed, 10 Feb 2021 17:25:46 -0500 Subject: [PATCH 2/4] revert domainLookup span description --- packages/tracing/src/browser/metrics.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tracing/src/browser/metrics.ts b/packages/tracing/src/browser/metrics.ts index 4d87a4b9f604..90688d5452fb 100644 --- a/packages/tracing/src/browser/metrics.ts +++ b/packages/tracing/src/browser/metrics.ts @@ -289,7 +289,7 @@ function addNavigationSpans(transaction: Transaction, entry: Record addPerformanceNavigationTiming({ transaction, entry, event: 'connect', timeOrigin }); addPerformanceNavigationTiming({ transaction, entry, event: 'secureConnection', timeOrigin, eventEnd: 'connectEnd', description: 'secureConnection (TLS)' }); addPerformanceNavigationTiming({ transaction, entry, event: 'fetch', timeOrigin, eventEnd: 'domainLookupStart', description: 'cache' }); - addPerformanceNavigationTiming({ transaction, entry, event: 'domainLookup', timeOrigin, description: 'DNS' }); + addPerformanceNavigationTiming({ transaction, entry, event: 'domainLookup', timeOrigin }); addRequest(transaction, entry, timeOrigin); } From 83ab4e710d96272afa4545a46f079f264246c760 Mon Sep 17 00:00:00 2001 From: Alberto Leal Date: Thu, 18 Feb 2021 15:31:47 -0500 Subject: [PATCH 3/4] feedback --- packages/tracing/src/browser/metrics.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tracing/src/browser/metrics.ts b/packages/tracing/src/browser/metrics.ts index 90688d5452fb..cf72879f0ea3 100644 --- a/packages/tracing/src/browser/metrics.ts +++ b/packages/tracing/src/browser/metrics.ts @@ -287,9 +287,9 @@ function addNavigationSpans(transaction: Transaction, entry: Record addPerformanceNavigationTiming({ transaction, entry, event: 'domContentLoadedEvent', timeOrigin }); addPerformanceNavigationTiming({ transaction, entry, event: 'loadEvent', timeOrigin }); addPerformanceNavigationTiming({ transaction, entry, event: 'connect', timeOrigin }); - addPerformanceNavigationTiming({ transaction, entry, event: 'secureConnection', timeOrigin, eventEnd: 'connectEnd', description: 'secureConnection (TLS)' }); + addPerformanceNavigationTiming({ transaction, entry, event: 'secureConnection', timeOrigin, eventEnd: 'connectEnd', description: 'TLS/SSL' }); addPerformanceNavigationTiming({ transaction, entry, event: 'fetch', timeOrigin, eventEnd: 'domainLookupStart', description: 'cache' }); - addPerformanceNavigationTiming({ transaction, entry, event: 'domainLookup', timeOrigin }); + addPerformanceNavigationTiming({ transaction, entry, event: 'domainLookup', timeOrigin, description: 'DNS' }); addRequest(transaction, entry, timeOrigin); } From e67b44a9114c98a5af8585695d9b82a7fb5e2815 Mon Sep 17 00:00:00 2001 From: Alberto Leal Date: Thu, 18 Feb 2021 15:32:45 -0500 Subject: [PATCH 4/4] prettier --- packages/tracing/src/browser/metrics.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/tracing/src/browser/metrics.ts b/packages/tracing/src/browser/metrics.ts index cf72879f0ea3..e0ef8641f207 100644 --- a/packages/tracing/src/browser/metrics.ts +++ b/packages/tracing/src/browser/metrics.ts @@ -287,8 +287,22 @@ function addNavigationSpans(transaction: Transaction, entry: Record addPerformanceNavigationTiming({ transaction, entry, event: 'domContentLoadedEvent', timeOrigin }); addPerformanceNavigationTiming({ transaction, entry, event: 'loadEvent', timeOrigin }); addPerformanceNavigationTiming({ transaction, entry, event: 'connect', timeOrigin }); - addPerformanceNavigationTiming({ transaction, entry, event: 'secureConnection', timeOrigin, eventEnd: 'connectEnd', description: 'TLS/SSL' }); - addPerformanceNavigationTiming({ transaction, entry, event: 'fetch', timeOrigin, eventEnd: 'domainLookupStart', description: 'cache' }); + addPerformanceNavigationTiming({ + transaction, + entry, + event: 'secureConnection', + timeOrigin, + eventEnd: 'connectEnd', + description: 'TLS/SSL', + }); + addPerformanceNavigationTiming({ + transaction, + entry, + event: 'fetch', + timeOrigin, + eventEnd: 'domainLookupStart', + description: 'cache', + }); addPerformanceNavigationTiming({ transaction, entry, event: 'domainLookup', timeOrigin, description: 'DNS' }); addRequest(transaction, entry, timeOrigin); }