Added
PostgreSQL
control_checkpoint,control_init,control_recovery,control_systemcollectors -pg_controldatacontent through thepg_control_*()functions, so neither the data directory nor a matching server binary is neededstat_subscription_statscollector - per-subscription apply and sync error counts, and per-kind conflict counters (PG15+)log_directorycollector - server log directory listing frompg_ls_logdir(): name, size and modification time per file, never contents. Readable bypg_monitorand needs no filesystem access, so it works when radar runs as a non-postgresOS user
Per-database
table_freeze_agecollector - top 1000 relations by transaction-ID and multixact freeze age, ranked by age rather than size, and reaching thepg_catalogandpg_toastrelations thattablesexcludesrelfrozenxid_ageandrelminmxid_agecolumns in thetablescollector - per-table transaction-ID and multixact freeze age, empty for partitioned tables, which hold no tuples of their own
pg_statviz
blockingcollector - blocking lock history: blocked and blocker counts plus per-lock-type counts (pg_statviz 1.2+)
Spock
- 13 collectors under
spock/<db>/, skipped when Spock is not installed:channel_summary_stats,exception_log,lag_tracker,local_node,local_sync_status,node,pii,progress,replication_set,replication_set_table,resolutions,subscription,tables - The conflicting-row images stay out of the archive:
exception_logandresolutionsname their columns explicitly, andnode_interfaceis not collected at all, sinceif_dsnholds the node password
PgBouncer
pgbouncer.inicollector - the[pgbouncer]section verbatim; every other section keeps its key names and loses its values, and comments are dropped wherever they appearpgbouncer_filescollector - listing of the configuration directory.userlist.txtis recorded as an entry only, never read- Collected without a database connection, so pooler configuration reaches the archive even when the instance is unreachable
-pgbouncer-confflag - PgBouncer configuration directory outside/etc/pgbouncerand/usr/local/etc/pgbouncer. A path given here that does not exist is a failure rather than a silent skip
Full Changelog: v0.5.1...v0.6.0