diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e26cb1d..593b9e0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -75,9 +75,21 @@ jobs: Compress-Archive -Path 'publish/Installer/*' -DestinationPath "releases/PerformanceMonitorInstaller-$version.zip" -Force + - name: Generate checksums + if: github.event_name == 'release' + shell: pwsh + run: | + $checksums = Get-ChildItem releases/*.zip | ForEach-Object { + $hash = (Get-FileHash $_.FullName -Algorithm SHA256).Hash.ToLower() + "$hash $($_.Name)" + } + $checksums | Out-File -FilePath releases/SHA256SUMS.txt -Encoding utf8 + Write-Host "Checksums:" + $checksums | ForEach-Object { Write-Host $_ } + - name: Upload release assets if: github.event_name == 'release' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - gh release upload ${{ github.event.release.tag_name }} releases/*.zip --clobber + gh release upload ${{ github.event.release.tag_name }} releases/*.zip releases/SHA256SUMS.txt --clobber diff --git a/CHANGELOG.md b/CHANGELOG.md index be678b1..715e3f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,29 +1,58 @@ # Changelog -## v1.0.0 — Initial Release +All notable changes to this project will be documented in this file. -### Full Edition (Dashboard + Server-Side Collection) +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). -- **30+ automated collectors** via SQL Agent jobs: wait stats, CPU, memory, query performance, index usage, file I/O, blocking, deadlocks, and more -- **Dashboard application** (WPF/.NET 8) with real-time charts and trend analysis -- **CLI and GUI installers** for automated server-side setup -- **SQL Server 2016-2025** support including Azure SQL DB, Azure Managed Instance, and AWS RDS -- **Email alerts** for blocking, deadlocks, and high CPU -- **MCP server** (experimental) for LLM tool integration -- **Data retention** with configurable automatic cleanup -- **Delta normalization** for per-second rate calculations across all trend charts +## [1.1.0] - 2026-02-13 -### Lite Edition (No Server Installation Required) +### Added -- **Agentless monitoring** — connects directly to SQL Server DMVs, no installation on monitored servers -- **Local DuckDB storage** for historical data and trend analysis -- **System tray operation** with background collection and alert notifications -- **All chart and analysis features** from the Full Dashboard -- **MCP server** (experimental) for LLM tool integration +- Hover tooltips on all multi-series charts — Wait Stats, Sessions, Latch Stats, Spinlock Stats, File I/O, Perfmon, TempDB ([#21]) +- Microsoft Entra MFA authentication for Azure SQL DB connections in Lite ([#20]) +- Column-level filtering on all 11 Lite DataGrids ([#18]) +- Chart visual parity — Material Design 300 color palette, data point markers, consistent grid styling ([#16]) +- Smart Select All for wait types + expand from 12 to 20 wait types ([#12]) +- Trend chart legends always visible in Dashboard ([#11]) +- Per-server collector health in Lite status bar ([#5]) +- Server Online/Offline status in Lite overview ([#2]) +- Check for updates feature in both apps ([#1]) +- High DPI support for both Dashboard and Lite -### Supported Platforms +### Fixed -- SQL Server 2016, 2017, 2019, 2022, 2025 -- Azure SQL Database -- Azure SQL Managed Instance -- AWS RDS for SQL Server +- Query text off-by-one truncation ([#25]) +- Blocking/deadlock XML processors truncating parsed data every run ([#23]) +- WAITFOR queries appearing in top queries views ([#4]) +- Wait type Clear All not refreshing search filter in Dashboard + +## [1.0.0] - 2026-02-11 + +### Added + +- Full Edition: Dashboard + CLI/GUI Installer with 30+ automated SQL Agent collectors +- Lite Edition: Agentless monitoring with local DuckDB storage +- Support for SQL Server 2016-2025, Azure SQL DB, Azure SQL MI, AWS RDS +- Real-time charts and trend analysis for wait stats, CPU, memory, query performance, index usage, file I/O, blocking, deadlocks +- Email alerts for blocking, deadlocks, and high CPU +- MCP server integration for AI-assisted analysis +- System tray operation with background collection and alert notifications +- Data retention with configurable automatic cleanup +- Delta normalization for per-second rate calculations +- Dark theme UI + +[1.1.0]: https://github.com/erikdarlingdata/PerformanceMonitor/compare/v1.0.0...v1.1.0 +[1.0.0]: https://github.com/erikdarlingdata/PerformanceMonitor/releases/tag/v1.0.0 +[#1]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/1 +[#2]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/2 +[#4]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/4 +[#5]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/5 +[#11]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/11 +[#12]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/12 +[#16]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/16 +[#18]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/18 +[#20]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/20 +[#21]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/21 +[#23]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/23 +[#25]: https://github.com/erikdarlingdata/PerformanceMonitor/issues/25