Skip to content

Commit 6963287

Browse files
committed
feat(browser): Send additional LCP timing info
1 parent 5b77377 commit 6963287

File tree

2 files changed

+14
-0
lines changed
  • dev-packages/browser-integration-tests/suites/tracing/metrics/web-vitals-lcp
  • packages/browser-utils/src/metrics

2 files changed

+14
-0
lines changed

dev-packages/browser-integration-tests/suites/tracing/metrics/web-vitals-lcp/test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,6 @@ sentryTest('should capture a LCP vital with element details.', async ({ browserN
2929
// the button as LCP.
3030
expect(eventData.contexts?.trace?.data?.['lcp.element'].startsWith('body >')).toBe(true);
3131
expect(eventData.contexts?.trace?.data?.['lcp.size']).toBeGreaterThan(0);
32+
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);
33+
expect(eventData.contexts?.trace?.data?.['lcp.loadTime']).toBeGreaterThan(0);
3234
});

packages/browser-utils/src/metrics/browserMetrics.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,18 @@ function _setWebVitalAttributes(span: Span): void {
635635
span.setAttribute('lcp.url', _lcpEntry.url.trim().slice(0, 200));
636636
}
637637

638+
if (_lcpEntry.renderTime) {
639+
// renderTime is the time portion of LCP that's related to rendering the LCP element.
640+
// it's 0 if the LCP element is loaded from a 3rd party origin that doesn't send the
641+
// `Timing-Allow-Origin` header.
642+
span.setAttribute('lcp.renderTime', _lcpEntry.renderTime);
643+
}
644+
645+
if (_lcpEntry.loadTime) {
646+
// loadTime is the time portion of LCP that's related to loading the LCP element.
647+
span.setAttribute('lcp.loadTime', _lcpEntry.loadTime);
648+
}
649+
638650
span.setAttribute('lcp.size', _lcpEntry.size);
639651
}
640652

0 commit comments

Comments
 (0)