postgres_exporter icon indicating copy to clipboard operation
postgres_exporter copied to clipboard

pg_stat_statements metrics collection issue with postgres-exporter

Open aunghtetnay opened this issue 1 year ago • 9 comments

I am encountering an issue with postgres-exporter where it fails to collect metrics from the pg_stat_statements extension in my PostgreSQL database. Here are the details of my setup and the problem:

Setup Details:

Docker Compose Configuration: services: grafana: image: grafana/grafana:latest volumes: - grafana-storage:/var/lib/grafana ports: - 3000:3000

prometheus: image: prom/prometheus:latest ports: - 9090:9090 volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro

postgres-exporter: image: quay.io/prometheuscommunity/postgres-exporter ports: - 9187:9187 environment: DATA_SOURCE_NAME: "postgresql://postgres:passsword@database-endpoint:5432/db-name?sslmode=disable" volumes: - ./queries.yml:/etc/queries.yml command: - '--web.listen-address=:9187 --web.telemetry-path=/metrics --collector.database_wraparound --collector.long_running_transactions --collector.postmaster --collector.process_idle --collector.stat_activity_autovacuum --collector.stat_statements --collector.stat_wal_receiver --collector.statio_user_indexes' - '--extend.query-path=/etc/queries.yml'

volumes: grafana-storage: and queries.yml Configuration for pg_stat_statements: pg_stat_statements: query: | SELECT queryid, query, calls FROM pg_stat_statements; metrics: - queryid: usage: "LABEL" description: "Query ID" - query: usage: "LABEL" description: "SQL query text" - calls: usage: "GAUGE" description: "Number of times executed"

Issue Details:

Expected Behavior: postgres-exporter should collect metrics from pg_stat_statements and expose them at http://localhost:9187/metrics.

Actual Behavior: The exporter returns HTTP status 500 Internal Server Error when querying http://postgres-exporter:9187/metrics.

Additional Information:

I have verified that the pg_stat_statements extension is installed and enabled in my PostgreSQL database. The SELECT query from pg_stat_statements works correctly when executed directly in the database. Error logs from postgres-exporter show no specific errors related to the pg_stat_statements query itself.

aunghtetnay avatar Jul 02 '24 07:07 aunghtetnay

I am also facing the same issue, I am getting all the metric, except the one associated with pg_stat_statements_*

abhinav-zeeve avatar Sep 27 '24 06:09 abhinav-zeeve

I do have the exact same issue here

Gu1nness avatar Oct 15 '24 10:10 Gu1nness

i have the same issue, is all metrics for pg_stat_statements should be collected by pg_exporter by default ? or we supposed to use queries.yml for it ?

jhsee11 avatar Nov 11 '24 08:11 jhsee11

Im also stuck at that point, i've got all checked and the journalctl doesnt give me any critical error, but the pg_statement info is blank

root@smvmoodledev:/etc/systemd/system# curl http://localhost:9187/metrics | grep -i pg_stat_statements % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0# HELP pg_settings_pg_stat_statements_max Server Parameter: pg_stat_statements.max

TYPE pg_settings_pg_stat_statements_max gauge

pg_settings_pg_stat_statements_max{server="localhost:5432"} 50000

HELP pg_settings_pg_stat_statements_save Server Parameter: pg_stat_statements.save

TYPE pg_settings_pg_stat_statements_save gauge

pg_settings_pg_stat_statements_save{server="localhost:5432"} 1

HELP pg_settings_pg_stat_statements_track_planning Server Parameter: pg_stat_statements.track_planning

TYPE pg_settings_pg_stat_statements_track_planning gauge

pg_settings_pg_stat_statements_track_planning{server="localhost:5432"} 1

HELP pg_settings_pg_stat_statements_track_utility Server Parameter: pg_stat_statements.track_utility

TYPE pg_settings_pg_stat_statements_track_utility gauge

pg_settings_pg_stat_statements_track_utility{server="localhost:5432"} 1 100 121k 0 121k 0 0 1661k 0 --:--:-- --:--:-- --:--:-- 1685k root@smvmoodledev:/etc/systemd/system#

ibai-mutiloa avatar Dec 16 '24 15:12 ibai-mutiloa

To all of you, try using another user for postgres_exporter, i was using the root(that it supposed to have all the privilege) doesnt work but using a new user created as they explain in the github it works). https://github.com/prometheus-community/postgres_exporter where its the title Running as non-superuser.

ibai-mutiloa avatar Dec 20 '24 13:12 ibai-mutiloa

After so many time this issue is not yet fixed, cool

AbilvapEmiramzaiev avatar Aug 21 '25 17:08 AbilvapEmiramzaiev

If the stat_statements collector fails for some reason, there should be an error in the log for the "stat_statements" collector.

https://github.com/prometheus-community/postgres_exporter/blob/cb0bac60e13efdcb9cfbad3c6de283e3ef8e23be/collector/collector.go#L203-L208

sysadmind avatar Aug 26 '25 01:08 sysadmind