diff --git a/Dockerfile b/Dockerfile index 8ebf47d..956cc30 100644 --- a/Dockerfile +++ b/Dockerfile @@ -95,7 +95,8 @@ COPY --from=builder /usr/local/lib/postgresql/ /usr/local/lib/postgresql/ COPY --from=builder /usr/local/share/postgresql/ /usr/local/share/postgresql/ # Preload extensions that require shared_preload_libraries -RUN echo "shared_preload_libraries = 'pg_textsearch,pg_cron,pg_partman_bgw'" >> /usr/local/share/postgresql/postgresql.conf.sample +RUN echo "shared_preload_libraries = 'pg_stat_statements,pg_textsearch,pg_cron,pg_partman_bgw'" >> /usr/local/share/postgresql/postgresql.conf.sample && \ + echo "track_io_timing = on" >> /usr/local/share/postgresql/postgresql.conf.sample LABEL org.opencontainers.image.source="https://github.com/constructive-io/docker" -LABEL org.opencontainers.image.description="PostgreSQL 18 with pgvector, PostGIS, pg_textsearch, pg_cron, and pg_partman" +LABEL org.opencontainers.image.description="PostgreSQL 18 with pgvector, PostGIS, pg_textsearch, pg_cron, pg_partman, and pg_stat_statements" diff --git a/README.md b/README.md index 1f2fa06..7170182 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Lean PostgreSQL 18 image with essential extensions for modern applications. | [pg_textsearch](https://github.com/timescale/pg_textsearch) | 1.2.0 | BM25 full-text search | | [pg_cron](https://github.com/citusdata/pg_cron) | 1.6.7 | Job scheduler for periodic tasks | | [pg_partman](https://github.com/pgpartman/pg_partman) | 5.4.3 | Partition management | +| [pg_stat_statements](https://www.postgresql.org/docs/current/pgstatstatements.html) | built-in | Query performance statistics | ## Usage @@ -40,8 +41,13 @@ CREATE EXTENSION postgis; CREATE EXTENSION pg_textsearch; CREATE EXTENSION pg_cron; CREATE EXTENSION pg_partman; +CREATE EXTENSION pg_stat_statements; ``` +## Configuration + +`track_io_timing` is enabled by default for accurate I/O metrics in `pg_stat_statements`. This powers the usage metering and query stats collection pipeline. + ## Build ```bash