What we read
pg_stat_activity — sessions, wait events and blocking chains
pg_stat_statements — per-query timing and call statistics (once enabled through azure.extensions)
pg_stat_user_tables / user_indexes — dead tuple accumulation, vacuum history and index usage
pg_stat_replication — replication lag and replica state
database and table sizes — storage consumption and the growth curve
transaction ID age — distance to wraparound and whether autovacuum is keeping up
pg_settings — server parameters and the limits Azure applies
What it does specifically for Azure PostgreSQL
Resource headroom analysis
How much room is left on CPU, memory and connections for your chosen compute tier is measured, so a scale-up decision comes with a justification.
Storage growth forecasting
Storage consumption is tracked over time and the date of reaching the configured limit projected — which matters especially on Flexible Server, where storage cannot be shrunk.
Autovacuum and wraparound tracking
Dead tuple ratio, whether autovacuum is keeping up, and distance to transaction ID wraparound are tracked, with early warning because manual intervention is limited on a managed service.
Wait profile and blocking
Wait events are classified and blocking chains resolved, showing where the bottleneck is from inside the database when host metrics are out of reach.
Minimum privileges required
The baseline is read-only and safe to grant in production.
Prerequisites
·Agentless: the connection is made from the ClusterEye API server; Flexible Server is supported.
·TLS is mandatory (sslmode=require). Requires a firewall rule or private access (VNet).
·For query intelligence: add pg_stat_statements to the azure.extensions server parameter, then run CREATE EXTENSION pg_stat_statements in each database.
·If the extension is blocked by the Azure allowlist, ClusterEye reports that as its own distinct state and tells you what to do.