pgflux
is a Python utility to send PostgreSQL metrics to InfluxDB. The
drivers when developing this tool were:
- Make it easy to extend: Authoring new queries should only require
PostgreSQL knowledge to allow non-devs to easily add/fix/modify the collected
metrics.
pgflux
does not require you to know Python, InfluxDB nor Grafana to work on the provided SQL queries. - Be independently runnable:
pgflux
should be runnable without first setting up a hugely complex dev-environment. All that is needed is a Python environment and a PostgreSQL server (a Dockerfile for testing is supplied for the latter).
It enables Grafana visualisations as seen in the screenshots below:
The project can be installed directly via pip
:
python3 -m venv /path/to/virtual-env /path/to/virtual-env/bin/pip install pgflux
The use of a virtual environment is optional, but recommended.
See https://post-luxembourg.github.io/pgflux/usage.html
For detailed instructions, see https://post-luxembourg.github.io/pgflux/development.html
This project uses fabric
as task runner (see https://fabfile.org). To
install it use either pipx install fabric
(recommended) or, if you don't
have pipx
: pip install --user fabric
.
Listing all available development tasks:
fab -l
To set up or refresh the development environment:
fab develop
Run PostgreSQL, InfluxDB & Grafana containers (requires
docker-compose
):fab run-dev-containers
Run the tests:
fab test