Sitelet https://github.com/cybertec-postgresql/pgwatch/releases
Skip to content

Releases: cybertec-postgresql/pgwatch

v6.0.0

Choose a tag to compare

@pashagolub pashagolub released this 15 Sep 09:42
7dbba6b

pgwatch v6 is here 🎉

The biggest release since v5 — full Postgres v19 support, a new source type, fully modernized dashboards, and a reaper core built for reliability at scale.

The big three

🔌 Prometheus as a source. pgwatch can now scrape your existing Prometheus endpoints (patroni, postgres_exporter, etc.) directly — no need to stand up native connections everywhere. Mix and match Postgres and Prometheus sources in the same setup.

📊 Dashboards, reimagined. Every dashboard has been rebuilt on Grafana's new v13 schema with a unified row layout — cleaner, faster, and wall-display ready. Prometheus now gets first-class dashboard parity with Postgres, including brand-new Lock Details, Server Log Events, and Stored Procedures views.

⚙️ A reaper that doesn't choke under load. The collection core no longer runs one goroutine per (source × metric) — it runs one per source, waking on a shared tick and sending every due metric in a single round-trip. On a six-source test run that removes 414 goroutines, cuts steady-state allocation by 8–9×, and drops GC CPU by roughly 3×. Around it, the per-source sweep in the main loop is now bounded-parallel (32 at a time) on every refresh, every database round-trip has a deadline, and continuous discovery is served from a last-known-good cache when it fails. Translation: one wedged database can no longer stall the fleet, and a restart is no longer the fix.

Also worth knowing

  • WebUI modernized to React 19 + MUI v9
  • New metrics: recovery, stat_lock, settings_num, autovacuum_scores, plus stats_reset tracking across table/index/sproc stats
  • Fixed: graceful sink outage handling, SourceReaper deadlocks, NaN/Inf sanitization in measurements, replication lag panel bugs
  • Security: JWT secret is now randomly generated at startup, not hardcoded
  • Postgres support bumped to v19
  • New Task build tool support for contributors

What's Changed

New Contributors

Full Changelog: v5.3.0...v6.0.0

What to do next?

v5.3.0

Choose a tag to compare

@pashagolub pashagolub released this 30 Jul 15:10

What's Changed

