We want to announce that the beta release of pgwatch2 v1.9 is now available for download. This release contains previews of all features that will be available in the final release of pgwatch2 v1.9, though some details of the release could change before then.

You can find information about all of the new features and changes in pgwatch2 v1.9 within the release notes.

In the spirit of open-source software, we strongly encourage you to test the new features of pgwatch2 v1.9 on your systems to help us eliminate any bugs or other issues that may exist. While we don’t advise you to run pgwatch2 v1.9.0-beta in your production environments, we encourage you to find ways to run your typical application workloads against this beta release.

pgwatch2 v1.9 Feature Highlights

New Features

It has been a long time since our previous release. And even though pgwatch2 v1.9 is not considered a major upgrade, there are a lot of impressive changes.

First of all, we have a new maintainer for pgwatch2. That’s me, Pavlo Golub. I hope Kaarel Moppel, the author of pgwatch2, will still work on the project – but now without the extra burden of support and maintenance.

We’ve used the latest Go v1.17 for all binaries and Docker images.

We now have full PostgreSQL v14 support and support for the latest Grafana v8 visualization solution. For those who still use the previous versions of Grafana, we also added support for v7 and v6 dashboards.

To improve our CI/CD experience and automate some tasks, we’ve introduced three GitHub Actions in a series of planned workflows:

  • Release
  • CodeQL analysis
  • Close Stale Issues and PRs
  • The Release workflow will automatically build all artifacts, including Docker images, and publish the release.

CodeQL analysis stands guard over code security. It will thoroughly investigate each pull request and each push.

It’s not a surprise that many issues are created for open-source projects which never get a follow-up contribution from the topic starter. We have enabled a Close Stale Issues and PRs workflow to keep up with the continuous storm of new issues and PRs. It will mark issues and PRs with no activity as stale, and eventually close them.

We added many more cool features, like new gatherer options, e.g. --try-create-listed-exts-if-missing. Or like new metrics for monitoring “wait_events”.

Performance

We provided many code modifications to improve performance.

Prometheus-mode monitoring is now one of the essential optimizations.

We rewrote the gatherer code to skip tables without waiting for AccessExclusiveLock.

We’ve added a new --min-db-size-mb flag to ignore “empty” databases. It allows the gatherer to skip measures fetching for empty or for small-sized databases.

pgwatch2 v1.9 comes with fully redesigned connection pooling, which will hardly rely on sqlx.DB from now on.

Timeouts have been greatly increased for database and table size fetching – to 5min.

Metric fetching was made less disruptive by setting a short lock_timeout.

The new --no-helper-functions parameter allows you to skip metric definitions which rely on helper functions. This mode makes working with managed instances more fluid, with fewer errors in logs. It uses the SU or superuser version of a metric immediately when available, and not after the first failed call.

The new --emergency-pause-triggerfile flag aims to quickly shut down collectors. The main idea of the feature is to quickly free monitored databases and networks of any extra “monitoring effect” load.

Additional Features

You’ll find many other new features and improvements in pgwatch2 v1.9. Some may be more important to your use case than those highlighted above. Please see the documentation for the latest information.

Testing for Bugs & Compatibility

The stability of each pgwatch2 v1.9 release significantly depends on the community’s effort to test the upcoming version with your workloads and testing tools, in order to find bugs and regressions before pgwatch2 v1.9 becomes generally available. As this is a Beta, minor changes and bug fixes are still possible. Your feedback and testing will help determine the final tweaks on the new features, so please test as soon as possible. The quality of user testing helps decide when we can make an official release.

A list of open issues is publicly available in the pgwatch2 repository. You can report bugs using this form: https://github.com/cybertec-postgresql/pgwatch2/issues.