PostgreSQL 14
What PostgreSQL 14 changed in monitoring
Released 30 September 2021, supported until 12 November 2026. 11 pages so far, each verified against PostgreSQL 14.24.
PostgreSQL 14 leaves support on 12 November 2026, and the pages under this hub are written with that in mind: what 14 introduced, and what changed after it that an upgrade will meet. It was the release that put a query identifier in the activity view and in the log line prefix, so a slow statement seen live could be matched to its row in the statements extension without fuzzy matching on text. It added a view of write-ahead log generation, a view of replication slot statistics, progress reporting for bulk copies, and a view of a backend’s memory contexts that had previously needed a debugger. Vacuum gained a failsafe that abandons cost limits when a table is close to wraparound. Lock rows started recording when the wait began. Each of those has a page that shows the query on 14 and says what became of it on the versions after, because a fleet leaving 14 has four majors of monitoring change to absorb in one step.
The release notes for this version are at postgresql.org; every page below cites the section it draws on by name. The hub for every supported version carries the support calendar.
-
PostgreSQL 14 breaks: errors
The PostgreSQL 14 end-of-life audit
For anyone who owns clusters still on PostgreSQL 14 and has to decide what to look at before moving them.
-
PostgreSQL 14 breaks: silent
compute_query_id moved into the server
For anyone who has tried to work out whether the session blocking everything right now is usually this slow.
-
PostgreSQL 14 breaks: errors
pg_stat_wal, and the columns 18 takes back
For anyone whose storage bill or replication lag is really a question about how much log the workload writes.
-
PostgreSQL 14 breaks: silent
pg_stat_replication_slots and decoding spill
For anyone whose logical replica falls behind in bursts that do not line up with anything the primary was doing.
-
PostgreSQL 14 breaks: none
pg_stat_progress_copy, and the frozen row
For anyone who has been asked how much longer the restore has left and had only the file size to go on.
-
PostgreSQL 14 breaks: errors
Reading a backend's memory from SQL
For anyone who has watched one connection grow to a gigabyte and had no way to ask it what it was holding.
-
PostgreSQL 14 breaks: none
vacuum_failsafe_age and emergency mode
For anyone who has watched an autovacuum worker crawl through a large table while the wraparound warning counts down.
-
PostgreSQL 14 breaks: silent
toplevel, and the sum that counts twice
For anyone whose slowest-queries report adds up to more time than the database was actually busy for.
-
PostgreSQL 14 breaks: none
Lock waits got a start time in pg_locks
For anyone who has looked at a blocking chain and had no way to tell which link had been stuck longest.
-
PostgreSQL 14 breaks: none
Session statistics in pg_stat_database
For anyone who suspects connections are ending badly and has only the log to prove it with.
-
PostgreSQL 14 breaks: none
pg_amcheck runs verification in one command
For anyone who has been told to verify a database and found only a function that takes one relation at a time.
Grep your monitoring configuration for these
Every view, column and setting the pages above touch, in one list. A hit in an exporter query file, a dashboard definition or an alert rule is a place to read the page that names it.
EXPLAIN VERBOSEactive_timeamcheckautovacuum_freeze_max_ageblk_read_timebt_index_checkbt_index_parent_checkbuffers_backendbytes_processedbytes_totalcheckpoints_timedcompute_query_iddeallocidle_in_transaction_timelevellog_line_prefixmax_dead_tuplesnameparentpg_amcheckpg_backend_memory_contextspg_blocking_pidspg_class.relfrozenxidpg_locks.fastpathpg_locks.grantedpg_locks.waitstartpg_log_backend_memory_contextspg_replication_slotspg_stat_activity.query_idpg_stat_activity.wait_eventpg_stat_bgwriterpg_stat_clear_snapshotpg_stat_database.sessionspg_stat_progress_copypg_stat_progress_vacuumpg_stat_replication_slotspg_stat_reset_replication_slotpg_stat_statementspg_stat_statements.maxpg_stat_statements.queryidpg_stat_statements.toplevelpg_stat_statements.trackpg_stat_statements_infopg_stat_walsession_timesessions_abandonedsessions_fatalsessions_killedspill_bytesspill_countspill_txnsstats_fetch_consistencystream_txnstotal_bytestuples_excludedtuples_processedtuples_skippedused_bytesvacuum_cost_delayvacuum_failsafe_agevacuum_multixact_failsafe_ageverify_heapamwal_buffers_fullwal_byteswal_fpiwal_recordswal_syncwal_sync_timewal_writewal_write_time
The failure modes these changes touch are in the reference guides; the terms the release notes assume are in the glossary. Across a fleet, the version is what decides where a signal lives, which is why engine discovery establishes it first.
Put every Postgres you run on autopilot.
We onboard teams in small batches. Tell us about your fleet and we will reach out when a seat opens. One email, no drip campaign.