From 14b802ca9005d6aa57ddfa2584c0e3d0123ffa36 Mon Sep 17 00:00:00 2001 From: Erik Darling <2136037+erikdarlingdata@users.noreply.github.com> Date: Tue, 19 May 2026 20:33:00 -0400 Subject: [PATCH] Release v2.11.0 Bumps Dashboard, Lite, Installer, and Installer.Core to 2.11.0. Drafts the v2.11.0 changelog entry covering the .NET 10 upgrade, Setup.exe-only distribution, shared servers.json location, Lite compaction memory tuning (#933), one-click snooze (#944), trace collector exclusions (#887 follow-up), and the silent rewiden of installation_history version columns for pre-v2.7.0 no-op upgrades (#828). Stamps v2.10.0 with its actual release date (2026-05-04). Tested: - Build clean (0/0) - 46 adversarial Installer.Tests pass - Fresh install on sql2016, upgrades on sql2017/2019/2022/2025 with data survival verified; idempotent re-run on sql2022 - Uninstall path verified (DB dropped, jobs + XE sessions removed) - Cloud: Lite collecting from Azure SQL DB and AWS RDS for 30 min with zero errors; Dashboard installed PerformanceMonitor on RDS via Add Server flow (148 runs, 0 errors) - New process-memory-per-cycle log lines observed in Lite Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 49 +++++++++++++++++++- Dashboard/Dashboard.csproj | 8 ++-- Installer.Core/Installer.Core.csproj | 8 ++-- Installer/PerformanceMonitorInstaller.csproj | 8 ++-- Lite/PerformanceMonitorLite.csproj | 8 ++-- 5 files changed, 63 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7def0f9..a558be5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,53 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [2.10.0] - TBD +## [2.11.0] - 2026-05-19 + +### Important + +- **.NET 10 upgrade** — Dashboard, Lite, Installer, and Installer.Core now target `net10.0` (Windows projects target `net10.0-windows`). Building from source now requires the .NET 10 SDK; CI is pinned to 10.0.204 via `global.json` for reproducible builds. End users running prebuilt Velopack installers do not need to install anything separately — runtime is bundled ([#958]) +- **Dashboard and Lite ship via Setup.exe only** — portable ZIP artifacts have been dropped from the Dashboard and Lite release pipeline. Velopack `Setup.exe` is the only Dashboard/Lite release artifact and now correctly registers the apps under Apps & Features and creates Start Menu shortcuts. The Installer ZIP (CLI installer + SQL scripts) is unchanged. Users upgrading from a portable ZIP install should uninstall the ZIP version and reinstall via `Setup.exe` +- **Shared `servers.json` location** — Dashboard and Lite now store `servers.json` under `%ProgramData%\PerformanceMonitor{Dashboard,Lite}\` so every Windows user on the same machine shares one server list. First run migrates an existing per-user `servers.json` to the new location and grants Authenticated Users Modify on the directory. SQL credentials remain per-user in Windows Credential Manager — each DBA re-enters SQL passwords on first connect; Windows Auth works with no re-entry + +### Added + +- **One-click snooze from the alert tray popup** in Lite — snooze an alert directly from the tray notification balloon without opening the main window ([#944]) +- **Snooze hint in email and Teams/Slack alert payloads** — alert messages now show the snooze duration / scheduled wake time when an alert is fired while a snooze is active ([#944]) +- **Process memory logging per collection cycle** in Lite — the collector now logs working set and private bytes at the end of each cycle, making it easier to track memory growth in long-running sessions + +### Changed + +- **Lite compaction memory tuning** ([#933]) — multiple changes to make parquet compaction robust on wide-row tables and large datasets: + - Cap the main collector connection's `memory_limit` and raise it transiently only for the `COPY` step + - Detect compaction `EXCLUDE` columns per merge step instead of once up front + - Raise the compaction `memory_limit` floor to 4 GB + - Set DuckDB `temp_directory` explicitly so spill files don't blow the OS temp drive + - Compact parquet in size-budgeted batches instead of one mega-batch +- **Trace collectors honor `config.collector_database_exclusions`** ([#887] follow-up) — the trace-file based collectors now filter against the exclusions table, matching the behavior of the eight DMV-based per-database collectors shipped in v2.9.0 +- **InstallerGui project directory removed** — the WPF InstallerGui was retired in v2.9.0 in favor of the Dashboard's integrated Add Server dialog. The project directory has now been deleted from the repo +- **Build warnings cleaned up** across Lite, Dashboard, and Installer ([#945]) +- **GitHub Actions runners bumped** to Node 24-compatible major versions to silence deprecation warnings + +### Fixed + +- **Re-run `installation_history` column widening** for servers that crossed v2.4.0 → v2.5.0 before PR #828's fix shipped in v2.7.0. Those servers ran the original widen script as a no-op against `master`, then advanced their installer_version past 2.5, so the now-fixed script never reapplied. Adds an idempotent ALTER under an `IF EXISTS` guard checking `max_length = 510` ([#828]) +- **Mute rules preserved across size-triggered DuckDB reset** in Lite — when the local DuckDB exceeded the configured size budget and was reset, mute rules were being lost. They now survive the reset ([#938]) +- **Chart tooltips break after tab switch** — root-cause fix for the popup-wedge issue first patched in v2.10.0. Both the Memory tab handlers and `CorrelatedCrosshairManager` are now resilient to tab churn ([#916], [#937]) +- **Stale `Monitor_LongQueries_*.trc` files cleaned up** by `config.data_retention` — the trace-file cleanup step previously left old `.trc` files behind on disk ([#951]) +- **Nullability guards** added to the remaining comparison overlay tasks that were producing CS86xx warnings + +[#828]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/828 +[#887]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/887 +[#916]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/916 +[#933]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/933 +[#937]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/937 +[#938]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/938 +[#944]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/944 +[#945]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/945 +[#951]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/951 +[#958]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/958 + +## [2.10.0] - 2026-05-04 ### Fixed @@ -17,7 +63,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Per-database grants for FinOps Index Analysis** documented in the README — sp_IndexCleanup-backed Index Analysis requires per-database `EXECUTE` grants on each user database you want to analyze ([#915]) [#915]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/915 -[#916]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/916 [#917]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/917 ## [2.9.0] - 2026-04-29 diff --git a/Dashboard/Dashboard.csproj b/Dashboard/Dashboard.csproj index f73c39d..0f265be 100644 --- a/Dashboard/Dashboard.csproj +++ b/Dashboard/Dashboard.csproj @@ -7,10 +7,10 @@ PerformanceMonitorDashboard.Program PerformanceMonitorDashboard SQL Server Performance Monitor Dashboard - 2.10.0 - 2.10.0.0 - 2.10.0.0 - 2.10.0 + 2.11.0 + 2.11.0.0 + 2.11.0.0 + 2.11.0 Darling Data, LLC Copyright © 2026 Darling Data, LLC EDD.ico diff --git a/Installer.Core/Installer.Core.csproj b/Installer.Core/Installer.Core.csproj index ff55137..89d130d 100644 --- a/Installer.Core/Installer.Core.csproj +++ b/Installer.Core/Installer.Core.csproj @@ -7,10 +7,10 @@ Installer.Core Installer.Core SQL Server Performance Monitor Installer Core - 2.10.0 - 2.10.0.0 - 2.10.0.0 - 2.10.0 + 2.11.0 + 2.11.0.0 + 2.11.0.0 + 2.11.0 Darling Data, LLC Copyright (c) 2026 Darling Data, LLC true diff --git a/Installer/PerformanceMonitorInstaller.csproj b/Installer/PerformanceMonitorInstaller.csproj index 1a564e8..4f66ac6 100644 --- a/Installer/PerformanceMonitorInstaller.csproj +++ b/Installer/PerformanceMonitorInstaller.csproj @@ -20,10 +20,10 @@ PerformanceMonitorInstaller SQL Server Performance Monitor Installer - 2.10.0 - 2.10.0.0 - 2.10.0.0 - 2.10.0 + 2.11.0 + 2.11.0.0 + 2.11.0.0 + 2.11.0 Darling Data, LLC Copyright © 2026 Darling Data, LLC Installation utility for SQL Server Performance Monitor - Supports SQL Server 2016-2025 diff --git a/Lite/PerformanceMonitorLite.csproj b/Lite/PerformanceMonitorLite.csproj index df4de1f..2da8ff9 100644 --- a/Lite/PerformanceMonitorLite.csproj +++ b/Lite/PerformanceMonitorLite.csproj @@ -8,10 +8,10 @@ PerformanceMonitorLite PerformanceMonitorLite SQL Server Performance Monitor Lite - 2.10.0 - 2.10.0.0 - 2.10.0.0 - 2.10.0 + 2.11.0 + 2.11.0.0 + 2.11.0.0 + 2.11.0 Darling Data, LLC Copyright © 2026 Darling Data, LLC Lightweight SQL Server performance monitoring - no installation required on target servers