feat(dashboard): surface prefill/decode power-per-GPU + J/Input (measured energy)#414
Merged
Merged
Conversation
Wire the per-stage measured-power telemetry the runner already emits (prefill_avg_power_w, decode_avg_power_w, joules_per_input_token) as three new selectable Y-axis metrics, mirroring the existing measuredAvgPower trio: - Measured Prefill Power per GPU (W) - Measured Decode Power per GPU (W) - Measured J per Input Token (J/tok) Added across both chart configs (interactivity + e2e), Y_AXIS_METRICS, YAxisMetricKey, ChartDefinition, InferenceData, createChartDataPoint, the roofline machinery (type unions / roof-reset / markRooflinePoints), the lightweight trend-point builder, and the gated "Measured Energy" dropdown group (stays behind the existing feature gate). Purely additive — source fields already exist on AggDataEntry; no runner or DB change. Closes the gap where disagg per-stage power was ingested but not renderable. Validated against GB300 disagg data (run 26607091549). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collapse two else-if conditions that fit on one line; oxfmt --check flagged chart-utils.ts in CI (oxc job). No logic change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @arygupt's task in 2m 18s —— View job Review complete🟢 LGTM — no blocking issues found What I checked
Notes
|
adibarra
approved these changes
Jun 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds Prefill Power/GPU, Decode Power/GPU, and J / Input token as selectable metrics in the Measured-Energy group (behind the existing konami gate), alongside the avg-power / J-out / J-total metrics already on master.
Re-land of #411 (closed unmerged) — cherry-picked cleanly onto a fresh branch off master:
d63103cfeat(dashboard): add prefill/decode/J-input as measured-energy metrics3f2399cstyle(chart-utils): satisfy oxfmt format checkWhy
The per-stage measured power these metrics read is now live in prod. The multinode disagg rows — gb300
DeepSeek-V4-Proand mi355xMiniMax-M2.5— carryprefill_avg_power_w/decode_avg_power_w/joules_per_input_tokenas of today's ingest (run 26607091549). This PR is the display layer that surfaces them; without it the data is queryable but not selectable in the chart/table.Scope / safety
Test plan
🤖 Generated with Claude Code
Note
Low Risk
Pure frontend chart/config and type wiring with optional fields and existing konami gate; no API, ingest, or auth changes.
Overview
Surfaces per-stage measured energy in the inference dashboard: prefill/decode average power per GPU and measured J per input token, alongside the existing cluster-average power and J/out/J/total metrics.
Chart points now map runner fields
prefill_avg_power_w,decode_avg_power_w, andjoules_per_input_tokeninto optionalmeasuredPrefillAvgPower,measuredDecodeAvgPower, andmeasuredJPerInputToken(sametypeof === 'number'gating as other telemetry so legacy rows stay absent, not zero). Wiring is mirrored increateChartDataPoint, trend interpolation (useInterpolatedTrendData),inference-chart-config.json(interactivity + e2e), roofline unions, and the Measured Energy Y-axis group inChartControls(still feature-gated).Unit tests cover independent prefill/decode emission, legacy omission, and zero-W preservation.
Reviewed by Cursor Bugbot for commit 3f2399c. Bugbot is set up for automated code reviews on this repo. Configure here.