Check IDs
Every check ID with its duty, data requirements, and PG support.
68 checks run in the registry (67 user-facing checks listed below by duty; the dummy pipeline self-test and the disabled benchmark check are omitted)
(catalog schema v1, checksum 56d2460cde2d74f80541eabbb09d8081502b235254978d7fd58c606a3749c831):
Availability
queries.blocking— Report blocked/blocker pairs from pg_locks + activity.- requires: pg_locks
- severities: info, warning; PG: 13, 14, 15, 16, 17
Index lifecycle
index.advisor— Emit ranked index findings with CONCURRENTLY DDL + predicted saving.include_tables/exclude_tablesare comma- separated table filters (bare or schema-qualified, case- insensitive) applied to every candidate; wave-1 btree…- requires: pg_stats
- severities: info, warning; PG: 13, 14, 15, 16, 17
schema.hypopg— Attempt HypoPG verification; unknown/absent label fallback.- requires: hypopg, pg_stat_statements
- severities: info; PG: 13, 14, 15, 16, 17
schema.invalid_indexes— Report indisvalid=false leftovers (index-space forensics).- severities: info; PG: 13, 14, 15, 16, 17
schema.missing_indexes— Propose heuristic candidates labeled heuristic-unverified.- severities: info; PG: 13, 14, 15, 16, 17
schema.redundant_indexes— Group same-leading-indkey indexes, keep the widest.- severities: info; PG: 13, 14, 15, 16, 17
schema.unused_indexes— List idx_scan=0 indexes with DROP CONCURRENTLY text.- severities: info; PG: 13, 14, 15, 16, 17
Monitoring
autovacuum— Emit per-table autovacuum SET text for large high-churn tables.- severities: info; PG: 13, 14, 15, 16, 17
backup.archiver— Live archiver-health audit.- requires: pg_stat_archiver
- severities: warning; PG: 13, 14, 15, 16, 17
backup.freshness— Live backup-freshness audit (server-observable evidence only).- requires: pg_stat_archiver, pg_stat_backup, pg_stat_base_backup
- severities: info; PG: 13, 14, 15, 16, 17
concurrency.idle_txn— Live idle-in-transaction audit (threshold injectable per run).- severities: warning; PG: 13, 14, 15, 16, 17
concurrency.isolation_notes— Live isolation-level and long-runner audit.- severities: info; PG: 13, 14, 15, 16, 17
concurrency.lock_waits— Live lock-wait audit.- severities: info, warning; PG: 13, 14, 15, 16, 17
concurrency.serialization— Live deadlock/conflict audit.- severities: info; PG: 13, 14, 15, 16, 17
config— Audit memory/planner, autovacuum, WAL/checkpoint, logging.- severities: info; PG: 13, 14, 15, 16, 17
extensions— Discover allowlisted extensions and flag drift/floors.- severities: info; PG: 13, 14, 15, 16, 17
index-space— Explain per-index space: duplicates, invalid, fillfactor/INCLUDE.- severities: info; PG: 13, 14, 15, 16, 17
matview— Propose materialized views from repeated heavy agg/join fingerprints.- requires: pg_extension, pg_stat_statements
- severities: info; PG: 13, 14, 15, 16, 17
partitioning— Flag large monoliths for RANGE partitioning with lifecycle notes.- severities: info; PG: 13, 14, 15, 16, 17
pgbouncer— Recommend for/against pgbouncer from live connection signals.- requires: pgbouncer
- severities: info; PG: 13, 14, 15, 16, 17
pooler— Read pool pressure signals and recommend for/against pgbouncer.- requires: pgbouncer
- severities: info; PG: 13, 14, 15, 16, 17
query.lint.nplus1— N+1 storm detection over top fingerprints.- requires: pg_stat_statements
- severities: info; PG: 13, 14, 15, 16, 17
query.lint.plan— Estimated plan-shape proof over top fingerprints (never ANALYZE).- requires: pg_stat_statements
- severities: info; PG: 13, 14, 15, 16, 17
query.lint.runtime— Runtime-fact correlation from pg_stat_statements actuals.- requires: pg_stat_statements
- severities: info; PG: 13, 14, 15, 16, 17
query.lint.static— Static anti-pattern lint over top pg_stat_statements fingerprints.- requires: pg_stat_statements
- severities: info; PG: 13, 14, 15, 16, 17
routine.dead_code— Live zero-call inventory (degrades when tracking is off).- severities: info; PG: 13, 14, 15, 16, 17
routine.definer_crossref— Live definer cross-reference (single-ownership pointer).- requires: pg_proc
- severities: info; PG: 13, 14, 15, 16, 17
routine.parallel_safety— Live parallel-safety audit.- requires: pg_proc
- severities: info; PG: 13, 14, 15, 16, 17
routine.volatility— Live volatility audit (parser-recorded dependencies, stated basis).- requires: pg_proc
- severities: info; PG: 13, 14, 15, 16, 17
scale.citus— Live Citus/sharding-readiness audit (degrades without metadata).- requires: citus, pg_settings, pg_stat_replication
- severities: critical, warning; PG: 13, 14, 15, 16, 17
scale.durability— Live durability-posture audit.- requires: pg_stat_archiver
- severities: info; PG: 13, 14, 15, 16, 17
scale.partitions— Live partition-depth audit.- requires: citus, pg_attribute, pg_class, pg_extension, pg_namespace, pg_settings, pg_stat_activity
- severities: info, warning; PG: 13, 14, 15, 16, 17
scale.replication— Live replication health, dispatched by primary/standby role.- requires: pg_ls_waldir, pg_replication_slots
- severities: warning; PG: 13, 14, 15, 16, 17
scale.slots— Live slot-retention audit.- requires: pg_class, pg_database, pg_locks, pg_namespace, pg_settings, pg_stat_user_tables
- severities: critical, info, warning; PG: 13, 14, 15, 16, 17
scale.vacuum_depth— Live freeze-horizon and HOT-update audit.- requires: pg_attribute, pg_class, pg_constraint, pg_index, pg_inherits, pg_namespace, pg_partitioned_table, pg_stat_user_tables
- severities: info, warning; PG: 13, 14, 15, 16, 17
security— Live user/role/permission audit across catalogs.- requires: pg_roles
- severities: info; PG: 13, 14, 15, 16, 17
security.audit_logging— Audit-logging baseline, escalated when criticals exist.- severities: info; PG: 13, 14, 15, 16, 17
security.auth— MD5 password hashes plus transport/authentication settings.- severities: info; PG: 13, 14, 15, 16, 17
security.default_privs— Schemas whose granted roles lack ALTER DEFAULT PRIVILEGES cover.- severities: info; PG: 13, 14, 15, 16, 17
security.definer— SECURITY DEFINER functions without a pinned search_path.- requires: pg_proc
- severities: info; PG: 13, 14, 15, 16, 17
security.extensions— Untrusted extensions, stored FDW passwords, stale versions.- severities: info; PG: 13, 14, 15, 16, 17
security.rls— Tenant-shape row-security audit (RLS off, empty, placebo, no FORCE).- severities: info; PG: 13, 14, 15, 16, 17
security.stale— Expired, passwordless, and grant-less login roles.- severities: info; PG: 13, 14, 15, 16, 17
security.version— EOL calendar: past-EOL is critical, near-EOL warns.- severities: info; PG: 13, 14, 15, 16, 17
storage— Break down growth by component and attribute retained WAL.- requires: pg_database_size, pg_ls_waldir
- severities: info; PG: 13, 14, 15, 16, 17
Query tuning
queries.cache_hit— Flag table/index cache-hit ratios below 0.99.- severities: info, warning; PG: 13, 14, 15, 16, 17
queries.cpu— Attribute 100%-CPU causes via wait taxonomy + top CPU.- requires: pg_stat_statements
- severities: info; PG: 13, 14, 15, 16, 17
queries.explain— Capture bounded EXPLAIN plans for top slow queries.- requires: pg_stat_statements
- severities: info; PG: 13, 14, 15, 16, 17
queries.routines— Attribute routine/trigger CPU and flag VOLATILE filters.- requires: pg_stat_statements, pg_stat_user_functions
- severities: info, warning; PG: 13, 14, 15, 16, 17
queries.slow— Rank top-N statements by total time.- requires: pg_stat_statements
- severities: info, warning; PG: 13, 14, 15, 16, 17
queries.temp_wal— Report temp-spill and checkpoint/WAL pressure.- requires: pg_stat_bgwriter, pg_stat_checkpointer
- severities: info, warning; PG: 13, 14, 15, 16, 17
vector.extension— Discovery plus version floors (read-only).- severities: info; PG: 13, 14, 15, 16, 17
vector.hnsw— HNSW audit (read-only; skipped without vector).- severities: info; PG: 13, 14, 15, 16, 17
vector.index_coverage— Index coverage (read-only; skipped without vector).- severities: info; PG: 13, 14, 15, 16, 17
Space management
columns.waste— Live column analysis with measured-save gating.- severities: info; PG: 13, 14, 15, 16, 17
schema.autovacuum— Emit per-table ALTER SET text for churn tables.- severities: info; PG: 13, 14, 15, 16, 17
schema.bloat— Flag dead%>20% or >7d-no-vacuum tables.- severities: info; PG: 13, 14, 15, 16, 17
schema.design.collation— Live collation-version audit (indexes + database default, PG15+).- requires: pg_collation
- severities: info, warning; PG: 13, 14, 15, 16, 17
schema.design.indexes— Live index-design audit (observed predicates when available).- requires: pg_stat_statements
- severities: info; PG: 13, 14, 15, 16, 17
schema.design.keys— Live keys-and-constraints audit over the catalog.- requires: pg_attribute, pg_class, pg_namespace, pg_sequences, pg_type
- severities: critical, warning; PG: 13, 14, 15, 16, 17
schema.design.matviews— Live matview population/staleness audit.- requires: pg_class, pg_namespace
- severities: warning; PG: 13, 14, 15, 16, 17
schema.design.normalization— Live normalization-signal audit.- requires: pg_class, pg_namespace, pg_stat_all_tables
- severities: info, warning; PG: 13, 14, 15, 16, 17
schema.design.sequences— Live sequence-headroom audit for integer primary keys.- requires: pg_class, pg_collation, pg_collation_actual_version, pg_database, pg_index, pg_namespace, pg_sequences
- severities: critical; PG: 13, 14, 15, 16, 17
schema.design.types— Live datatype review with capped, LIMIT-bounded value sampling.- requires: pg_class, pg_namespace, pg_stats
- severities: info; PG: 13, 14, 15, 16, 17
schema.design.unlogged— Live unlogged-relation audit.- requires: pg_am, pg_attribute, pg_class, pg_constraint, pg_index, pg_namespace, pg_stat_statements, pg_statio_user_tables, pg_stats, pg_type
- severities: info, warning; PG: 13, 14, 15, 16, 17
schema.design.width— Live TOAST-ratio and wide-row audit.- severities: info; PG: 13, 14, 15, 16, 17
schema.partitioning— Flag >10GB/50M-row monoliths with RANGE key + caveats.- severities: info; PG: 13, 14, 15, 16, 17