Skip to content

Commit 8233daa

Browse files
committed
fix: output timeToContent and timeToLoading
1 parent ba6d76e commit 8233daa

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

src/v3/recordingComputeUtils.ts

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ function getComputedRenderBeaconSpans<ScopeT extends ScopeBase>(
157157
{
158158
firstStart: number
159159
lastEnd: number | undefined
160-
lastLoadingEnd: number | undefined
160+
firstLoadingStart: number | undefined
161+
firstContentStart: number | undefined
161162
renderCount: number
162163
sumOfDurations: number
163164
}
@@ -177,31 +178,38 @@ function getComputedRenderBeaconSpans<ScopeT extends ScopeBase>(
177178
const start = startTime.now
178179
const contentEnd =
179180
renderedOutput === 'content' ? start + duration : undefined
180-
const loadingEnd =
181-
renderedOutput === 'loading' ? start + duration : undefined
182181

183182
const spanTimes = renderSpansByBeacon.get(name)
184183

185184
if (!spanTimes) {
186185
renderSpansByBeacon.set(name, {
187186
firstStart: start,
188187
lastEnd: contentEnd,
189-
lastLoadingEnd: loadingEnd,
190188
renderCount: 1,
191189
sumOfDurations: duration,
190+
firstLoadingStart: renderedOutput === 'loading' ? start : undefined,
191+
firstContentStart: renderedOutput === 'content' ? start : undefined,
192192
})
193193
} else {
194194
spanTimes.firstStart = Math.min(spanTimes.firstStart, start)
195195
spanTimes.lastEnd =
196196
contentEnd && spanTimes.lastEnd
197197
? Math.max(spanTimes.lastEnd, contentEnd)
198198
: contentEnd ?? spanTimes.lastEnd
199-
spanTimes.lastLoadingEnd =
200-
loadingEnd && spanTimes.lastLoadingEnd
201-
? Math.max(spanTimes.lastLoadingEnd, loadingEnd)
202-
: loadingEnd ?? spanTimes.lastLoadingEnd
203199
spanTimes.renderCount += 1
204200
spanTimes.sumOfDurations += duration
201+
if (
202+
spanTimes.firstContentStart === undefined &&
203+
renderedOutput === 'content'
204+
) {
205+
spanTimes.firstContentStart = start
206+
}
207+
if (
208+
spanTimes.firstLoadingStart === undefined &&
209+
renderedOutput === 'loading'
210+
) {
211+
spanTimes.firstLoadingStart = start
212+
}
205213
}
206214
}
207215

@@ -213,9 +221,12 @@ function getComputedRenderBeaconSpans<ScopeT extends ScopeBase>(
213221
if (!spanTimes.lastEnd) continue
214222
computedRenderBeaconSpans[beaconName] = {
215223
startOffset: spanTimes.firstStart - input.startTime.now,
216-
timeToRendered: spanTimes.lastEnd - spanTimes.firstStart,
217-
timeToData: spanTimes.lastLoadingEnd
218-
? spanTimes.lastLoadingEnd - spanTimes.firstStart
224+
timeToContent: spanTimes.lastEnd - spanTimes.firstStart,
225+
timeToLoading: spanTimes.firstLoadingStart
226+
? spanTimes.firstLoadingStart - spanTimes.firstStart
227+
: 0,
228+
timeToData: spanTimes.firstContentStart
229+
? spanTimes.firstContentStart - spanTimes.firstStart
219230
: 0,
220231
renderCount: spanTimes.renderCount,
221232
sumOfDurations: spanTimes.sumOfDurations,

src/v3/traceRecordingTypes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ export interface ComputedRenderSpan {
1919
// time relative to beginning of the trace
2020
startOffset: number
2121
timeToData: number
22-
timeToRendered: number
22+
timeToLoading: number
23+
timeToContent: number
2324
renderCount: number
2425
sumOfDurations: number
2526
}

0 commit comments

Comments
 (0)