PerformanceMonitor
Free, open-source SQL Server and Postgres performance monitoring. Collectors, real-time alerts, graphical plan viewer, MCP server for AI analysis. Supports SQL 2016-2025, Azure SQL, AWS RDS, Postgres, Aurora Postgres.
Install / Use
claude mcp add erikdarlingdata -- npx -y github:erikdarlingdata/PerformanceMonitorIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
OperationsSupported Platforms
Skill content
View source on GitHubSQL Server Performance Monitor
<p align="center"> <a href="https://github.com/erikdarlingdata/PerformanceMonitor/stargazers"><img src="https://img.shields.io/github/stars/erikdarlingdata/PerformanceMonitor?style=for-the-badge&logo=github&color=gold&logoColor=black" alt="GitHub Stars"></a> <a href="https://github.com/erikdarlingdata/PerformanceMonitor/network/members"><img src="https://img.shields.io/github/forks/erikdarlingdata/PerformanceMonitor?style=for-the-badge&logo=github" alt="GitHub Forks"></a> <a href="https://github.com/erikdarlingdata/PerformanceMonitor/blob/main/LICENSE"><img src="https://img.shields.io/github/license/erikdarlingdata/PerformanceMonitor?style=for-the-badge" alt="License: MIT"></a> <a href="https://github.com/erikdarlingdata/PerformanceMonitor/releases/latest"><img src="https://img.shields.io/github/v/release/erikdarlingdata/PerformanceMonitor?style=for-the-badge" alt="Latest Release"></a> <a href="https://github.com/erikdarlingdata/PerformanceMonitor/issues"><img src="https://img.shields.io/github/issues/erikdarlingdata/PerformanceMonitor?style=for-the-badge" alt="Open Issues"></a> <a href="https://github.com/erikdarlingdata/PerformanceMonitor/commits/main"><img src="https://img.shields.io/github/last-commit/erikdarlingdata/PerformanceMonitor?style=for-the-badge" alt="Last Commit"></a> <a href="https://github.com/erikdarlingdata/PerformanceMonitor/actions/workflows/build.yml"><img src="https://img.shields.io/github/actions/workflow/status/erikdarlingdata/PerformanceMonitor/build.yml?style=for-the-badge&label=CI" alt="CI"></a> </p> <p align="center"> <a href="https://x.com/erikdarlingdata"><img src="https://img.shields.io/badge/Follow_%40ErikDarlingData-black?style=for-the-badge&logo=x&logoColor=white" alt="Follow @ErikDarlingData on X"></a> <a href="https://www.youtube.com/@ErikDarlingData"><img src="https://img.shields.io/badge/YouTube-Subscribe-red?style=for-the-badge&logo=youtube&logoColor=white" alt="YouTube Subscribe"></a> <a href="https://www.linkedin.com/in/erik-darling-data/"><img src="https://img.shields.io/badge/LinkedIn-Connect-0077B5?style=for-the-badge&logo=linkedin&logoColor=white" alt="LinkedIn Connect"></a> <a href="https://erikdarling.com"><img src="https://img.shields.io/badge/Blog-erikdarling.com-FF6B35?style=for-the-badge&logo=wordpress&logoColor=white" alt="Blog"></a> </p>Free, open-source monitoring that replaces the tools charging you thousands per server per year. Specialized collectors, real-time alerts, and a built-in MCP server for AI analysis. Nothing phones home. Your data stays on your server and your machine.
Supported: SQL Server 2016–2025 | Azure SQL Managed Instance | AWS RDS for SQL Server | Azure SQL Database (Lite and Darling)

Editions
Pick by how you want collection to run — the monitoring brain (collectors, alert engine, plan analysis, MCP tools) is shared across all three at the library level.
| | Lite — flagship | Darling — headless | Dashboard — deprecated |
|---|---|---|---|
| How it runs | Single desktop app monitors remotely, on demand | Windows service collects 24/7 into a central store; detached viewer reads it from any seat | SQL-Server-installed database + Agent collectors, separate viewer app |
| Installs on your server? | No | No | Yes (a PerformanceMonitor database) |
| Stores data | Local DuckDB + Parquet | Bundled PostgreSQL + TimescaleDB | In the target SQL Server |
| Best for | Quick triage, Azure SQL DB, locked-down servers, consultants, firefighting | Always-on monitoring of many servers from one service | Existing installs only — new deployments should use Lite or Darling |
| Requires | VIEW SERVER STATE (permissions) | VIEW SERVER STATE + a place to run the service | SQL Agent (Dashboard docs) |
⚠️ The "Full" Dashboard edition is deprecated. Existing installs keep working and remain on bug-fix support, but it is no longer the recommended path and — as of v3.3.0 — the Dashboard and its CLI installer are no longer included in release assets. The last shipped builds are in the v3.2.0 release, and both remain buildable from the repo. New deployments should use Lite or Darling. Its docs live with the code: deprecated/Dashboard/README.md (the app, tabs, permissions) and deprecated/Installer/README.md (the CLI database installer).
👉 Not sure? Start with Lite. One download, nothing installed on your server, data flowing in under 5 minutes.
All editions include real-time alerts (system tray + email + webhooks), charts and graphs, dark and light themes, CSV export, and a built-in MCP server for AI-powered analysis with tools like Claude. All release binaries are digitally signed via SignPath — no more Windows SmartScreen warnings.
What People Are Saying
"You guys make us DBAs look like absolute rockstars. I'm over here getting showered with praise, and all I do is use your scripts and follow your advice."
"replaced SentryOne and had it running in 10 minutes"
"I've had enough time to gather data and converse with Claude on this. It helped a lot to zone in on CPU starvation from the hypervisor on which the VM runs. IT team currently investigating the host configuration."
What You Get
🔍 Specialized collectors on configurable schedules — 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.
🚨 Real-time alerts for blocking, deadlocks, and high CPU — system tray notifications, styled HTML emails with full XML attachments, and webhook notifications for external integrations
📊 NOC-style overview with green/yellow/red health cards, auto-refresh, configurable time ranges, and dark/light themes
📋 Graphical plan viewer with native ShowPlan rendering, 30-rule PlanAnalyzer, operator-level cost breakdown, and a standalone mode for opening .sqlplan files without a server connection
💡 Recommendations engine (advise-and-act) — a dedicated Recommendations tab surfaces prioritized findings from your own monitoring data with the reasoning behind each one, and can apply selected fixes directly. Destructive changes (like enabling Read Committed Snapshot Isolation) are gated behind an informed-consent dialog that spells out both the risk of acting and the risk of doing nothing.
🤖 Built-in MCP server with read-only tools for AI analysis — ask Claude Code or Cursor "what are the top wait types on my server?" and get answers from your actual monitoring data
🧰 Community tools installed automatically — sp_WhoIsActive, sp_BlitzLock, sp_HealthParser, sp_HumanEventsBlockViewer
🔒 Your data never leaves — no telemetry, no cloud dependency, no phoning home. Credentials stored in Windows Credential Manager with OS-level encryption.
More Screenshots
Lite Edition — Query Performance

