You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Schema upgrade**: Three large collection tables (`query_stats`, `procedure_stats`, `query_store_data`) are migrated to use `COMPRESS()` for query text and plan columns, reducing storage by ~60-80%. The upgrade performs a table swap (create new → migrate data → rename) which may take several minutes on large tables. A `row_hash` column is added for deduplication. Three new tracking tables are also created. Volume stats columns are added to `database_size_stats`. Upgrade scripts run automatically via the CLI/GUI installer and use idempotent checks.
15
+
16
+
### Added
17
+
18
+
-**FinOps monitoring tab** — database size tracking, server properties, storage growth analysis (7d/30d), index analysis with unused/duplicate/compressible detection, utilization efficiency, idle database identification, and estate-level resource views ([#474])
19
+
-**Named collection presets** — Aggressive, Balanced, and Low-Impact schedule profiles via `config.apply_collection_preset` ([#454])
20
+
-**Entra ID interactive MFA authentication** in both CLI and GUI installers for Azure SQL MI connections ([#481])
21
+
-**MCP port validation** — TCP port conflict detection, range validation (1024+), Auto port button, and auto-restart on settings change ([#453])
22
+
-**Alert database exclusion filters** — filter blocking and deadlock alerts by database in both Dashboard and Lite ([#410], [#412])
23
+
-**Configurable alert cooldown periods** for tray notifications and email alerts
24
+
-**Wait stats query drill-down** — click a wait type to see the queries causing it ([#372])
25
+
-**Configurable long-running query settings** — max results, WAITFOR/backup/diagnostics exclusions ([#415])
26
+
-**Uninstall option** in both CLI and GUI installers ([#431])
27
+
-**Session stats collector** for active session tracking ([#474])
28
+
-**LOB compression and deduplication** for query stats tables to reduce storage ([#419])
29
+
-**Volume-level drive space** enrichment in database size stats via `dm_os_volume_stats`
30
+
-**GUI installer installation history** logging to `config.installation_history` ([#414])
31
+
- CI version bump check on PRs to main
32
+
- Permissions section in README with least-privilege setup ([#421])
33
+
34
+
### Changed
35
+
36
+
-**Utilization tab redesigned** — ported to Dashboard with aligned metrics between apps ([#478])
37
+
- PlanAnalyzer rules synced from PerformanceStudio — Rule 5 message format, seek predicate parsing, spool labels, unmatched index detail ([#416], [#475], [#480])
38
+
- Data retention now purges processed XE staging rows
39
+
- GeneratedRegex conversion for compile-time regex patterns ([#346], [#420])
40
+
- Server health card width increased from 260 to 300 for less text truncation ([#489])
41
+
- User's locale used for date/time formatting in WPF bindings ([#459])
42
+
- XML processing instructions stripped from sql_command/sql_text display
43
+
- Parameterized queries in blocking/deadlock alert filtering
44
+
45
+
### Fixed
46
+
47
+
-**UI hang** when opening Dashboard tab for offline server — replaced synchronous `.GetAwaiter().GetResult()` with proper `await` ([#477])
48
+
-**First-collection spike** skewing PerfMon, wait stats, file I/O, memory grant, query stats, and procedure stats charts — first cumulative value now treated as baseline ([#482])
49
+
-**Wait type filter TextBox** too small to read ([#488])
50
+
-**Poison wait false positives** and alert log parsing ([#445], [#448])
51
+
-**RID Lookup** analyzer rule matching new PhysicalOp label ([#429])
52
+
-**procedure_stats** plan query using DECOMPRESS after compression migration
53
+
-**database_size_stats** InvalidCastException on compatibility_level
54
+
-**Deadlock filter** using wrong column reference in `GetFilteredDeadlockCountAsync`
55
+
-**RESTORING database** filter added to waiting_tasks collector ([#430])
56
+
- Custom TrayToolTip crash — replaced with plain ToolTipText ([#422])
57
+
- DuckDB read lock acquisition resilience
58
+
- Formatted duration columns sorting alphabetically instead of numerically
59
+
- Settings window staying open on validation errors
60
+
- Deserialization clamping and validation abort issues
Copy file name to clipboardExpand all lines: README.md
+25-4Lines changed: 25 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ Both editions include real-time alerts (system tray + email), charts and graphs,
38
38
39
39
## What You Get
40
40
41
-
🔍 **32 specialized T-SQL collectors** running on configurable schedules — wait stats, query performance, blocking chains, deadlock graphs, memory grants, file I/O, tempdb, perfmon counters, and more. Query text and execution plan collection can be disabled per-collector for sensitive environments.
41
+
🔍 **32 specialized T-SQL collectors** running on configurable schedules with named presets (Aggressive, Balanced, Low-Impact) — wait stats, query performance, blocking chains, deadlock graphs, memory grants, file I/O, tempdb, perfmon counters, FinOps/capacity, and more. Query text and execution plan collection can be disabled per-collector for sensitive environments.
42
42
43
43
🚨 **Real-time alerts** for blocking, deadlocks, and high CPU — system tray notifications plus styled HTML emails with full XML attachments for offline analysis
44
44
@@ -81,7 +81,7 @@ Data starts flowing within 1–5 minutes. That's it. No installation on your ser
81
81
82
82
### Lite Collectors
83
83
84
-
20 collectors run on independent, configurable schedules:
84
+
23 collectors run on independent, configurable schedules:
85
85
86
86
| Collector | Default | Source |
87
87
|---|---|---|
@@ -98,9 +98,12 @@ Data starts flowing within 1–5 minutes. That's it. No installation on your ser
98
98
| tempdb_stats | 1 min |`sys.dm_db_file_space_usage`|
99
99
| perfmon_stats | 1 min |`sys.dm_os_performance_counters` (deltas) |
100
100
| deadlocks | 1 min |`system_health` Extended Events session |
101
+
| session_stats | 1 min |`sys.dm_exec_sessions` active session tracking |
101
102
| memory_clerks | 5 min |`sys.dm_os_memory_clerks`|
102
103
| query_store | 5 min | Query Store DMVs (per database) |
103
104
| running_jobs | 5 min |`msdb` job history with duration vs avg/p95 |
105
+
| database_size_stats | 15 min |`sys.master_files` + `FILEPROPERTY` + `dm_os_volume_stats`|
106
+
| server_properties | 15 min |`SERVERPROPERTY()` hardware and licensing metadata |
104
107
| server_config | On connect |`sys.configurations`|
105
108
| database_config | On connect |`sys.databases`|
106
109
| database_scoped_config | On connect | Database-scoped configurations |
@@ -141,13 +144,26 @@ SQL Authentication:
141
144
PerformanceMonitorInstaller.exe YourServerName sa YourPassword
PerformanceMonitorInstaller.exe YourServerName sa YourPassword --uninstall
165
+
```
166
+
151
167
The installer automatically tests the connection, executes SQL scripts, downloads community dependencies, creates SQL Agent jobs, and runs initial data collection. A GUI installer (`InstallerGui/`) is also available with the same functionality.
152
168
153
169
### CLI Installer Options
@@ -156,7 +172,10 @@ The installer automatically tests the connection, executes SQL scripts, download
156
172
|---|---|
157
173
|`SERVER`| SQL Server instance name (positional, required) |
Both editions feature auto-refresh, configurable time ranges, right-click CSV export, system tray integration, dark and light themes, and timezone display options (server time, local time, or UTC).
313
334
@@ -545,7 +566,7 @@ Use the RDS master user for installation. The master user has the necessary perm
545
566
Monitor/
546
567
│
547
568
│ Full Edition (server-installed collectors + separate dashboard)
548
-
├── install/ # 54 SQL installation scripts
569
+
├── install/ # 58 SQL installation scripts
549
570
├── upgrades/ # Version-specific upgrade scripts
550
571
├── Installer/ # CLI installer for Full Edition database (C#)
551
572
├── InstallerGui/ # GUI installer for Full Edition database (WPF)
0 commit comments