Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -202,12 +202,20 @@ jobs:
run: |
gh release upload ${{ github.event.release.tag_name }} releases/*.zip releases/SHA256SUMS.txt --clobber

- name: Upload Velopack artifacts
- name: Upload Dashboard Velopack artifacts
if: github.event_name == 'release'
shell: pwsh
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ steps.version.outputs.VERSION }}
run: |
vpk upload github --repoUrl https://github.com/${{ github.repository }} --channel dashboard -o releases/velopack-dashboard --releaseName "v$env:VERSION" --tag "v$env:VERSION" --merge --token $env:GH_TOKEN

- name: Upload Lite Velopack artifacts
if: github.event_name == 'release'
shell: pwsh
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ steps.version.outputs.VERSION }}
run: |
vpk upload github --repoUrl https://github.com/${{ github.repository }} --channel lite -o releases/velopack-lite --releaseName "v$env:VERSION" --tag "v$env:VERSION" --merge --token $env:GH_TOKEN
11 changes: 5 additions & 6 deletions Dashboard/AboutWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,11 @@
Report an Issue
</Hyperlink>
</TextBlock>
<TextBlock FontSize="12">
<Hyperlink x:Name="CheckUpdatesLink" Click="CheckUpdatesLink_Click">
Check for Updates
</Hyperlink>
</TextBlock>
<TextBlock x:Name="UpdateStatusText" FontSize="11" Foreground="{DynamicResource ForegroundMutedBrush}" Margin="0,3,0,0" Visibility="Collapsed"/>
<StackPanel Orientation="Horizontal" Margin="0,4,0,0">
<Button Content="Check for Updates" Click="CheckUpdatesLink_Click" Padding="10,4" FontSize="12"/>
<TextBlock x:Name="UpdateStatusText" FontSize="11" VerticalAlignment="Center" Margin="8,0,0,0"
Foreground="{DynamicResource ForegroundMutedBrush}" Visibility="Collapsed"/>
</StackPanel>
</StackPanel>

<!-- Links -->
Expand Down
8 changes: 4 additions & 4 deletions Dashboard/Dashboard.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
<StartupObject>PerformanceMonitorDashboard.Program</StartupObject>
<AssemblyName>PerformanceMonitorDashboard</AssemblyName>
<Product>SQL Server Performance Monitor Dashboard</Product>
<Version>2.4.0</Version>
<AssemblyVersion>2.4.0.0</AssemblyVersion>
<FileVersion>2.4.0.0</FileVersion>
<InformationalVersion>2.4.0</InformationalVersion>
<Version>2.4.1</Version>
<AssemblyVersion>2.4.1.0</AssemblyVersion>
<FileVersion>2.4.1.0</FileVersion>
<InformationalVersion>2.4.1</InformationalVersion>
<Company>Darling Data, LLC</Company>
<Copyright>Copyright © 2026 Darling Data, LLC</Copyright>
<ApplicationIcon>EDD.ico</ApplicationIcon>
Expand Down
8 changes: 4 additions & 4 deletions Installer/PerformanceMonitorInstaller.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
<!-- Application metadata -->
<AssemblyName>PerformanceMonitorInstaller</AssemblyName>
<Product>SQL Server Performance Monitor Installer</Product>
<Version>2.4.0</Version>
<AssemblyVersion>2.4.0.0</AssemblyVersion>
<FileVersion>2.4.0.0</FileVersion>
<InformationalVersion>2.4.0</InformationalVersion>
<Version>2.4.1</Version>
<AssemblyVersion>2.4.1.0</AssemblyVersion>
<FileVersion>2.4.1.0</FileVersion>
<InformationalVersion>2.4.1</InformationalVersion>
<Company>Darling Data, LLC</Company>
<Copyright>Copyright © 2026 Darling Data, LLC</Copyright>
<Description>Installation utility for SQL Server Performance Monitor - Supports SQL Server 2016-2025</Description>
Expand Down
8 changes: 4 additions & 4 deletions InstallerGui/InstallerGui.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
<AssemblyName>PerformanceMonitorInstallerGui</AssemblyName>
<RootNamespace>PerformanceMonitorInstallerGui</RootNamespace>
<Product>SQL Server Performance Monitor Installer</Product>
<Version>2.4.0</Version>
<AssemblyVersion>2.4.0.0</AssemblyVersion>
<FileVersion>2.4.0.0</FileVersion>
<InformationalVersion>2.4.0</InformationalVersion>
<Version>2.4.1</Version>
<AssemblyVersion>2.4.1.0</AssemblyVersion>
<FileVersion>2.4.1.0</FileVersion>
<InformationalVersion>2.4.1</InformationalVersion>
<Company>Darling Data, LLC</Company>
<Copyright>Copyright © 2026 Darling Data, LLC</Copyright>
<ApplicationIcon>EDD.ico</ApplicationIcon>
Expand Down
13 changes: 13 additions & 0 deletions Lite/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -832,6 +832,16 @@ private void ManageServersButton_Click(object sender, RoutedEventArgs e)

if (window.ServersChanged)
{
// Purge collector health for servers that were removed
if (_collectorService != null)
{
var currentServerIds = new HashSet<int>(
_serverManager.GetAllServers().Select(s =>
RemoteCollectorService.GetDeterministicHashCode(
RemoteCollectorService.GetServerNameForStorage(s))));
_collectorService.ClearHealthExcept(currentServerIds);
}

RefreshServerList();
}
}
Expand Down Expand Up @@ -1087,6 +1097,9 @@ private void ServerContextMenu_Remove_Click(object sender, RoutedEventArgs e)
if (result == MessageBoxResult.Yes)
{
CloseServerTab(server.Id);
_collectorService?.ClearHealthForServer(
RemoteCollectorService.GetDeterministicHashCode(
RemoteCollectorService.GetServerNameForStorage(server)));
_serverManager.DeleteServer(server.Id);
RefreshServerList();
StatusText.Text = $"Removed server: {server.DisplayNameWithIntent}";
Expand Down
8 changes: 4 additions & 4 deletions Lite/PerformanceMonitorLite.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
<AssemblyName>PerformanceMonitorLite</AssemblyName>
<RootNamespace>PerformanceMonitorLite</RootNamespace>
<Product>SQL Server Performance Monitor Lite</Product>
<Version>2.4.0</Version>
<AssemblyVersion>2.4.0.0</AssemblyVersion>
<FileVersion>2.4.0.0</FileVersion>
<InformationalVersion>2.4.0</InformationalVersion>
<Version>2.4.1</Version>
<AssemblyVersion>2.4.1.0</AssemblyVersion>
<FileVersion>2.4.1.0</FileVersion>
<InformationalVersion>2.4.1</InformationalVersion>
<Company>Darling Data, LLC</Company>
<Copyright>Copyright © 2026 Darling Data, LLC</Copyright>
<Description>Lightweight SQL Server performance monitoring - no installation required on target servers</Description>
Expand Down
30 changes: 30 additions & 0 deletions Lite/Services/RemoteCollectorService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,36 @@ public CollectorHealthSummary GetHealthSummary(int? serverId = null)
}
}

/// <summary>
/// Clears collector health entries for a server that has been removed.
/// Prevents stale error counts from showing in the status bar.
/// </summary>
public void ClearHealthForServer(int serverId)
{
lock (_healthLock)
{
var keys = _collectorHealth.Keys.Where(k => k.ServerId == serverId).ToList();
foreach (var key in keys)
_collectorHealth.Remove(key);
}
}

/// <summary>
/// Clears collector health entries for all servers NOT in the provided set.
/// Used after Manage Servers to purge stale entries for removed servers.
/// </summary>
public void ClearHealthExcept(HashSet<int> activeServerIds)
{
lock (_healthLock)
{
var keys = _collectorHealth.Keys
.Where(k => !activeServerIds.Contains(k.ServerId))
.ToList();
foreach (var key in keys)
_collectorHealth.Remove(key);
}
}

/// <summary>
/// Records a collector execution result for health tracking.
/// </summary>
Expand Down
11 changes: 5 additions & 6 deletions Lite/Windows/AboutWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,11 @@
Report an Issue
</Hyperlink>
</TextBlock>
<TextBlock FontSize="12" Margin="0,0,0,5">
<Hyperlink x:Name="CheckUpdatesLink" Click="CheckUpdatesLink_Click">
Check for Updates
</Hyperlink>
</TextBlock>
<TextBlock x:Name="UpdateStatusText" FontSize="11" Foreground="{DynamicResource ForegroundMutedBrush}" Margin="0,0,0,5" Visibility="Collapsed"/>
<StackPanel Orientation="Horizontal" Margin="0,4,0,5">
<Button Content="Check for Updates" Click="CheckUpdatesLink_Click" Padding="10,4" FontSize="12"/>
<TextBlock x:Name="UpdateStatusText" FontSize="11" VerticalAlignment="Center" Margin="8,0,0,0"
Foreground="{DynamicResource ForegroundMutedBrush}" Visibility="Collapsed"/>
</StackPanel>
<TextBlock FontSize="12">
<Hyperlink x:Name="DarlingDataLink" Click="DarlingDataLink_Click">
www.erikdarling.com
Expand Down
Loading