| Area | What to show | Why it matters | | -------------------- | -------------------------------------------- | ------------------------------------------- | | Node status | Up/down, PostgreSQL service state, uptime | Tells you whether the node is reachable | | CPU | Current %, load average | Detects compute saturation | | Memory | Used/free RAM, swap | Finds memory pressure | | Disk | Used %, free GB, IOPS, read/write latency | Disk issues can kill DB performance | | Network | RX/TX, latency, packet loss | Important for distributed replication | | Connections | Active, idle, total, max connections | Prevents connection exhaustion | | Sessions | Current sessions, user, DB, client IP | Shows who is connected | | Transactions | TPS, commits, rollbacks | Measures workload and failures | | Query performance | Avg query time, slow queries, top queries | Finds performance bottlenecks | | Long-running queries | Query, PID, runtime, user | Long queries often cause locks/bloat | | Locks | Waiting locks, blocking PID, blocked query | Critical for troubleshooting stalls | | Deadlocks | Count and recent deadlocks | Shows transaction contention | | Cache | Buffer cache hit ratio | Indicates memory efficiency | | Tables | Size, rows, scans, inserts, updates, deletes | Shows table activity | | Indexes | Usage, unused indexes, index size | Helps optimize queries/storage | | WAL | WAL generated, retained, archived | Important for replication and recovery | | Checkpoints | Checkpoint frequency/duration | Too many checkpoints hurt performance | | Vacuum | Last vacuum/autovacuum, failures | Prevents table bloat | | Analyze | Last analyze, stats freshness | Needed for query planner accuracy | | Bloat | Table/index bloat | Excess bloat wastes space and slows queries | | Replication | Status, lag, slot status | Essential for HA/multi-master | | Replication slots | Active/inactive, retained WAL | Inactive slots can fill disk | | Backup | Last backup, status, duration | Tells you whether recovery is possible | | Disk growth | Database/table/WAL growth trend | Helps capacity planning | | Errors | PostgreSQL errors/warnings | Shows immediate operational issues | | Security | Failed logins, unusual connections | Useful for security monitoring | Using my uploaded photo, show me what I would have looked like around 1985. Preserve my identity, facial features, skin tone, age, and recognizable appearance. Reimagine my hair, clothing, accessories, and surroundings with bold, unmistakably mid-1980s styling—expressive silhouettes, statement accessories, layered details, distinctive colors, and textures. Make it feel like a genuine 1985 photograph with analog grain, faded color, direct flash, and subtle softness. Add a period-accurate 1980s red-orange date stamp in the lower corner. No recognizable posters. No modern objects or text. | Tool | Best for | What it monitors | | ---------------------- | ------------------------------ | ------------------------------------------------------------ | | **pgAdmin** | PostgreSQL beginners | Sessions, queries, locks, database size, activity | | **pg_stat_activity** | PostgreSQL built-in monitoring | Active queries, idle connections, blocked sessions | | **pg_stat_statements** | SQL performance | Slow queries, execution count, execution time | | **Prometheus** | Metrics collection | CPU, memory, connections, transactions, replication metrics | | **Grafana** | Dashboards | Visualizes metrics collected by Prometheus | | **postgres_exporter** | PostgreSQL → Prometheus | DB connections, locks, transactions, cache, WAL, replication | | **pgwatch2** | PostgreSQL monitoring | PostgreSQL-specific metrics and dashboards | | **Percona PMM** | PostgreSQL/MySQL | Query performance, server health, DB metrics | | **Zabbix** | Infrastructure monitoring | Servers, databases, network, disk, CPU, alerts | | **Datadog** | Commercial monitoring | DB + server + application monitoring | | **New Relic** | Application + DB | Slow SQL, response times, application/database relationship | DASHBOARD | Metric | What it tells you | Good dashboard display | | ------------------------ | --------------------------------------------------------- | ------------------------ | | **Database Status** | PostgreSQL reachable or not | 🟢 Online / 🔴 Offline | | **Uptime** | How long PostgreSQL has been running | `12d 7h 32m` | | **Active Connections** | Connections currently executing queries | Gauge | | **Total Connections** | Connections in use | `42 / 100` | | **Connection Usage %** | How close you are to `max_connections` | Gauge / % | | **Idle Connections** | Connections sitting idle | Number | | **TPS** | Transactions per second | Time-series graph | | **Commits/sec** | Successful transaction rate | Graph | | **Rollbacks/sec** | Failed/aborted transaction rate | Graph | | **Cache Hit Ratio** | How often PostgreSQL serves data from RAM instead of disk | % | | **Query Latency** | Average query execution time | ms | | **Slow Queries** | Queries exceeding threshold, e.g. >1s | Table | | **Long Running Queries** | Queries running unusually long | Table | | **Blocked Queries** | Queries waiting on another transaction | Number/Table | | **Locks** | Current DB locks | Gauge | | **Deadlocks** | Deadlocks detected | Counter | | **Database Size** | Total database disk usage | GB | | **Table Size** | Largest tables | Bar chart | | **Index Size** | Storage consumed by indexes | GB | | **Tuple Reads / Writes** | Database activity | Graph | | **Rows Inserted/sec** | INSERT activity | Graph | | **Rows Updated/sec** | UPDATE activity | Graph | | **Rows Deleted/sec** | DELETE activity | Graph | | **Sequential Scans** | Potentially expensive full-table scans | Counter | | **Index Scans** | Index usage | Counter | | **Dead Tuples** | Rows VACUUM needs to clean | Number | | **Autovacuum Activity** | Whether cleanup is working | Status | | **WAL Generated/sec** | Write workload / replication workload | MB/s | | **WAL Size** | WAL storage usage | GB | | **Replication Lag** | Delay between nodes | ms / MB | | **Replication Status** | Whether link is healthy | 🟢 Replicating / 🔴 Down | | **Replication Slot Lag** | WAL retained because subscriber hasn't consumed it | MB | | **CPU Usage** | DB server CPU load | % | | **RAM Usage** | Server memory pressure | % | | **Disk Usage** | Remaining DB server disk | % | | **Disk I/O** | Storage read/write activity | MB/s | SPOKE (LIMIT) CONNECTIVE (LIMIT) PGEDGE (ENTRIPRISE VS OPENSOURCE)