PostgreSQL
Setup
To enable PostgreSQL for the Prometheus metrics you can use the Prometheus exporter for PostgreSQL Here
You can enable exporter using docker to a running PostgreSQL DB instance with the following command
1docker run \ 2 --net=host \ 3 -e DATA_SOURCE_NAME="postgresql://postgres:password@localhost:5432/postgres?sslmode=disable" \ 4 quay.io/prometheuscommunity/postgres-exporter
Once it is attached to the DB instance check your Prometheus for the following metrics to verify it is attached properly
pg_stat_database_numbackends
pg_stat_database_xact_commit
Metrics
Requests & Errors
Metric | Key Performance Indicator (KPI) |
Requests
| Request Rate
|
Errors
| Error Ratio
|
Latency
| Latency Average
|
Resource
Metric | Key Performance Indicator (KPI) |
Connections
| Connections Usage
Connection usage against limit
|
Database Disk Usage
| Database disk usage limit
|
Alerts
KPI | Alert |
Request Rate | RequestRateAnomaly |
Error Ratio | ErrorRatioBreach and ErrorBuildup based on an availability SLO of |
Latency Average | LatencyAverageBreach and LatencyAverageAnomaly |
Database Disk Usage | ResourceMayExhaust |
Connections | ResourceRateAnomaly and Saturation with severity level of warning and critical when memory utilization exceeds 80% and 90% respectively |
Failure Alerts
PostgresIsDown
Postgresql is not running
pg_up != 1
PostgresGotRestarted
Postgresql server restarted
time() - pg_postmaster_start_time_seconds < 60
PostgresHasHighDeadLocks
Postgresql is having too many deadlocks
rate(pg_stat_database_deadlocks[1m]) * 60 > 5
PostgresHasExporterErrors
Exporter is not running properly
pg_exporter_last_scrape_error > 0
Dashboards
Following dashboard will show key metrics like
Uptime
Transactions
Active Session
Max Connection
You can configure the following Dashboard as a custom dashboard in case you would like to get very detailed information for each PostgreSQL Prometheus metric.
Last updated