mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-12 06:06:37 +03:00
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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user