feat: add Node Resources tab to slot detail page#417
Open
Conversation
Add CPU utilization visualization to the slot detail page, powered by observoor eBPF agent data via the new fct_node_cpu_utilization model. Features: - Per-node CL/EL CPU utilization chart (0-12s slot window) - Aggregate view (mean/min/max toggle) and single-node detailed view - Normalized system utilization (sys mean/min/max) and hottest single core - EIP-7870 reference nodes filter toggle - Block arrival time overlay (markLines) - URL-backed state for node selection, metric, and filter
Replace 8 separate line series with shaded min-max bands and clean mean lines. Legend drops from 8 items to 2-4. "sys" terminology replaced with "% of all cores". Slot number added to subtitle. Peak core series hidden by default (toggle-able in legend).
Replace broken stacking bands with clean gradient area fills. Add annotation overlay system with toggleable markLines for block arrival, head update, execution duration, and data column range. Single-node view shows exact per-node events; aggregate view shows p50 values. Execution timing data fetched from intEngineNewPayload API.
…ments - Add markArea support to MultiLineChart (colored regions on chart) - Add slot phase boundary markLines (Block/Attestations/Aggregations) - Move metric dropdown into chart PopoutCard header - Change aggregate annotation ranges from p25-p75 to min-p95 - Fix double-toggle on annotation/7870 checkboxes (pointer-events-none) - Fix scroll-to-top on control changes (resetScroll: false) - Extract shared CL/EL client sets to utils/ethereum.ts - Update subtitle to link to Observoor repo
- Update IntEngineNewPayloadFastest → IntEngineNewPayloadFastestExecutionByNodeClass after table rename (pre-existing master issue) - Fix navigate type narrowing by using search spread instead of prev callback - Replace any casts with EChartsTooltipParam interface in tooltip formatter - Move PHASE_BOUNDARY_COLORS to module scope to fix exhaustive-deps warning - Regenerate API types from local cbt-api (removes stale max_single_core_pct)
Regenerated API types and updated component/hook imports to match the renamed xatu-cbt table.
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.
Summary
markAreasupport to sharedMultiLineChartcomponentCONSENSUS_CLIENTS,EXECUTION_CLIENTS_SET, andgetClientLayer()toutils/ethereum.tsBackend counterpart: ethpandaops/xatu-cbt#218