Skip to content

Commit e6cc124

Browse files
authored
feat(tracing): Add more network timings to http calls (#8540)
1 parent 0ca7389 commit e6cc124

File tree

2 files changed

+21
-3
lines changed
  • packages
    • browser-integration-tests/suites/tracing/browsertracing/http-timings
    • tracing-internal/src/browser

2 files changed

+21
-3
lines changed

packages/browser-integration-tests/suites/tracing/browsertracing/http-timings/test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,16 @@ sentryTest('should create fetch spans with http timing', async ({ browserName, g
4040
timestamp: expect.any(Number),
4141
trace_id: tracingEvent.contexts?.trace?.trace_id,
4242
data: expect.objectContaining({
43+
'http.request.redirect_start': expect.any(Number),
44+
'http.request.fetch_start': expect.any(Number),
45+
'http.request.domain_lookup_start': expect.any(Number),
46+
'http.request.domain_lookup_end': expect.any(Number),
4347
'http.request.connect_start': expect.any(Number),
48+
'http.request.secure_connection_start': expect.any(Number),
49+
'http.request.connection_end': expect.any(Number),
4450
'http.request.request_start': expect.any(Number),
4551
'http.request.response_start': expect.any(Number),
52+
'http.request.response_end': expect.any(Number),
4653
'network.protocol.version': expect.any(String),
4754
}),
4855
}),

packages/tracing-internal/src/browser/request.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,10 @@ function addHTTPTimings(span: Span): void {
182182
});
183183
}
184184

185+
function getAbsoluteTime(time: number): number {
186+
return ((browserPerformanceTimeOrigin || performance.timeOrigin) + time) / 1000;
187+
}
188+
185189
function resourceTimingEntryToSpanData(resourceTiming: PerformanceResourceTiming): [string, string | number][] {
186190
const version = resourceTiming.nextHopProtocol.split('/')[1] || 'none';
187191

@@ -195,9 +199,16 @@ function resourceTimingEntryToSpanData(resourceTiming: PerformanceResourceTiming
195199
}
196200
return [
197201
...timingSpanData,
198-
['http.request.connect_start', (browserPerformanceTimeOrigin + resourceTiming.connectStart) / 1000],
199-
['http.request.request_start', (browserPerformanceTimeOrigin + resourceTiming.requestStart) / 1000],
200-
['http.request.response_start', (browserPerformanceTimeOrigin + resourceTiming.responseStart) / 1000],
202+
['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)],
203+
['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)],
204+
['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)],
205+
['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)],
206+
['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)],
207+
['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)],
208+
['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)],
209+
['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)],
210+
['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)],
211+
['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)],
201212
];
202213
}
203214

0 commit comments

Comments
 (0)