95 lines
9.7 KiB
Plaintext
95 lines
9.7 KiB
Plaintext
| 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 |
|