Graphical Plan Viewer

Alert Notifications

MCP Server — AI-Powered Analysis

Quick Start — Lite
- Download
PerformanceMonitorLite-win-Setup.exe(requires .NET 10 Desktop Runtime) - Run the installer — it installs to
%LocalAppData%\PerformanceMonitorLite, adds Start Menu and Desktop shortcuts, and registers the app under Apps & Features so it shows up in Windows search and can be uninstalled normally. Auto-update is wired in. Your data goes in%LocalAppData%\PerformanceMonitorLite-Data, a separate folder the installer never touches. - Launch from the Start Menu or Desktop shortcut.
- Click + Add Server, enter connection details, test, save.
- Double-click the server in the sidebar to connect.
Data starts flowing within 1–5 minutes. That's it. No installation on your server, no Agent jobs, no sysadmin required.
Upgrading from zip? Click Import Settings then Import Data in the sidebar and point both at your old Lite folder. Settings imports server connections, alert thresholds, SMTP config, and schedules. Data imports historical DuckDB + Parquet archives. Auto-update users (installed via Setup.exe) get updates automatically — no manual import needed.
Warning — upgrading an install older than the data-relocation fix: on those versions Lite kept its data inside the install directory, and re-running
Setup.exeover an existing install deletes that directory before the new build ever runs. It takes the DuckDB store, the Parquet archive, the logs, andsettings.jsonwith it. Upgrade in place instead: Help > About downloads and applies the update without touching your data, or extract the portable ZIP over your existing copy. From this release on, data lives outside the install directory and is moved there automatically on first start, soSetup.exeis safe again. (Your monitored-server list is unaffected either way — it lives in%ProgramData%\PerformanceMonitorLite\config— and so are the passwords in Windows Credential Manager.)
Always On AG? Enable ReadOnlyIntent in the connection settings to route Lite's monitoring queries to a readable secondary, keeping the primary clear. Enable MultiSubnetFailover for multi-subnet failover scenarios.
Lite Collectors
38 collectors run on independent, configurable schedules (the long-running-query completion trace is opt-in and ships disabled):
| Collector | Default | Source |
|---|---|---|
| query_snapshots | 1 min | sys.dm_exec_requests + sys.dm_exec_sessions |
| blocked_process_report | 1 min | XE ring buffer session |
| waiting_tasks | 1 min | sys.dm_os_waiting_tasks |
| wait_stats | 1 min | sys.dm_os_wait_stats (deltas) |
| latch_stats | 1 min | sys.dm_os_latch_stats (deltas) |
| spinlock_stats | 1 min | sys.dm_os_spinlock_stats (deltas) |
| cpu_scheduler_stats | 1 min | sys.dm_os_schedulers runnable/blocked/queued task counts (not Azure SQL DB) |
| long_query_completions | 1 min (opt-in, ships off) | dedicated completion-trace XE (rpc_completed/sql_batch_completed over a duration threshold, plus attention) |
| query_stats | 1 min | sys.dm_exec_query_stats (deltas) |
| procedure_stats | 1 min | sys.dm_exec_procedure_stats (deltas) |
| cpu_utilization | 1 min | sys.dm_os_ring_buffers scheduler monitor |
| file_io_stats | 1 min | sys.dm_io_virtual_file_stats (deltas) |
| memory_stats | 1 min | sys.dm_os_sys_memory + memory counters |
| memory_grant_stats | 1 min | sys.dm_exec_query_memory_grants |
| tempdb_stats | 1 min | sys.dm_db_file_space_usage |
| perfmon_stats | 1 min | sys.dm_os_performance_counters (deltas) |
| deadlocks | 5 min | dedicated PerformanceMonitor_Deadlock XE session (xml_deadlock_report; database_xml_deadlock_report on Azure SQL DB) |
| dmv_blocking_snapshot | 1 min | sys.dm_os_waiting_tasks +
Truncated for display — read the full file on GitHub.
Related Skills
claude-mem
94.4kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
84.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.4kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.0k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
