| 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)