Measure production Live worker phases

Trace worker pickup and derive generation, validation, and publication latency from the durable Live session journal.\n\nAI-assisted: OpenAI Codex.
This commit is contained in:
Paul Bakaus
2026-07-12 20:52:34 -07:00
parent aba1067cdf
commit 10183bd91c
3 changed files with 71 additions and 2 deletions
+23
View File
@@ -18,6 +18,11 @@ const METRIC_KEYS = [
'goToAllVariantsMs',
'deliveryGapMs',
'impeccableOverheadMs',
'workerPickupToSourceReadyMs',
'workerFirstGenerationToReviewableMs',
'workerFirstValidationToReviewableMs',
'workerRemainingGenerationToReadyMs',
'workerRemainingValidationToReadyMs',
];
export function createTraceRecorder(now = () => performance.now()) {
@@ -137,6 +142,24 @@ export function buildInteractionRun(events, { iteration, scenario, goStartedAt,
};
}
export function deriveJournalGenerationMetrics(snapshot = {}) {
const timings = snapshot.generationTimings || {};
const at = (phase) => Number(timings[phase]?.at);
const delta = (start, end) => (
Number.isFinite(at(start)) && Number.isFinite(at(end))
? roundMs(Math.max(0, at(end) - at(start)))
: null
);
return {
workerPickupToSourceReadyMs: delta('picked_up', 'source_ready'),
workerFirstGenerationToReviewableMs: delta('first_variant_generating', 'first_reviewable'),
workerFirstValidationToReviewableMs: delta('first_variant_validating', 'first_reviewable'),
workerRemainingGenerationToReadyMs: delta('remaining_variants_generating', 'all_variants_ready'),
workerRemainingValidationToReadyMs: delta('remaining_variants_validating', 'all_variants_ready'),
journalGenerationTimings: timings,
};
}
export function summarizeRuns(runs) {
const metrics = {};
for (const key of METRIC_KEYS) {