Chore: add external download stat report

This commit is contained in:
SukkaW
2026-07-19 03:07:21 +08:00
parent d940616076
commit 27c8104fd9
6 changed files with 307 additions and 26 deletions

View File

@@ -3,6 +3,8 @@ import { noop } from 'foxts/noop';
import { basename, extname } from 'node:path';
import process from 'node:process';
import picocolors from 'picocolors';
import { mergeExternalDownloadStats, takeExternalDownloadStats } from '../lib/download-stats';
import type { ExternalDownloadStatsSnapshot } from '../lib/download-stats';
export const SPAN_STATUS_START = 0;
export const SPAN_STATUS_END = 1;
@@ -82,8 +84,9 @@ export function makeSpan(rawSpan: RawSpan): Span {
async traceWorkerChild<T>(name: string, factory: (rawSpan: RawSpan) => Promise<WorkerJobResult<T>>): Promise<T> {
const childSpan = traceChild(name);
const { result, traceResult, workerTimeOrigin } = await factory(childSpan.rawSpan);
const { result, traceResult, workerTimeOrigin, externalDownloadStats } = await factory(childSpan.rawSpan);
mergeWorkerTrace(childSpan, traceResult, workerTimeOrigin);
mergeExternalDownloadStats(externalDownloadStats);
childSpan.stop();
return result;
}
@@ -207,7 +210,8 @@ function mergeWorkerTrace(
export interface WorkerJobResult<T> {
result: T,
traceResult: TraceResult,
workerTimeOrigin: number
workerTimeOrigin: number,
externalDownloadStats: ExternalDownloadStatsSnapshot
}
/**
@@ -231,7 +235,8 @@ export async function workerJob<T>(
return {
result,
traceResult: span.traceResult,
workerTimeOrigin: performance.timeOrigin
workerTimeOrigin: performance.timeOrigin,
externalDownloadStats: takeExternalDownloadStats()
};
}