For this example we will use Docker compose to be able to run all the services.
1.Docker Compose
version: "3.9"
services:
grafana:
image: grafana/grafana
ports:
- 3000:3000
prometheus:
image: prom/prometheus
ports:
- 9090:9090
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
postgres:
image: postgres:12
ports:
- 5432:5432
volumes:
- ./backup:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: postgrespassword
POSTGRES_DB: shop
postgres-exporter:
image: prometheuscommunity/postgres-exporter
ports:
- 9187:9187
environment:
DATA_SOURCE_NAME: "postgresql://postgres:postgrespassword@postgres:5432/shop?sslmode=disable"
links:
- postgres
- prometheus
2.Prometheus File Settings (prometheus.yml)
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ["localhost:9090"]
- job_name: postgres-exporter
static_configs:
- targets: ["postgres-exporter:9187"]
3.Run Docker Compose
docker-compose up
4.Check status of Prometheus and PostgreSQL Exporter
http://localhost:9090/targets
5.Visit Grafana Dashboard
Default
User: admin
Password: admin
http://localhost:3000
6.Add data source
Save and test
7.Import PostgreSQL Dashboard for Prometheus
For this we will use a Dashboard created by the community
https://grafana.com/grafana/dashboards/9628
Code: 9628
9.Dashboard
Code of example (GitHub Gist)
https://gist.github.com/nelsoncode019/1c0f7930aab755223de7f971f3aca94b
Top comments (1)
Get "postgres-exporter:9187/metrics": dial tcp: lookup postgres-exporter on 127.0.0.11:53: no such host