Prometheus remote storage adapter for PostgreSQL
With this remote storage adapter, Prometheus can use PostgreSQL as a long-term store for time-series metrics.
Related packages to install:
- pg_prometheus extension for PostgreSQL (required)
- TimescaleDB (optional for better performance and scalability)
You can download pre-built binaries here
A docker image for the prometheus-postgreSQL storage adapter is available on Docker Hub at timescale/prometheus-postgresql-adapter.
The easiest way to use this image is in conjunction with the
docker image provided by Timescale.
This image packages PostgreSQL,
pg_prometheus, and TimescaleDB together in one
To run this image use:
docker run --name pg_prometheus -d -p 5432:5432 timescale/pg_prometheus:master postgres \ -csynchronous_commit=off
Then, start the prometheus-postgreSQL storage adapter using:
docker run --name prometheus_postgresql_adapter --link pg_prometheus -d -p 9201:9201 \ timescale/prometheus-postgresql-adapter:master \ -pg.host=pg_prometheus \ -pg.prometheus-log-samples
Finally, you can start Prometheus with:
docker run -p 9090:9090 --link prometheus_postgresql_adapter -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
prometheus.yml file can be found in
sample-docker-prometheus.yml in this repository).
Configuring Prometheus to use this remote storage adapter
You must tell prometheus to use this remote storage adapter by adding the
following lines to
remote_write: - url: "http://<adapter-address>:9201/write" remote_read: - url: "http://<adapter-address>:9201/read"
Before building, make sure the following prerequisites are installed:
Then build as follows:
# Install dependencies (only required once) dep ensure # Build binary make
Building new Docker images
# Build Docker image make docker-image # Push to Docker registry (requires permission) make docker-push ORGANIZATION=myorg
We welcome contributions to this adaptor, which like TimescaleDB is released under the Apache2 Open Source License. The same Contributors Agreement applies; please sign the Contributor License Agreement (CLA) if you're a new contributor.