-
Notifications
You must be signed in to change notification settings - Fork 7
feat(slots): add memory, disk I/O, and network charts #419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
samcm
wants to merge
13
commits into
master
Choose a base branch
from
feat/node-resource-charts
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
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.
Add three new resource charts alongside existing CPU utilization: - Memory Usage: RSS total/anon/file/swap per CL/EL process - Disk I/O: read/write bytes with CL/EL breakdown per node - Network I/O: traffic by port label (P2P, discovery, etc.) with beacon API/RPC ports hidden by default Resource type tabs allow switching between charts. All charts share the same annotation overlays, node selector, and sync group.
Replace tab-based switching with a 2-column grid showing CPU, Memory, Disk I/O, and Network charts simultaneously. Zero-pad all 250ms buckets so charts show continuous lines (no gaps in quiet periods). Add smooth curve interpolation (0.4) to all series for cleaner visualization.
Show CL Read, CL Write, EL Read, EL Write series (matching the single-node view pattern) instead of just Read/Write totals.
Shift bucket offset by BUCKET_SIZE (250ms) so each data point represents the end of its aggregation window rather than the start.
Gauge metrics always have a value, so empty leading buckets should use the first known value rather than 0. Prevents false spike from 0 at chart start. Delta metrics (disk, network) still zero-fill correctly.
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
Depends on: ethpandaops/xatu-cbt (feat/node-resource-models)