← All databases
AZ

Azure SQL monitoring

Azure SQL Database and Azure SQL Managed Instance are monitored agentlessly in ClusterEye — nothing is installed on the Azure side, and the connection is made over TDS from the ClusterEye API server. The platform is auto-detected and collectors adapt to the capabilities they find: DTU/vCore utilisation, Query Store, wait statistics, blocking and elastic pool pressure. sysadmin is never required.

AgentlessDefault port: 1433Versions: Database + Managed Instance

What we read

sys.dm_db_resource_stats — DTU/vCore, CPU, data I/O and log write percentages
Query Store views — query and plan history, regression detection
sys.dm_os_wait_stats and database-scoped wait views — including Azure log governor waits
sys.dm_exec_requests and dm_exec_sessions — active sessions and blocking chains
sys.dm_db_index_usage_stats and the missing index DMVs — index usage and advice
storage consumption and proximity to limits
Elastic pool views — resource sharing at pool level
Extended Events — deadlock graphs via a database-scoped XE session

What it does specifically for Azure SQL

Headroom and saturation model

CPU, workers, sessions, data I/O and log write are each tracked as their own dimension, measuring which one is approaching its limit and when the service tier will stop being enough.

Query Store based query intelligence

Regressed plans are identified from query and plan history, and the most expensive queries ranked by resource consumption.

Filtering out platform noise

Azure's own background sessions (NodeAgent, TdService, AutomaticTuningAgent) are separated from your workload — otherwise every database permanently reports a long-running query.

Storage growth forecasting

Data and log space usage is tracked over time and the date of hitting the limit is projected.

Minimum privileges required

The baseline is read-only and safe to grant in production.

sql
-- Azure SQL Database: a contained user per monitored database
--   (or a login on the logical server's master, then a user in each database)
CREATE USER clustereye WITH PASSWORD = '<strong-password>';

GRANT VIEW DATABASE STATE             TO clustereye;  -- sessions, waits, blocking, index stats, Query Store
GRANT VIEW DATABASE PERFORMANCE STATE TO clustereye;  -- query performance DMVs
GRANT VIEW DEFINITION                 TO clustereye;  -- object metadata for query/index context

-- Azure SQL Managed Instance: the same set at server scope
CREATE LOGIN clustereye WITH PASSWORD = '<strong-password>';
GRANT VIEW SERVER STATE   TO clustereye;   -- implies VIEW DATABASE STATE everywhere
GRANT VIEW ANY DEFINITION TO clustereye;

Prerequisites

·Agentless: the connection is made from the ClusterEye API server; nothing is installed on the Azure side.
·Allow the API server's egress IP in the Azure SQL firewall, or use a private endpoint.
·Query Store is on by default on Azure SQL Database; on Managed Instance enable it per database.
·sysadmin is never required — each capability unlocks from the permission it holds, and the UI names the exact GRANT when one is missing.
·Serverless tier auto-pause: the first connection to a paused database triggers a resume and can take about a minute.
Install and privilege details →

Frequently asked questions

Nothing. Azure SQL is monitored agentlessly; the connection is made from the ClusterEye API server over 1433/tcp with TLS. You only need to allow that server's egress IP in the Azure SQL firewall, or use a private endpoint.

Start monitoring your Azure SQL estate in five minutes.

One command to install. Talk to us if you have questions.

Book a live demoInstall and privilege details