[-] use random JWT secret instead of hardcoded key (#1475)

Important

The Web UI/API signed and validated all JWTs with a hardcoded key published in the source, letting anyone forge accepted tokens and bypass authentication.

Tokens now rotate on every restart, invalidating leaked ones.

Full Changelog: v5.2.0...v5.3.0

What to do next?

v4.2.0

Choose a tag to compare

@pashagolub pashagolub released this 30 Jul 15:14

What's Changed

[-] fix pgwatch_instance_up metric for down sources, closes #1158 (#1162)
[-] use random JWT secret instead of hardcoded key (#1475)

Important

The Web UI/API signed and validated all JWTs with a hardcoded key published in the source, letting anyone forge accepted tokens and bypass authentication.

Tokens now rotate on every restart, invalidating leaked ones.

Full Changelog: v4.1.0...v4.2.0

What to do next?

v5.2.0

Choose a tag to compare

@pashagolub pashagolub released this 04 May 11:14
8a90e89

What's Changed

Full Changelog: v5.1.0...v5.2.0

What to do next?

v5.1.0

Choose a tag to compare

@pashagolub pashagolub released this 17 Mar 11:31
5719276

What's Changed

New Contributors

Full Changelog: v5.0.0...v5.1.0

What to do next?

v5.0.0

Choose a tag to compare

@pashagolub pashagolub released this 25 Feb 15:07
462eb82

pgwatch v5 introduces a major update to the PostgreSQL monitoring tool, focusing on enhanced stability, new features, and modernization. Key highlights include:

Major Changes

Schema migration support for PostgreSQL sinks, module version bump to v5, and migration of the web UI from react-scripts to Vite for improved performance and build efficiency.

New Features

Added metrics like stat_statements_jit, new Grafana panels (e.g., "Tables with the oldest non-frozen xid" and "Total index size"), support for reverse proxies on different paths, and functions like admin.maintain_unique_sources() for PostgreSQL sinks. Also includes graceful fallback for local log parsing and a new testutil package.

Improvements

Enhanced dashboards (e.g., Index Overview, Health Check), deprecation of old Stats Statements dashboards, refactoring of recommendation metrics, and better handling of configurations and logs. Minimum retention interval set to 1 hour.

Bug Fixes

Resolved issues with panel queries, data races in Prometheus sink, source config updates, logging, and more. Fixed circular dependencies in config upgrades and improved partition creation logic.

For full details, see the full changelog below.

What's Changed

New Contributors

Full Changelog: v4.1.0...v5.0.0

v4.1.0

Choose a tag to compare

@pashagolub pashagolub released this 26 Nov 13:53
2214bad

Warning

pgwatch v4.1 introduced a breaking change to --retention parameter. It must be a valid Postgres interval now instead of integer value used before. So if you used, for example, --retention=90 to keep measurements for 90 days, now you must use --retention="90 days" value!

What's Changed

New Contributors

Full Changelog: v4.0.0...v4.1.0

What to do next?

v4.0.0

Choose a tag to compare

@pashagolub pashagolub released this 24 Sep 13:42
c3590c2

What's New

This major release introduces several significant updates, new features, bug fixes, and enhancements

Important Changes

PostgreSQL 18 Metrics

  • total_XXX_time columns are added to table_stats metric;
  • read_bytes, write_bytes, and extend_bytes are added to stat_io metric;
  • use pg_stat_io for wal_stats metric;
  • use pg_ls_archive_statusdir() in archiver_pending_count metric;
  • num_done and slru_written columns are added to checkpointer metric;
  • parallel_workers_to_launch and parallel_workers_launched columns are added to db_stats metric.

Grafana Dashboards

  • New Grafana v12 dashboards have been added for both PostgreSQL and Prometheus sinks;
  • Grafana v10 support is discontinued;
  • New "Global Database Overview" dashboard with 26 panels, including new panels for replication, connections, and index usage (inspired by postgres.ai);
  • New "Database Overview" now has 21 panels with time lag support and improved visualizations;
  • New "Query Performance Analysis" dashboard with enhanced table with 17 metrics and 8 visualization panels (inspired by postgres.ai);
  • New "Tables Overview" dashboard providing insights into table sizes, bloat, and index usage with treemap visualizations panels.

Metrics

  • Realtime metrics have been deprecated and removed from the system.
  • Metrics can now be loaded from a specified folder, allowing for better organization and management of metric definitions.

Sinks

  • gRPC Sink Enhancements: Basic authentication support has been added to the gRPC sink, along with improved documentation for its usage.

Development and Contribution

  • The development experience with Docker Compose has been enhanced, making it easier to set up and manage the environment.
  • A new repository, pgwatch-contrib, has been created to host additional contributions and extensions for pgwatch from the community. The rpc subdirectory contains sample gRPC sinks implementations.

Changelog

New Contributors

Full Changelog: v3.7.0...v4.0.0

v3.7.0

Choose a tag to compare

@pashagolub pashagolub released this 24 Jul 12:47

What's Changed

  • [-] monitor all sources if --group cmdopt is omitted, fixes #843 (#847)
  • [*] improve stat-statements Grafana v11 Postgres dashboards by @f9n in #846

Full Changelog: v3.6.0...v3.7.0

What to do next?

v3.6.0

Choose a tag to compare

@pashagolub pashagolub released this 16 Jul 09:05
9ced8ec

What's Changed

  • [+] add "default" group processing by @pashagolub in #798
  • [+] add measurements written log message to RPC sink by @0xgouda in #829
  • [+] add TLS encryption to RPC channel by @0xgouda in #796
  • [+] bump go.etcd.io/etcd/v3 from 3.6.0 to 3.6.2 by @dependabot[bot] in #789 #837
  • [+] bump pashagolub/pgxmock/v4 from 4.7.0 to 4.8.0 by @dependabot[bot] in #806
  • [+] bump shirou/gopsutil/v4 from 4.25.5 to 4.25.6 by @dependabot[bot] in #827
  • [+] bump testcontainers/testcontainers-go from 0.37.0 to 0.38.0 by @dependabot[bot] in #839
  • [+] optimize the size of MeasurementEnvelope by @pashagolub in #793
  • [*] exclude MetricDef from MeasurementEnvelope by @pashagolub in #787
  • [*] improve --batching-delay parameter description, closes #821 by @pashagolub in #828
  • [-] fix --group command-line option, closes #792 by @pashagolub in #794
  • [-] fix instance_up metric, closes #759 by @pashagolub in #791
  • [-] fix master only postgres source shutdown due to catched InRecovery state logic by @0xgouda in #813
  • [-] fix Reap() method to update Recovery cache after processing the previous value by @0xgouda in #815
  • [-] fix Reap() to not require Source.MinDbSizeMb to be >= 8 by @0xgouda in #818
  • [-] fix Source.Equal() presets comparison, closes #830 by @0xgouda in #831
  • [-] fix typo in reapMetricMeasurements() log message by @0xgouda in #807
  • [-] fix JSONB null casting errors in postgres/v11 dashboards by @f9n in #838
  • [-] fix JSONB null casting errors in "Top Tables" and "Health-check" dashboards by @kmoppel in #833
  • [-] improve Prometheus scrapping, fixes #749 by @pashagolub in #790
  • [-] remove unnecessary check from FetchMetric() by @0xgouda in #808

New Contributors

  • @f9n made their first contribution in #838

Full Changelog: v3.5.0...v3.6.0

What to do next?