Skip to content

feat(cli): send the frame-cache health counters to render_complete - #3388

Open
vanceingalls wants to merge 1 commit into
mainfrom
feat/extract-cache-health-telemetry
Open

feat(cli): send the frame-cache health counters to render_complete#3388
vanceingalls wants to merge 1 commit into
mainfrom
feat/extract-cache-health-telemetry

Conversation

@vanceingalls

Copy link
Copy Markdown
Collaborator

Follow-up flagged in the #1915 review: ExtractionPhaseBreakdown collects four frame-cache counters that extractPayload never forwarded, so they reached RenderPerfSummary and stopped there.

  • extract_cache_publish_failures — the one to alert on. A failed atomic publish still lets the render succeed from the partial dir, so nothing surfaces, but every later render re-extracts. Its docstring calls it "the first signal that warm renders are silently going cold"; until now that signal had no consumer.
  • extract_cache_gc_evictions, extract_cache_gc_bytes_freed, extract_cache_aged_partials_cleared — the denominator: evicted on purpose, or failed to publish.

Both writers map them (render.ts for CLI renders, studioRenderTelemetry.ts for studio ones). The mapping test asserts all four with distinct non-zero values, so a crossed pair cannot pass — the fixture previously had them all at 0.

🤖 Generated with Claude Code

`ExtractionPhaseBreakdown` has collected `cachePublishFailures`,
`cacheGcEvictions`, `cacheGcBytesFreed` and `cacheAgedPartialsCleared` for a
while, and `extractPayload` dropped all four on the floor — they reached the
perf summary and stopped there.

`cachePublishFailures` is the one worth a dashboard: the render still succeeds
from the partial dir, so nothing surfaces to the user, but every later render
re-extracts. Its own docstring calls it "the first signal that warm renders are
silently going cold", and until now that signal had no consumer. The GC
counters give it a denominator — evicted on purpose, or failed to publish.

Both writers (`render.ts` for the CLI, `studioRenderTelemetry.ts` for studio
renders) map them, and the mapping test asserts all four with distinct non-zero
values so a crossed pair cannot pass.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant