Monitor and optimize your PostgreSQL databases
DB24x7 provides comprehensive monitoring for PostgreSQL databases, including query performance analysis, slow query detection, index recommendations, and real-time metrics tracking.
Supported Versions
PostgreSQL 12+
Real-time Monitoring
Live query tracking
Query Analysis
Performance insights
Cloud Support
AWS RDS, Azure, GCP
pg_stat_statements extension enabledThe pg_stat_statements extension is required for query performance tracking.
Step 1: Edit postgresql.conf
# Add to postgresql.conf shared_preload_libraries = 'pg_stat_statements' pg_stat_statements.track = all pg_stat_statements.max = 10000
Step 2: Restart PostgreSQL
sudo systemctl restart postgresql
Step 3: Create the extension
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
Create a dedicated user with minimal required permissions for monitoring.
-- Create monitoring user CREATE USER db24x7_monitor WITH PASSWORD 'your_secure_password'; -- Grant connection privileges GRANT CONNECT ON DATABASE your_database TO db24x7_monitor; -- Grant usage on schema GRANT USAGE ON SCHEMA public TO db24x7_monitor; -- Grant select on system catalogs and statistics views GRANT pg_read_all_stats TO db24x7_monitor; -- Allow reading pg_stat_statements GRANT EXECUTE ON FUNCTION pg_stat_statements_reset() TO db24x7_monitor; -- For PostgreSQL 14+, grant monitoring role GRANT pg_monitor TO db24x7_monitor;
Note
For PostgreSQL versions below 14, use pg_read_all_stats instead of pg_monitor.
Use the following connection string format to connect DB24x7 to your PostgreSQL database:
Standard Connection String
postgresql://db24x7_monitor:your_secure_password@hostname:5432/database_name?sslmode=require
AWS RDS Connection String
postgresql://db24x7_monitor:password@mydb.abc123.us-east-1.rds.amazonaws.com:5432/postgres?sslmode=require
Connection Parameters
| hostname | Database server address |
| 5432 | Default PostgreSQL port |
| sslmode | require, verify-ca, or verify-full |
| connect_timeout | Connection timeout in seconds |
If you cannot connect to PostgreSQL, verify:
pg_hba.conf allows connections from DB24x7 IPlisten_addresses in postgresql.confIf the extension is not working:
-- Verify extension is installed SELECT * FROM pg_extension WHERE extname = 'pg_stat_statements'; -- Check if module is loaded SHOW shared_preload_libraries; -- Verify statistics are being collected SELECT count(*) FROM pg_stat_statements;
Verify the monitoring user has all required permissions:
-- Check user roles
SELECT rolname, rolsuper, rolinherit, rolcreaterole
FROM pg_roles
WHERE rolname = 'db24x7_monitor';
-- Verify pg_monitor membership (PostgreSQL 14+)
SELECT pg_has_role('db24x7_monitor', 'pg_monitor', 'member');Once your PostgreSQL database is connected, you can: