pg_datasentinel
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_datasentinel | 1.0 | STAT | BSD-3-Clause | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 6400 | pg_datasentinel | No | Yes | Yes | Yes | No | No | - |
| Related | 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.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0 | 1817161514 | pg_datasentinel | - |
| RPM | PIGSTY | 1.0 | 1817161514 | pg_datasentinel_$v | - |
| DEB | PIGSTY | 1.0 | 1817161514 | postgresql-$v-pg-datasentinel | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 1.0 el8.x86_64.pg18 : pg_datasentinel_18 pg_datasentinel_18-1.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 1.0 el8.x86_64.pg17 : pg_datasentinel_17 pg_datasentinel_17-1.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 1.0 el8.x86_64.pg16 : pg_datasentinel_16 pg_datasentinel_16-1.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 1.0 el8.x86_64.pg15 : pg_datasentinel_15 pg_datasentinel_15-1.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY MISS |
| el8.aarch64 | PIGSTY 1.0 el8.aarch64.pg18 : pg_datasentinel_18 pg_datasentinel_18-1.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 1.0 el8.aarch64.pg17 : pg_datasentinel_17 pg_datasentinel_17-1.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 1.0 el8.aarch64.pg16 : pg_datasentinel_16 pg_datasentinel_16-1.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 1.0 el8.aarch64.pg15 : pg_datasentinel_15 pg_datasentinel_15-1.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY MISS |
| el9.x86_64 | PIGSTY 1.0 el9.x86_64.pg18 : pg_datasentinel_18 pg_datasentinel_18-1.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY 1.0 el9.x86_64.pg17 : pg_datasentinel_17 pg_datasentinel_17-1.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY 1.0 el9.x86_64.pg16 : pg_datasentinel_16 pg_datasentinel_16-1.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY 1.0 el9.x86_64.pg15 : pg_datasentinel_15 pg_datasentinel_15-1.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY MISS |
| el9.aarch64 | PIGSTY 1.0 el9.aarch64.pg18 : pg_datasentinel_18 pg_datasentinel_18-1.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY 1.0 el9.aarch64.pg17 : pg_datasentinel_17 pg_datasentinel_17-1.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY 1.0 el9.aarch64.pg16 : pg_datasentinel_16 pg_datasentinel_16-1.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY 1.0 el9.aarch64.pg15 : pg_datasentinel_15 pg_datasentinel_15-1.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY MISS |
| el10.x86_64 | PIGSTY 1.0 el10.x86_64.pg18 : pg_datasentinel_18 pg_datasentinel_18-1.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY 1.0 el10.x86_64.pg17 : pg_datasentinel_17 pg_datasentinel_17-1.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY 1.0 el10.x86_64.pg16 : pg_datasentinel_16 pg_datasentinel_16-1.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY 1.0 el10.x86_64.pg15 : pg_datasentinel_15 pg_datasentinel_15-1.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY MISS |
| el10.aarch64 | PIGSTY 1.0 el10.aarch64.pg18 : pg_datasentinel_18 pg_datasentinel_18-1.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY 1.0 el10.aarch64.pg17 : pg_datasentinel_17 pg_datasentinel_17-1.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY 1.0 el10.aarch64.pg16 : pg_datasentinel_16 pg_datasentinel_16-1.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY 1.0 el10.aarch64.pg15 : pg_datasentinel_15 pg_datasentinel_15-1.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY MISS |
| d12.x86_64 | PIGSTY 1.0 d12.x86_64.pg18 : postgresql-18-pg-datasentinel postgresql-18-pg-datasentinel_1.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY 1.0 d12.x86_64.pg17 : postgresql-17-pg-datasentinel postgresql-17-pg-datasentinel_1.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY 1.0 d12.x86_64.pg16 : postgresql-16-pg-datasentinel postgresql-16-pg-datasentinel_1.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY 1.0 d12.x86_64.pg15 : postgresql-15-pg-datasentinel postgresql-15-pg-datasentinel_1.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY MISS |
| d12.aarch64 | PIGSTY 1.0 d12.aarch64.pg18 : postgresql-18-pg-datasentinel postgresql-18-pg-datasentinel_1.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY 1.0 d12.aarch64.pg17 : postgresql-17-pg-datasentinel postgresql-17-pg-datasentinel_1.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY 1.0 d12.aarch64.pg16 : postgresql-16-pg-datasentinel postgresql-16-pg-datasentinel_1.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY 1.0 d12.aarch64.pg15 : postgresql-15-pg-datasentinel postgresql-15-pg-datasentinel_1.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY MISS |
| d13.x86_64 | PIGSTY 1.0 d13.x86_64.pg18 : postgresql-18-pg-datasentinel postgresql-18-pg-datasentinel_1.0-1PIGSTY~trixie_amd64.deb
| PIGSTY 1.0 d13.x86_64.pg17 : postgresql-17-pg-datasentinel postgresql-17-pg-datasentinel_1.0-1PIGSTY~trixie_amd64.deb
| PIGSTY 1.0 d13.x86_64.pg16 : postgresql-16-pg-datasentinel postgresql-16-pg-datasentinel_1.0-1PIGSTY~trixie_amd64.deb
| PIGSTY 1.0 d13.x86_64.pg15 : postgresql-15-pg-datasentinel postgresql-15-pg-datasentinel_1.0-1PIGSTY~trixie_amd64.deb
| PIGSTY MISS |
| d13.aarch64 | PIGSTY 1.0 d13.aarch64.pg18 : postgresql-18-pg-datasentinel postgresql-18-pg-datasentinel_1.0-1PIGSTY~trixie_arm64.deb
| PIGSTY 1.0 d13.aarch64.pg17 : postgresql-17-pg-datasentinel postgresql-17-pg-datasentinel_1.0-1PIGSTY~trixie_arm64.deb
| PIGSTY 1.0 d13.aarch64.pg16 : postgresql-16-pg-datasentinel postgresql-16-pg-datasentinel_1.0-1PIGSTY~trixie_arm64.deb
| PIGSTY 1.0 d13.aarch64.pg15 : postgresql-15-pg-datasentinel postgresql-15-pg-datasentinel_1.0-1PIGSTY~trixie_arm64.deb
| PIGSTY MISS |
| u22.x86_64 | PIGSTY 1.0 u22.x86_64.pg18 : postgresql-18-pg-datasentinel postgresql-18-pg-datasentinel_1.0-1PIGSTY~jammy_amd64.deb
| PIGSTY 1.0 u22.x86_64.pg17 : postgresql-17-pg-datasentinel postgresql-17-pg-datasentinel_1.0-1PIGSTY~jammy_amd64.deb
| PIGSTY 1.0 u22.x86_64.pg16 : postgresql-16-pg-datasentinel postgresql-16-pg-datasentinel_1.0-1PIGSTY~jammy_amd64.deb
| PIGSTY 1.0 u22.x86_64.pg15 : postgresql-15-pg-datasentinel postgresql-15-pg-datasentinel_1.0-1PIGSTY~jammy_amd64.deb
| PIGSTY MISS |
| u22.aarch64 | PIGSTY 1.0 u22.aarch64.pg18 : postgresql-18-pg-datasentinel postgresql-18-pg-datasentinel_1.0-1PIGSTY~jammy_arm64.deb
| PIGSTY 1.0 u22.aarch64.pg17 : postgresql-17-pg-datasentinel postgresql-17-pg-datasentinel_1.0-1PIGSTY~jammy_arm64.deb
| PIGSTY 1.0 u22.aarch64.pg16 : postgresql-16-pg-datasentinel postgresql-16-pg-datasentinel_1.0-1PIGSTY~jammy_arm64.deb
| PIGSTY 1.0 u22.aarch64.pg15 : postgresql-15-pg-datasentinel postgresql-15-pg-datasentinel_1.0-1PIGSTY~jammy_arm64.deb
| PIGSTY MISS |
| u24.x86_64 | PIGSTY 1.0 u24.x86_64.pg18 : postgresql-18-pg-datasentinel postgresql-18-pg-datasentinel_1.0-1PIGSTY~noble_amd64.deb
| PIGSTY 1.0 u24.x86_64.pg17 : postgresql-17-pg-datasentinel postgresql-17-pg-datasentinel_1.0-1PIGSTY~noble_amd64.deb
| PIGSTY 1.0 u24.x86_64.pg16 : postgresql-16-pg-datasentinel postgresql-16-pg-datasentinel_1.0-1PIGSTY~noble_amd64.deb
| PIGSTY 1.0 u24.x86_64.pg15 : postgresql-15-pg-datasentinel postgresql-15-pg-datasentinel_1.0-1PIGSTY~noble_amd64.deb
| PIGSTY MISS |
| u24.aarch64 | PIGSTY 1.0 u24.aarch64.pg18 : postgresql-18-pg-datasentinel postgresql-18-pg-datasentinel_1.0-1PIGSTY~noble_arm64.deb
| PIGSTY 1.0 u24.aarch64.pg17 : postgresql-17-pg-datasentinel postgresql-17-pg-datasentinel_1.0-1PIGSTY~noble_arm64.deb
| PIGSTY 1.0 u24.aarch64.pg16 : postgresql-16-pg-datasentinel postgresql-16-pg-datasentinel_1.0-1PIGSTY~noble_arm64.deb
| PIGSTY 1.0 u24.aarch64.pg15 : postgresql-15-pg-datasentinel postgresql-15-pg-datasentinel_1.0-1PIGSTY~noble_arm64.deb
| PIGSTY MISS |
Build
You can build the RPM / DEB packages for pg_datasentinel using pig build:
pig build pkg pg_datasentinel # build RPM / DEB packages
Install
You can install pg_datasentinel directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install pg_datasentinel; # Install for current active PG version
pig ext install -y pg_datasentinel -v 18 # PG 18
pig ext install -y pg_datasentinel -v 17 # PG 17
pig ext install -y pg_datasentinel -v 16 # PG 16
pig ext install -y pg_datasentinel -v 15 # PG 15
dnf install -y pg_datasentinel_18 # PG 18
dnf install -y pg_datasentinel_17 # PG 17
dnf install -y pg_datasentinel_16 # PG 16
dnf install -y pg_datasentinel_15 # PG 15
apt install -y postgresql-18-pg-datasentinel # PG 18
apt install -y postgresql-17-pg-datasentinel # PG 17
apt install -y postgresql-16-pg-datasentinel # PG 16
apt install -y postgresql-15-pg-datasentinel # PG 15
Preload:
shared_preload_libraries = 'pg_datasentinel';
Create Extension:
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: extendspg_stat_activitywith backend RSS, optional PSS, temp-file bytes, andplan_idon 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 byds_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: addsVERBOSEto manualVACUUMandANALYZEso they are captured.pg_datasentinel.ignore_system_schemas: suppressespg_catalogandinformation_schemanoise.pg_datasentinel.enable_pss_memory: reads/proc/*/smaps_rollupfor 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_idis only populated on PostgreSQL 18+, and is most useful when paired with the officialpg_store_plansfork linked from the README.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.