pgwatch
PostgreSQL Monitoring Tool
pgwatch is a metrics collector and visualization solution for PostgreSQL databases. It was developed by CYBERTEC. This flexible, self-contained PostgreSQL monitoring tool brings your database monitoring to the next level.

How it works
Although there are many PostgreSQL monitoring solutions, most of them are too complex to set up, and too inflexible – they do not allow you to extend their functionality on your own. pgwatch changes all that by providing high flexibility, and by focusing solely on metrics gathering. The presentation side is left to the best dashboarding tool available.
pgwatch works as a remote metrics-gathering daemon, periodically connecting to the database as a normal user would, and reading out metrics provided by the Postgres statistics subsystem. This has the advantage that you don’t need any special user rights and you don’t have to install any extensions on the database server itself, making use in restricted environments (e.g. AWS RDS) possible.
pgwatch works as a remote metrics-gathering daemon, periodically connecting to the database as a normal user would, and reading out metrics provided by the Postgres statistics subsystem. This has the advantage that you don’t need any special user rights and you don’t have to install any extensions on the database server itself, making use in restricted environments (e.g. AWS RDS) possible.
Main features
Although there are many PostgreSQL monitoring solutions, most of them are too complex to set up, and too inflexible.
1-minute installation with Docker (custom installations still possible)
Superb overview of all database activities on a single page
Easy extensibility by defining metrics in pure SQL
server log error monitoring (when installed on DB server)
Intuitive metrics presentation using the Grafana dashboarding engine. Users can create their own graphs (in addition to predefined ones) with just a couple of clicks
Optional alerting (Mail, Slack, PagerDuty) provided by Grafana
Open Source software – free to extend
PostgreSQL versions 14+ supported
More details
• Built in web-based management interface for managing monitored databases and metrics
• Many options for metrics storage – PostgreSQL, Prometheus, JSON File, and RPC
• The WebUI allows you to control presets definitions and view logs
Visit pgwat.ch for further information, our GitHub page for downloading, or read below for more details about pgwatch for enterprise-grade solutions.
pgwatch: PostgreSQL Monitoring Tool at Scale
We’ve built pgwatch with scale-up in mind – it’s perfect for monitoring large infrastructures. If you represent a large-scale enterprise, pgwatch is the right monitoring solution for you.
“pgwatch can be run for thousands of systems”
We have tested pgwatch on large-scale systems and have gathered a large amount of field experience with it. If you want to monitor thousands of systems, pgwatch is certainly the tool you should use. If you want to use pgwatch for your setup, get in touch with us to find out more.
Contact Us“pgwatch can be run for thousands of systems”
We have tested pgwatch on large-scale systems and have gathered a large amount of field experience with it. If you want to monitor thousands of systems, pgwatch is certainly the tool you should use. If you want to use pgwatch for your setup, get in touch with us to find out more.
pgwatch quickstart guide:
1. Decide which metrics storage engine you want to use - cybertecpostgresql/pgwatch-demo uses PostgreSQL. When only Prometheus sink is used (exposing a port for remote scraping), one should use the slimmer cybertecpostgresql/pgwatch image which doesn't have any built in databases.
2. Find the latest pgwatch release version by going to the project's GitHub Releases page or use the public API with something like that: curl -so- https://api.github.com/repos/cybertec-postgresql/pgwatch/releases/latest | jq .tag_name | grep -oE '[0-9.]+'
3. Pull the image with curl -so- https://api.github.com/repos/cybertec-postgresql/pgwatch/releases/latest | jq .tag_name | grep -oE '[0-9.]+'
4. Run the Docker image, exposing minimally the Grafana port served on port 3000 internally. In a relatively secure environment you'd usually also include the administrative web UI served on port 8080: docker run -d --restart=unless-stopped -p 3000:3000 -p 8080:8080 \ --name pw3 cybertecpostgresql/pgwatch-demo:X.Y.Z
5. ENJOY!
2. Find the latest pgwatch release version by going to the project's GitHub Releases page or use the public API with something like that: curl -so- https://api.github.com/repos/cybertec-postgresql/pgwatch/releases/latest | jq .tag_name | grep -oE '[0-9.]+'
3. Pull the image with curl -so- https://api.github.com/repos/cybertec-postgresql/pgwatch/releases/latest | jq .tag_name | grep -oE '[0-9.]+'
4. Run the Docker image, exposing minimally the Grafana port served on port 3000 internally. In a relatively secure environment you'd usually also include the administrative web UI served on port 8080: docker run -d --restart=unless-stopped -p 3000:3000 -p 8080:8080 \ --name pw3 cybertecpostgresql/pgwatch-demo:X.Y.Z
5. ENJOY!
For additional support, please watch this video:
For more information, find the custom installation guide here.
Need further assistance? Contact us!
Contact UsNeed further assistance? Contact us!
pgwatch download
The newest version of pgwatch can be downloaded directly from our GitHub page.
Get pgwatch from GithubGet in contact with us
Start your personal scalable DBaaS solution.
We’re here to assist you and would be happy to provide tailored support for your needs. Please share a few details about yourself and your company
below, and a member of our team will reach out to you shortly.
We’re here to assist you and would be happy to provide tailored support for your needs. Please share a few details about yourself and your company
below, and a member of our team will reach out to you shortly.
FAQs
pgwatch is a monitoring system focused only on PostgreSQL. Since it understands PostgreSQL deeply, it helps teams track performance, workload behaviour, replication status, query load, and internal activity with more accuracy than general monitoring systems. Companies choose it when the stability and speed of their PostgreSQL databases directly affect revenue, customer experience, or service uptime.
Yes. pgwatch works with single instances, high availability clusters, and pooled environments that use PgBouncer or Pgpool II. It also supports cluster managers such as Patroni. This makes it suitable for both small applications and large multi node enterprise setups.
A lightweight collector connects to the target PostgreSQL systems and runs metric queries at defined intervals. The data can be stored in PostgreSQL, TimescaleDB, Prometheus, or a custom backend. Dashboards are available for visualisation, trend analysis, and operational review. This gives teams a clear picture of performance issues, load patterns, and potential risks.
Yes. Every metric is an SQL query, so teams can create their own metrics based on application behaviour, table health, slow operations, or any business related signal stored in the database. These custom metrics can be added through the configuration database or YAML files and can appear on dashboards like any other metric.
pgwatch can read database logs and highlight errors and warnings by category or severity. This helps teams detect application failures, authentication problems, slow query spikes, or unexpected behaviour early. In environments managed by Patroni, pgwatch can also detect new nodes automatically when the cluster topology changes.
Yes. Since it supports scalable storage engines such as TimescaleDB and Prometheus, organisations can keep long term performance data for audits, compliance, and historical trend evaluation. It can be deployed fully on premises, which is important for companies with strict data residency rules.
The team may need to map existing alerts to pgwatch metrics or create new ones to match current performance targets. Organisations using cloud managed PostgreSQL services should be aware that some operating system level metrics may not be available, depending on platform restrictions. For large dynamic clusters, proper configuration of automatic node discovery helps ensure that every node remains under monitoring as the environment changes.
