Add deep dive view and 20x query performance improvement#181
Merged
Add deep dive view and 20x query performance improvement#181
Conversation
Deep Dive view: - New DeepDiveView component with time-series line charts - "Dive" checkboxes on compare view metric panels to select metrics - Elapsed time X-axis with multiple iterations overlaid - Breakout configuration snapshot from compare view at transition - Progressive rendering as per-iteration data arrives - Adjustable resolution (default 100 data points) - New POST /api/v1/iterations/period-info endpoint for period data - Sequential metric loading to avoid OpenSearch contention Query performance (cdm.js): - Rewrite getMetricDataFromIdsSets with time-range templates built once per set and reused across all labels via string replace - Flush to OpenSearch every 10 labels instead of accumulating all queries before sending (was 104K array entries causing O(n) growth) - Replace then-request with native fetch (eliminates child process spawning via sync-rpc for every HTTP request) - Short-circuit numMBytes and memUsage when debug is off (was calling JSON.stringify on 104K-element arrays even with debug disabled) Server improvements: - Per-request IDs in server logs for correlating concurrent requests - Detailed metric-data logging with curl-reproducible commands - OpenSearch request/response timing at the HTTP level - npm ci with stamp files for efficient dependency management - Per-iteration sample selection support in supplemental-metric endpoint Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Series legend table below each chart, grouped by iteration with breakout segment columns and color swatches - Live value tracking: values update in real-time as pointer moves across any chart, synchronized across all charts via shared elapsed time - Click-to-pin: click locks all charts to that time position with red reference line; click again to resume live tracking - Cross-chart sync: hovering/pinning on one chart updates the reference line and legend values on all other charts at the nearest elapsed time - Scrollable legend body for charts with many series Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
k-rister
approved these changes
Apr 22, 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.
Summary
getMetricDataFromIdsSetswith time-range templates and periodic flushing (100s → 5s for 130 labels at resolution=100)then-requestwith nativefetch: Eliminates child process spawning viasync-rpcfor every OpenSearch HTTP requestnumMBytes/memUsagewhen debug is off (was JSON.stringify on 104K-element arrays)npm ciwith stamp files for efficient dependency management on server restartTest plan
🤖 Generated with Claude Code