@@ -10,7 +10,7 @@ import { onFID } from '../web-vitals/getFID';
1010import { onLCP } from '../web-vitals/getLCP' ;
1111import { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher' ;
1212import { observe } from '../web-vitals/lib/observe' ;
13- import type { NavigatorDeviceMemory , NavigatorNetworkInformation } from '../web-vitals/types' ;
13+ import type { NavigatorDeviceMemory , NavigatorNetworkInformation , PerformanceEventTiming } from '../web-vitals/types' ;
1414import { _startChild , isMeasurementValue } from './utils' ;
1515
1616/**
@@ -31,6 +31,7 @@ let _performanceCursor: number = 0;
3131let _measurements : Measurements = { } ;
3232let _lcpEntry : LargestContentfulPaint | undefined ;
3333let _clsEntry : LayoutShift | undefined ;
34+ let _fidEntry : PerformanceEventTiming | undefined ;
3435
3536/**
3637 * Start tracking web vitals
@@ -160,6 +161,7 @@ function _trackFID(): void {
160161 __DEBUG_BUILD__ && logger . log ( '[Measurements] Adding FID' ) ;
161162 _measurements [ 'fid' ] = { value : metric . value , unit : 'millisecond' } ;
162163 _measurements [ 'mark.fid' ] = { value : timeOrigin + startTime , unit : 'second' } ;
164+ _fidEntry = entry ;
163165 } ) ;
164166}
165167
@@ -500,4 +502,10 @@ function _tagMetricInfo(transaction: Transaction): void {
500502 transaction . setTag ( `cls.source.${ index + 1 } ` , htmlTreeAsString ( source . node ) ) ,
501503 ) ;
502504 }
505+
506+
507+ // Capture FID properties
508+ if ( _fidEntry && _fidEntry . target ) {
509+ transaction . setTag ( 'fid.element' , htmlTreeAsString ( _fidEntry . target ) ) ;
510+ }
503511}
0 commit comments