Implementing Database Monitoring

1. Monitoring Database Health Metrics

CategoryMetric
ResourceCPU, memory, disk, network I/O
ThroughputQPS, TPS, MB/s
Latencyp50/p95/p99 query time
ConnectionsActive, idle, max, waiting
CacheBuffer hit ratio
LocksWait count, deadlocks
ErrorsFailed queries, retried txs

2. Tracking Query Performance

SourceDetail
pg_stat_statementsTop by total/avg time, calls, rows
MySQL Performance Schemaevents_statements_summary_by_digest
Slow query logPer-query above threshold
APM (Datadog/New Relic)Trace + DB span

3. Monitoring Lock and Wait Statistics

DBQuery
Postgrespg_locks, pg_stat_activity wait_event
MySQLperformance_schema.data_locks
SQL Serversys.dm_tran_locks, sys.dm_os_waiting_tasks
OracleV$LOCK, V$SESSION_WAIT

4. Tracking Connection Utilization

MetricThreshold
connections_in_use / maxAlert at 80%
idle_in_transactionIndicates app bugs
Acquire wait timeIndicates undersized pool
Connection rateSpike = pool churn

5. Monitoring Disk Space Usage

WhatDetail
Data directoryUsed / available
WAL / log directoryGrowth rate
Per-table sizeFind runaway growth
Bloat (PG)pg_stat_user_tables n_dead_tup
Replication slotsInactive slots retain WAL → fill disk

6. Setting Up Alerting Thresholds

AlertThreshold
CPU sustained> 80% for 5 min
Free disk< 20% remaining
Replication lag> 30 sec
Connections> 80% of max
DeadlocksRate jump
Slow query p99> SLO target

7. Using Database Dashboards

ToolDetail
Grafana + PrometheusOpen-source standard
pganalyze, percona PMMDB-specific deep dives
Datadog / New Relic / DynatraceSaaS APM + DB
CloudWatch / Azure MonitorManaged DB metrics

8. Implementing Log Aggregation

ComponentDetail
ShipperFluent Bit, Vector, Filebeat
StoreElasticsearch, Loki, CloudWatch Logs
ParseStructured logs (JSON) preferred
RetentionHot 7d, warm 30d, cold longer
CorrelateTrace IDs across app + DB

9. Tracking Replication Lag Metrics

MetricDetail
Bytes lagpg_wal_lsn_diff(primary_lsn, replay_lsn)
Time lagSeconds behind primary
Apply lag vs flush lagWAL received vs replayed
Per-replicaTrack each replica separately

10. Establishing Monitoring Baselines

StepDetail
Capture 2–4 weeksCover all business cycles
Compute percentilesUse p50/p95/p99 baselines
Seasonal awarenessTime-of-day, weekend patterns
Anomaly detectionForecast bands, ML detectors
Refresh quarterlyAfter deploys + traffic changes