Overview
PostgreSQL (Postgres) is a powerful open-source relational database known for its extensibility and SQL compliance. Xitoring's PostgreSQL integration provides comprehensive monitoring of performance, connections, query statistics, and resource usage — helping you keep your databases healthy and performant.
What Can It Monitor?
- CPU — Database server CPU utilization
- Memory — RAM consumed by PostgreSQL processes
- Active Connections — Currently executing queries
- Idle Connections — Open connections waiting for queries
- Cache Hit Ratio — Percentage of reads served from shared buffers
- Total Disk Space — Storage used by databases
- Database Deadlocks — Deadlock detection count
- Active Queries / Waiting Queries — Query execution states
- Committed / Rollback Transactions — Transaction outcome rates
- Read Disk Blocks — Physical disk reads (cache misses)
- Rows Returned / Selected / Inserted / Updated / Deleted — Row-level operation rates
Prerequisites
1. Create a Monitoring User
Connect to PostgreSQL and run:
CREATE USER xitogent WITH PASSWORD 'YOUR_PASSWORD';
GRANT pg_monitor TO xitogent;
GRANT SELECT ON pg_stat_database TO xitogent;
Verify the user can connect:
psql -h localhost -U xitogent postgres -c "select * from pg_stat_database LIMIT(1);"
2. Enable Performance Tracking
Edit your postgresql.conf file:
- Linux:
/etc/postgresql/14/main/postgresql.conf - Windows:
C:\Program Files\PostgreSQL\16\data\postgresql.conf
Add or modify these settings:
track_activities = on
track_counts = on
track_io_timing = on
track_functions = all
shared_preload_libraries = 'pg_stat_statements'
Restart PostgreSQL, then enable the extension:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
Verify with:
SELECT * FROM pg_stat_statements LIMIT 1;
How to Activate the Integration
Prefer the panel? You don't need the CLI for this step. In Xitoring, open the server, go to Integrations, choose PostgreSQL, fill in the same details, and click Enable. See enabling integrations from the Xitoring panel. The CLI steps below still work if you script your setup.
Run the Xitogent CLI:
xitogent integrate
Select PostgreSQL from the list. Provide:
- Host (typically
localhost) - Port (default:
5432) - Username and password
- SSL mode
Xitogent tests the connection and completes setup automatically. Within a minute, graphs and data appear on your server page.
Supported versions: PostgreSQL 12, 13, 14, 15, 16 on both Linux and Windows.
Setting Up Triggers
Available trigger parameters:
- CPU / Memory
- Active Connections / Idle Connections
- Cache Hit Ratio
- Total Disk Space / Database Deadlocks
- Active Queries / Waiting Queries
- Committed / Rollback Transactions
- Read Disk Blocks
- Row operation rates (returned, selected, inserted, updated, deleted)
Navigate to Triggers on your server page, select PostgreSQL, choose a metric, and configure thresholds.
Tips
- Enable
pg_stat_statementsfor the most detailed query-level insights - Monitor Cache Hit Ratio — it should stay above 95% for optimal performance
- Set alerts on Deadlocks to catch concurrency issues early
- Track Idle Connections to detect connection pool leaks
- Use Rows Returned vs Rows Selected ratio to find inefficient queries