Skip to content

Commit 716cfd0

Browse files
Merge pull request #82 from erikdarlingdata/feature/fix-lite-chart-tooltips
Fix missing chart tooltips for CPU, Memory, TempDB in Lite
2 parents 5427618 + 4efc6f6 commit 716cfd0

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

Lite/Controls/ServerTab.xaml.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ public partial class ServerTab : UserControl
3939
private List<SelectableItem> _perfmonCounterItems = new();
4040
private Helpers.ChartHoverHelper? _waitStatsHover;
4141
private Helpers.ChartHoverHelper? _perfmonHover;
42+
private Helpers.ChartHoverHelper? _cpuHover;
43+
private Helpers.ChartHoverHelper? _memoryHover;
44+
private Helpers.ChartHoverHelper? _tempDbHover;
4245
private Helpers.ChartHoverHelper? _tempDbFileIoHover;
4346
private Helpers.ChartHoverHelper? _fileIoReadHover;
4447
private Helpers.ChartHoverHelper? _fileIoWriteHover;
@@ -129,6 +132,9 @@ public ServerTab(ServerConnection server, DuckDbInitializer duckDb, CredentialSe
129132
/* Chart hover tooltips */
130133
_waitStatsHover = new Helpers.ChartHoverHelper(WaitStatsChart, "ms/sec");
131134
_perfmonHover = new Helpers.ChartHoverHelper(PerfmonChart, "");
135+
_cpuHover = new Helpers.ChartHoverHelper(CpuChart, "%");
136+
_memoryHover = new Helpers.ChartHoverHelper(MemoryChart, "GB");
137+
_tempDbHover = new Helpers.ChartHoverHelper(TempDbChart, "MB");
132138
_tempDbFileIoHover = new Helpers.ChartHoverHelper(TempDbFileIoChart, "ms");
133139
_fileIoReadHover = new Helpers.ChartHoverHelper(FileIoReadChart, "ms");
134140
_fileIoWriteHover = new Helpers.ChartHoverHelper(FileIoWriteChart, "ms");
@@ -589,6 +595,7 @@ private static string FormatMb(double mb)
589595
private void UpdateCpuChart(List<CpuUtilizationRow> data)
590596
{
591597
ClearChart(CpuChart);
598+
_cpuHover?.Clear();
592599
ApplyDarkTheme(CpuChart);
593600

594601
if (data.Count == 0) { CpuChart.Refresh(); return; }
@@ -600,10 +607,12 @@ private void UpdateCpuChart(List<CpuUtilizationRow> data)
600607
var sqlPlot = CpuChart.Plot.Add.Scatter(times, sqlCpu);
601608
sqlPlot.LegendText = "SQL Server";
602609
sqlPlot.Color = ScottPlot.Color.FromHex("#4FC3F7");
610+
_cpuHover?.Add(sqlPlot, "SQL Server");
603611

604612
var otherPlot = CpuChart.Plot.Add.Scatter(times, otherCpu);
605613
otherPlot.LegendText = "Other";
606614
otherPlot.Color = ScottPlot.Color.FromHex("#E57373");
615+
_cpuHover?.Add(otherPlot, "Other");
607616

608617
CpuChart.Plot.Axes.DateTimeTicksBottom();
609618
ReapplyAxisColors(CpuChart);
@@ -617,6 +626,7 @@ private void UpdateCpuChart(List<CpuUtilizationRow> data)
617626
private void UpdateMemoryChart(List<MemoryTrendPoint> data, List<MemoryTrendPoint> grantData)
618627
{
619628
ClearChart(MemoryChart);
629+
_memoryHover?.Clear();
620630
ApplyDarkTheme(MemoryChart);
621631

622632
if (data.Count == 0) { MemoryChart.Refresh(); return; }
@@ -629,15 +639,18 @@ private void UpdateMemoryChart(List<MemoryTrendPoint> data, List<MemoryTrendPoin
629639
var totalPlot = MemoryChart.Plot.Add.Scatter(times, totalMem);
630640
totalPlot.LegendText = "Total Server Memory";
631641
totalPlot.Color = ScottPlot.Color.FromHex("#4FC3F7");
642+
_memoryHover?.Add(totalPlot, "Total Server Memory");
632643

633644
var targetPlot = MemoryChart.Plot.Add.Scatter(times, targetMem);
634645
targetPlot.LegendText = "Target Memory";
635646
targetPlot.Color = ScottPlot.Colors.Gray;
636647
targetPlot.LineStyle.Pattern = LinePattern.Dashed;
648+
_memoryHover?.Add(targetPlot, "Target Memory");
637649

638650
var bpPlot = MemoryChart.Plot.Add.Scatter(times, bufferPool);
639651
bpPlot.LegendText = "Buffer Pool";
640652
bpPlot.Color = ScottPlot.Color.FromHex("#81C784");
653+
_memoryHover?.Add(bpPlot, "Buffer Pool");
641654

642655
/* Memory grants trend line — show zero line when no grant data */
643656
double[] grantTimes, grantMb;
@@ -655,6 +668,7 @@ private void UpdateMemoryChart(List<MemoryTrendPoint> data, List<MemoryTrendPoin
655668
var grantPlot = MemoryChart.Plot.Add.Scatter(grantTimes, grantMb);
656669
grantPlot.LegendText = "Memory Grants";
657670
grantPlot.Color = ScottPlot.Color.FromHex("#FFB74D");
671+
_memoryHover?.Add(grantPlot, "Memory Grants");
658672

659673
MemoryChart.Plot.Axes.DateTimeTicksBottom();
660674
ReapplyAxisColors(MemoryChart);
@@ -670,6 +684,7 @@ private void UpdateMemoryChart(List<MemoryTrendPoint> data, List<MemoryTrendPoin
670684
private void UpdateTempDbChart(List<TempDbRow> data)
671685
{
672686
ClearChart(TempDbChart);
687+
_tempDbHover?.Clear();
673688
ApplyDarkTheme(TempDbChart);
674689

675690
if (data.Count == 0) { TempDbChart.Refresh(); return; }
@@ -682,14 +697,17 @@ private void UpdateTempDbChart(List<TempDbRow> data)
682697
var userPlot = TempDbChart.Plot.Add.Scatter(times, userObj);
683698
userPlot.LegendText = "User Objects";
684699
userPlot.Color = ScottPlot.Color.FromHex("#4FC3F7");
700+
_tempDbHover?.Add(userPlot, "User Objects");
685701

686702
var internalPlot = TempDbChart.Plot.Add.Scatter(times, internalObj);
687703
internalPlot.LegendText = "Internal Objects";
688704
internalPlot.Color = ScottPlot.Color.FromHex("#FFD54F");
705+
_tempDbHover?.Add(internalPlot, "Internal Objects");
689706

690707
var vsPlot = TempDbChart.Plot.Add.Scatter(times, versionStore);
691708
vsPlot.LegendText = "Version Store";
692709
vsPlot.Color = ScottPlot.Color.FromHex("#81C784");
710+
_tempDbHover?.Add(vsPlot, "Version Store");
693711

694712
TempDbChart.Plot.Axes.DateTimeTicksBottom();
695713
ReapplyAxisColors(TempDbChart);

0 commit comments

Comments
 (0)