pgsentinel
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pgsentinel | 1.4.2 | STAT | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 6410 | pgsentinel | No | Yes | Yes | Yes | No | Yes | - |
| Related | pg_datasentinel pg_profile pg_stat_monitor pg_wait_sampling pg_stat_ch pgmonitor system_stats pgnodemx powa pg_stat_statements |
|---|
Package/source release and PIGSTY RPM are 1.4.2; shipped pgsentinel.control and PGDG DEB remain 1.4.1.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | MIXED | 1.4.2 | 1817161514 | pgsentinel | - |
| RPM | PIGSTY | 1.4.2 | 1817161514 | pgsentinel_$v | - |
| DEB | PGDG | 1.4.2 | 1817161514 | postgresql-$v-pgsentinel | - |
Build
You can build the RPM / DEB packages for pgsentinel using pig build:
Install
You can install pgsentinel directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Preload:
Create Extension:
Usage
Sources:
- pgsentinel 1.4.2 README
- pgsentinel 1.4.2 release
- pgsentinel 1.4.1 to 1.4.2 changes
- pgsentinel control file
pgsentinel records active session history by sampling pg_stat_activity at regular intervals and linking activity with pg_stat_statements query statistics. It keeps recent samples in shared-memory ring buffers managed by a background worker.
Restart PostgreSQL, then enable both extensions in the database used by the worker:
Active Session History
Key columns beyond pg_stat_activity:
| Column | Description |
|---|---|
ash_time | Sampling timestamp |
top_level_query | Top-level statement (for PL/pgSQL) |
query | Statement with actual parameter values |
cmdtype | Statement type: SELECT, UPDATE, INSERT, DELETE, UTILITY, UNKNOWN, NOTHING |
queryid | Links to pg_stat_statements |
blockers | Number of blocking processes |
blockerpid | PID of a blocking process |
blocker_state | State of the blocker |
Query Statistics History
When enabled, pgsentinel also samples pg_stat_statements concurrently:
Example: Wait Analysis
Configuration
| Parameter | Default | Description |
|---|---|---|
pgsentinel_ash.sampling_period | 1 | Sampling period in seconds |
pgsentinel_ash.max_entries | 1000 | Ring buffer size for ASH |
pgsentinel.db_name | postgres | Database for worker connection |
pgsentinel_ash.track_idle_trans | false | Track idle-in-transaction sessions |
pgsentinel_pgssh.max_entries | 1000 | Ring buffer for pg_stat_statements history |
pgsentinel_pgssh.enable | false | Enable pg_stat_statements history |
Version and Operational Notes
- Release 1.4.2 fixes query-statistics history on PostgreSQL 17, whose
pg_stat_statementsview renamed block I/O timing columns toshared_blk_read_timeandshared_blk_write_time. - The same release adds PostgreSQL 19 build compatibility without changing the SQL views or GUC surface.
- Ring-buffer history is memory-resident and finite; increase the entry limits only after accounting for shared-memory use, and export samples externally when longer retention is required.
- Query text can contain literal parameter values. Restrict access to the history views when statements may include sensitive data.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)