v6.0.0-beta
pgwatch v6-beta 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 Prometheud 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 core collection loop init is now parallelized, database round-trips are bounded so nothing hangs for long, and continuous discovery is cached. Translation: fewer stuck goroutines, faster restarts, better behavior under real production load.
Also worth knowing
- WebUI modernized to React 19 + MUI v9
- New metrics:
recovery,stat_lock,settings_num,autovacuum_scores, plusstats_resettracking across table/index/sproc stats - Fixed: graceful sink outage handling,
SourceReaperdeadlocks,NaN/Infsanitization 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
β οΈ It's a beta
The Prometheus source and v13 dashboard schema are new territory β please kick the tires in a non-prod environment first and file issues as you find them.
What's Changed
[!]add Prometheus exporter as a pgwatch source by @pashagolub in #1405[!]bump Postgres to v19 by @pashagolub in #1497[!]refactorreaper.Reapmain loop as parallel by @pashagolub in #1512[!]transform v13 dashboards to row layout with unified colophon by @pashagolub in #1500[!]upgradewebuito React v19, MUI v9, MUI X Data Grid v9 by @pashagolub in #1422[!]upgrade Grafana dashboards to v13 by @pashagolub in #1487[!]use bounded contexts for all database round-trips by @pashagolub in #1511[+]add "Lock details" dashboard by @pashagolub in #1498[+]add.git-blame-ignore-revsby @pashagolub in #1389[+]addautovacuum_scoresmetric by @nadashaban11 in #1403[+]addmem_exceeded_counttopg_stat_replication_slots, closes #1395 by @pashagolub in #1503[+]addrecoverymetric, closes #1394 by @pashagolub in #1490[+]addsettings_nummetric, closes #1247 by @pashagolub in #1436[+]addstat_lockmetric to report per-lock statistics, closes #1393 by @pashagolub in #1496[+]addstats_resettotable_*statsandindex_stats, closes #1396 by @pashagolub in #1502[+]addwal_fpi_bytesfield towal_statsmetric, fixes #1399 by @nadashaban11 in #1402[+]add Prometheus "Server Log Events" dashboard by @pashagolub in #1518[+]add Prometheus stored procedures dashboards by @pashagolub in #1516[+]add Prometheus variant of "Version Overview" dashboard by @pashagolub in #1514[+]add stats_reset to sproc_stats and database_conflicts metrics, closes #1397 by @pashagolub in #1501[+]add support for Task build tool by @pashagolub in #1504[+]add v13 "Health check" dashboard by @avandras in #1448[+]add v13 global DB overview dashboard by @avandras in #1454[+]bumpactions/cachefrom 5 to 6 by @dependabot[bot] in #1453[+]bumpactions/checkoutfrom 6 to 7 by @dependabot[bot] in #1447[+]bumpactions/setup-gofrom 6 to 7 by @dependabot[bot] in #1465[+]bumpactions/setup-nodefrom 6 to 7 by @dependabot[bot] in #1462[+]bumpactions/setup-pythonfrom 6 to 7 by @dependabot[bot] in #1468[+]bumpactions/stalefrom 10 to 11 by @dependabot[bot] in #1478[+]bumpaxiosfrom 1.15.0 to 1.18.0 in webui by @dependabot[bot] in #1390 #1424 #1471[+]bumpbrace-expansionfrom 5.0.6 to 5.0.9 in webui by @dependabot[bot] in #1485 #1420[+]bumpetcd/client/v3from 3.6.11 to 3.6.12 by @dependabot[bot] in #1431[+]bumpgo.etcd.io/etcd/client/v3from 3.6.12 to 3.7.1 by @dependabot[bot] in #1461 #1472[+]bumpgoogle.golang.org/grpcfrom 1.81.0 to 1.83.0 by @dependabot[bot] in #1410 #1457 #1463 #1479[+]bumpgoogle.golang.org/protobuffrom 1.36.11 to 1.36.12 by @dependabot[bot] in #1522[+]bumpgopsutil/v4from 4.26.4 to 4.26.5 by @dependabot[bot] in #1425[+]bumpgrpcfrom 1.80.0 to 1.81.0 by @dependabot[bot] in #1388[+]bumpjackc/pgx/v5from 5.9.2 to 5.10.0 by @dependabot[bot] in #1432[+]bumpjs-yamlfrom 4.3.0 to 4.3.1 in webui by @dependabot[bot] in #1510[+]bumpnanoidfrom 3.3.16 to 3.3.18 in webui by @dependabot[bot] in #1509[+]bumpprometheus/client_golangfrom 1.23.2 to 1.24.1 by @dependabot[bot] in #1469 #1473[+]bumpsethvargo/go-retryfrom 0.3.0 to 0.4.0 by @dependabot[bot] in #1466[+]bumpshirou/gopsutil/v4from 4.26.5 to 4.26.7 by @dependabot[bot] in #1458 #1484[+]bumpsirupsen/logrusfrom 1.9.4 to 1.10.0 by @pashagolub in #1524[+]bumptestcontainers/testcontainers-gofrom 0.42.0 to 0.44.0 by @dependabot[bot] in #1450 #1508[+]bumpvitefrom 7.3.2 to 8.0.16 by @pashagolub in #1421 #1440 #1445[+]bumpyamlfrom 1.10.0 to 2.8.4 in webui by @pashagolub in #1391[+]improveadmin.drop_all_metric_tablesroutine, closes #1474 by @pashagolub in #1520[+]increase test coverage fortestutilpackage by @pashagolub in #1521[-]avoid deadlock inSourceReaper, fixes #1412 by @pashagolub in #1417[-]fixcheckpointermetric by @0xgouda in #1411[-]fix Grafana postgres datasource provisioning for Grafana 12+ by @pashagolub in #1406[-]fix potential race conditions, fixes #1359 by @pashagolub in #1492[-]fix the way log parser started in newDbConnReaperby @pashagolub in #1517[-]fix v12 "Replication lag" panel, closes #1444 by @youdie006 in #1483[-]forbid different pgURI for metrics and sources, fixes #1288 by @pashagolub in #1519[-]handle pg sink being down gracefully, fixes #1426 by @0xgouda in #1429[-]patch security vulnerabilities in webui dependencies by @pashagolub in #1477[-]sanitizeNaN/Inffloat values in measurements, fixes #1416 by @justin212407 in #1418[-]use random JWT secret instead of hardcoded key by @pashagolub in #1475[*]add cache for Postgres continous discovery by @pashagolub in #1513[*]changebackendsvalues from int to float by @avandras in #1439[*]fix log message by @0xgouda in #1413[*]improve "Health check" dashboard by @pashagolub in #1486[*]improve Replication dashboards by @pashagolub in #1489[*]improve source reaper error logging by @pashagolub in #1456[*]migrate to time-only partitioning in pg sink by @0xgouda in #1408[*]move Cybertec logo to repo by @pashagolub in #1433[*]refactorreaper.Reap()by @pashagolub in #1505[*]remove duplicate assignment tometricsConfigby @pashagolub in #1493[*]remove EOL Grafana v11 dashboards by @pashagolub in #1407[*]repurposeduplicate_countinDROP INDEXrecommendations by @avandras in #1446[*]serve dashboards Cybertec logo from the repo by @pashagolub in #1434
New Contributors
- @justin212407 made their first contribution in #1418
- @avandras made their first contribution in #1446
- @youdie006 made their first contribution in #1483
Full Changelog: v5.2.0...v6.0.0-beta