Skip to content
pg_datasentinel

pg_datasentinel

pg_datasentinel : Observability and activity monitoring extension for PostgreSQL

Overview

ID Extension Package Version Category License Language
6400
pg_datasentinel
pg_datasentinel
1.0
STAT
BSD-3-Clause
C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--sLd--
No
Yes
Yes
Yes
no
no
Relationships
See Also
pgsentinel
system_stats
pg_profile
pg_stat_monitor
pg_stat_kcache
powa

shared_preload_libraries = pg_datasentinel is required because the extension allocates shared memory and hooks into activity logging.

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
PIGSTY
1.0
18
17
16
15
14
pg_datasentinel -
RPM
PIGSTY
1.0
18
17
16
15
14
pg_datasentinel_$v -
DEB
PIGSTY
1.0
18
17
16
15
14
postgresql-$v-pg-datasentinel -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
el8.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
el9.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
el9.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
el10.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
el10.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
d12.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
d12.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
d13.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
d13.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
u22.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
u22.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
u24.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
u24.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
u26.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
u26.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
MISS
Package Version OS ORG SIZE File URL
pg_datasentinel_18 1.0 el8.x86_64 pigsty 34.6 KiB pg_datasentinel_18-1.0-1PIGSTY.el8.x86_64.rpm
pg_datasentinel_18 1.0 el8.aarch64 pigsty 34.6 KiB pg_datasentinel_18-1.0-1PIGSTY.el8.aarch64.rpm
pg_datasentinel_18 1.0 el9.x86_64 pigsty 34.3 KiB pg_datasentinel_18-1.0-1PIGSTY.el9.x86_64.rpm
pg_datasentinel_18 1.0 el9.aarch64 pigsty 34.8 KiB pg_datasentinel_18-1.0-1PIGSTY.el9.aarch64.rpm
pg_datasentinel_18 1.0 el10.x86_64 pigsty 34.7 KiB pg_datasentinel_18-1.0-1PIGSTY.el10.x86_64.rpm
pg_datasentinel_18 1.0 el10.aarch64 pigsty 35.2 KiB pg_datasentinel_18-1.0-1PIGSTY.el10.aarch64.rpm
postgresql-18-pg-datasentinel 1.0 d12.x86_64 pigsty 58.8 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~bookworm_amd64.deb
postgresql-18-pg-datasentinel 1.0 d12.aarch64 pigsty 58.9 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~bookworm_arm64.deb
postgresql-18-pg-datasentinel 1.0 d13.x86_64 pigsty 59.0 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~trixie_amd64.deb
postgresql-18-pg-datasentinel 1.0 d13.aarch64 pigsty 59.0 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~trixie_arm64.deb
postgresql-18-pg-datasentinel 1.0 u22.x86_64 pigsty 63.2 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~jammy_amd64.deb
postgresql-18-pg-datasentinel 1.0 u22.aarch64 pigsty 63.7 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~jammy_arm64.deb
postgresql-18-pg-datasentinel 1.0 u24.x86_64 pigsty 61.4 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~noble_amd64.deb
postgresql-18-pg-datasentinel 1.0 u24.aarch64 pigsty 62.2 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~noble_arm64.deb
postgresql-18-pg-datasentinel 1.0 u26.x86_64 pigsty 61.2 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~resolute_amd64.deb
postgresql-18-pg-datasentinel 1.0 u26.aarch64 pigsty 61.4 KiB postgresql-18-pg-datasentinel_1.0-1PIGSTY~resolute_arm64.deb

Source

pig build pkg pg_datasentinel;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install pg_datasentinel;		# install via package name, for the active PG version

pig install pg_datasentinel -v 18;   # install for PG 18
pig install pg_datasentinel -v 17;   # install for PG 17
pig install pg_datasentinel -v 16;   # install for PG 16
pig install pg_datasentinel -v 15;   # install for PG 15

Config this extension to shared_preload_libraries:

shared_preload_libraries = 'pg_datasentinel';

Create this extension with:

CREATE EXTENSION pg_datasentinel;

Usage

Source: README, Release 1.0

pg_datasentinel adds observability views on top of PostgreSQL activity, maintenance, temporary-file, checkpoint, wraparound, and container resource data. It must be preloaded because it allocates shared memory and hooks into activity logging.

Required setup

-- postgresql.conf
shared_preload_libraries = 'pg_datasentinel'
log_autovacuum_min_duration = 0
log_temp_files = 0
log_checkpoints = on

CREATE EXTENSION pg_datasentinel;

Main views

  • ds_stat_activity: extends pg_stat_activity with backend RSS, optional PSS, temp-file bytes, and plan_id on PostgreSQL 18+.
  • ds_container_resources: reports cgroup CPU and memory limits plus current usage.
  • ds_wraparound_risk: estimates XID and MXID ETA to aggressive vacuum and wraparound from hourly snapshots.
  • ds_xid_snapshots: raw snapshot history used by ds_wraparound_risk.
  • ds_vacuum_activity, ds_analyze_activity, ds_tempfile_activity, ds_checkpoint_activity: shared-memory ring buffers for maintenance and checkpoint events.
  • ds_activity_summary: one-row summary of ring-buffer occupancy and timestamps.

Useful GUCs

  • pg_datasentinel.enabled: enables or disables capture.
  • pg_datasentinel.max_entries: ring-buffer capacity per activity stream; restart required.
  • pg_datasentinel.maintenance_force_verbose: adds VERBOSE to manual VACUUM and ANALYZE so they are captured.
  • pg_datasentinel.ignore_system_schemas: suppresses pg_catalog and information_schema noise.
  • pg_datasentinel.enable_pss_memory: reads /proc/*/smaps_rollup for per-backend PSS.

Caveats

  • PostgreSQL 15+ is required upstream.
  • Memory and temp-file enrichment depends on Linux /proc; container metrics depend on cgroups.
  • Vacuum and analyze parsing depends on English log keywords, so translated server message locales are not fully supported.
  • plan_id is only populated on PostgreSQL 18+, and is most useful when paired with the official pg_store_plans fork linked from the README.
Last updated on