Issue #281 Gaps 1+2: Memory grant charts + File I/O throughput/latency/queued overlay#285
Merged
Merged
Conversation
…ued I/O overlay
**New features (both apps):**
- Add "File I/O Throughput" sub-tab with read/write MB/s charts per file
- Restructure "File I/O" tab into "File I/O Latency" and "File I/O Throughput" sub-tabs
- Add queued I/O overlay (dashed lines) to latency charts showing OS queue wait time
**Lite-specific:**
- Switch File I/O latency charts from database-level to file-level (top 10 by activity)
- Add io_stall_queued_read/write columns to DuckDB schema (v15 migration)
- Update collector to collect queued stall data from sys.dm_io_virtual_file_stats
- Use DuckDB LAG() window function for throughput MB/s interval calculation
**Dashboard-specific:**
- Fix double-brace interpolation bug in GetFileIoThroughputTimeSeriesAsync
({{dbFilter}}/{{dateFilter}} produced literal text instead of interpolating variables)
**CI fix:**
- Update 50_configuration_issues_analyzer.sql and 97_test_procedures.sql to remove
references to warning columns dropped from collect.memory_grant_stats in Gap 1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove collect.session_wait_stats entirely — table, collector procedure, reporting view, schedule entries, schema metadata, CI checks, and all references. This collector had 12 columns and zero UI in either app. Adds cleanup DROPs to 02_create_tables.sql so existing installations get cleaned up on upgrade (drops view, procedure, table, schedule row). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5 tasks
pull Bot
pushed a commit
to ehtick/PerformanceMonitor
that referenced
this pull request
Apr 29, 2026
…manceStudio Ports PerformanceStudio PRs erikdarlingdata#285 and erikdarlingdata#288 (net result; the temporary R/D/G overlay from erikdarlingdata#285 was replaced by real icons in erikdarlingdata#288). PlanIconMapper.GetIconName now takes optional storageType and logicalOp: - Columnstore scans (Clustered/Index Scan with Storage="ColumnStore" on the Object element) route to the columnstore_index_* icons. Covers both CCI and NCCI for scan/delete/insert/update/merge. - The three Parallelism subtypes (Repartition/Distribute/Gather Streams) route to their own icons instead of all sharing parallelism.png. ShowPlanParser: the IconName assignment moves from immediately after PhysicalOp parsing to after StorageType and LogicalOp are populated, so the new routing has the inputs it needs. Three new icons (MIT-licensed contribution from @rferraton via PS erikdarlingdata#288) added to both Dashboard and Lite Resources/PlanIcons. The existing Resource glob in each csproj picks them up automatically. Last upstream sync from PerformanceStudio was 2026-04-16 (erikdarlingdata#856), scoped to PlanAnalyzer + BenefitScorer. This is a follow-up scoped to plan-viewer icon routing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Closes #281 (Gaps 1 and 2)
Summary
Changes
Both apps
Lite-specific
io_stall_queued_read/write_msfromsys.dm_io_virtual_file_statsfile_io_statsLAG()window function for throughput MB/s interval calculationDashboard-specific
GetFileIoThroughputTimeSeriesAsyncthat caused empty throughput chartsCI fix
50_configuration_issues_analyzer.sqland97_test_procedures.sqlto remove references to warning columns dropped fromcollect.memory_grant_statsin Gap 1Test plan
🤖 Generated with Claude Code