Skip to content

Commit b14820f

Browse files
committed
fix: pg_stat_progress_vacuum and pg_stat_progress_cluster metric is missing schema and table names
1 parent 808ebdf commit b14820f

2 files changed

Lines changed: 136 additions & 36 deletions

File tree

stackgres-k8s/src/operator/src/main/resources/prometheus-postgres-exporter/queries-1.22.yaml

Lines changed: 68 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -854,19 +854,38 @@ pg_stat_current_waiting_query:
854854

855855
pg_stat_progress_vacuum:
856856
query: |
857-
SELECT
858-
datname,
859-
nspname AS schemaname,
860-
relname,
861-
heap_blks_total,
862-
heap_blks_scanned,
863-
heap_blks_vacuumed,
864-
index_vacuum_count,
865-
max_dead_tuples,
866-
num_dead_tuples
867-
FROM pg_stat_progress_vacuum
868-
JOIN pg_class ON (pg_stat_progress_vacuum.relid = pg_class.oid)
869-
JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid);
857+
SET max_parallel_workers_per_gather = 0;
858+
WITH databases AS (
859+
SELECT datname FROM pg_database
860+
WHERE datname NOT IN ('template0', 'template1')
861+
)
862+
SELECT DISTINCT ON (datname, schemaname, relname) _.* FROM databases,
863+
LATERAL (SELECT * FROM dblink(
864+
'host=/var/run/postgresql port=5432 user=' || CURRENT_USER || ' sslmode=disable dbname=''' || regexp_replace(datname, '([.\\])', '\\\1', 'g') || '''',
865+
'
866+
SELECT
867+
datname,
868+
nspname AS schemaname,
869+
relname,
870+
heap_blks_total,
871+
heap_blks_scanned,
872+
heap_blks_vacuumed,
873+
index_vacuum_count,
874+
max_dead_tuples,
875+
num_dead_tuples
876+
FROM pg_stat_progress_vacuum
877+
JOIN pg_class ON (pg_stat_progress_vacuum.relid = pg_class.oid)
878+
JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid)
879+
')
880+
AS (datname text,
881+
schemaname text,
882+
relname text,
883+
heap_blks_total bigint,
884+
heap_blks_scanned bigint,
885+
heap_blks_vacuumed bigint,
886+
index_vacuum_count bigint,
887+
max_dead_tuples bigint,
888+
num_dead_tuples bigint)) AS _;
870889
master: true
871890
metrics:
872891
- datname:
@@ -899,16 +918,47 @@ pg_stat_progress_vacuum:
899918

900919
pg_stat_progress_cluster:
901920
query: |
902-
SELECT
903-
datname,
904-
heap_tuples_scanned, heap_tuples_written, heap_blks_total,
905-
heap_blks_scanned, index_rebuild_count
906-
FROM pg_stat_progress_cluster;
921+
SET max_parallel_workers_per_gather = 0;
922+
WITH databases AS (
923+
SELECT datname FROM pg_database
924+
WHERE datname NOT IN ('template0', 'template1')
925+
)
926+
SELECT DISTINCT ON (datname, schemaname, relname) _.* FROM databases,
927+
LATERAL (SELECT * FROM dblink(
928+
'host=/var/run/postgresql port=5432 user=' || CURRENT_USER || ' sslmode=disable dbname=''' || regexp_replace(datname, '([.\\])', '\\\1', 'g') || '''',
929+
'
930+
SELECT
931+
datname,
932+
nspname AS schemaname,
933+
relname,
934+
heap_tuples_scanned,
935+
heap_tuples_written,
936+
heap_blks_total,
937+
heap_blks_scanned,
938+
index_rebuild_count
939+
FROM pg_stat_progress_cluster
940+
JOIN pg_class ON (pg_stat_progress_cluster.relid = pg_class.oid)
941+
JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid)
942+
')
943+
AS (datname text,
944+
schemaname text,
945+
relname text,
946+
heap_tuples_scanned bigint,
947+
heap_tuples_written bigint,
948+
heap_blks_total bigint,
949+
heap_blks_scanned bigint,
950+
index_rebuild_count bigint)) AS _;
907951
master: true
908952
metrics:
909953
- datname:
910954
usage: "LABEL"
911955
description: "Name of the database to which this backend is connected"
956+
- schemaname:
957+
usage: "LABEL"
958+
description: "Name of the schema that this table is in"
959+
- relname:
960+
usage: "LABEL"
961+
description: "Name of this table"
912962
- heap_tuples_scanned:
913963
usage: "GAUGE"
914964
description: "Number of heap tuples scanned. This counter only advances when the phase is seq scanning heap, index scanning heap or writing new heap"

stackgres-k8s/src/operator/src/main/resources/prometheus-postgres-exporter/queries.yaml

Lines changed: 68 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -854,19 +854,38 @@ pg_stat_current_waiting_query:
854854

855855
pg_stat_progress_vacuum:
856856
query: |
857-
SELECT
858-
datname,
859-
nspname AS schemaname,
860-
relname,
861-
heap_blks_total,
862-
heap_blks_scanned,
863-
heap_blks_vacuumed,
864-
index_vacuum_count,
865-
max_dead_tuples,
866-
num_dead_tuples
867-
FROM pg_stat_progress_vacuum
868-
JOIN pg_class ON (pg_stat_progress_vacuum.relid = pg_class.oid)
869-
JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid);
857+
SET max_parallel_workers_per_gather = 0;
858+
WITH databases AS (
859+
SELECT datname FROM pg_database
860+
WHERE datname NOT IN ('template0', 'template1')
861+
)
862+
SELECT DISTINCT ON (datname, schemaname, relname) _.* FROM databases,
863+
LATERAL (SELECT * FROM dblink(
864+
'host=/var/run/postgresql port=5432 user=' || CURRENT_USER || ' sslmode=disable dbname=''' || regexp_replace(datname, '([.\\])', '\\\1', 'g') || '''',
865+
'
866+
SELECT
867+
datname,
868+
nspname AS schemaname,
869+
relname,
870+
heap_blks_total,
871+
heap_blks_scanned,
872+
heap_blks_vacuumed,
873+
index_vacuum_count,
874+
max_dead_tuples,
875+
num_dead_tuples
876+
FROM pg_stat_progress_vacuum
877+
JOIN pg_class ON (pg_stat_progress_vacuum.relid = pg_class.oid)
878+
JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid)
879+
')
880+
AS (datname text,
881+
schemaname text,
882+
relname text,
883+
heap_blks_total bigint,
884+
heap_blks_scanned bigint,
885+
heap_blks_vacuumed bigint,
886+
index_vacuum_count bigint,
887+
max_dead_tuples bigint,
888+
num_dead_tuples bigint)) AS _;
870889
master: true
871890
metrics:
872891
- datname:
@@ -899,16 +918,47 @@ pg_stat_progress_vacuum:
899918

900919
pg_stat_progress_cluster:
901920
query: |
902-
SELECT
903-
datname,
904-
heap_tuples_scanned, heap_tuples_written, heap_blks_total,
905-
heap_blks_scanned, index_rebuild_count
906-
FROM pg_stat_progress_cluster;
921+
SET max_parallel_workers_per_gather = 0;
922+
WITH databases AS (
923+
SELECT datname FROM pg_database
924+
WHERE datname NOT IN ('template0', 'template1')
925+
)
926+
SELECT DISTINCT ON (datname, schemaname, relname) _.* FROM databases,
927+
LATERAL (SELECT * FROM dblink(
928+
'host=/var/run/postgresql port=5432 user=' || CURRENT_USER || ' sslmode=disable dbname=''' || regexp_replace(datname, '([.\\])', '\\\1', 'g') || '''',
929+
'
930+
SELECT
931+
datname,
932+
nspname AS schemaname,
933+
relname,
934+
heap_tuples_scanned,
935+
heap_tuples_written,
936+
heap_blks_total,
937+
heap_blks_scanned,
938+
index_rebuild_count
939+
FROM pg_stat_progress_cluster
940+
JOIN pg_class ON (pg_stat_progress_cluster.relid = pg_class.oid)
941+
JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid)
942+
')
943+
AS (datname text,
944+
schemaname text,
945+
relname text,
946+
heap_tuples_scanned bigint,
947+
heap_tuples_written bigint,
948+
heap_blks_total bigint,
949+
heap_blks_scanned bigint,
950+
index_rebuild_count bigint)) AS _;
907951
master: true
908952
metrics:
909953
- datname:
910954
usage: "LABEL"
911955
description: "Name of the database to which this backend is connected"
956+
- schemaname:
957+
usage: "LABEL"
958+
description: "Name of the schema that this table is in"
959+
- relname:
960+
usage: "LABEL"
961+
description: "Name of this table"
912962
- heap_tuples_scanned:
913963
usage: "GAUGE"
914964
description: "Number of heap tuples scanned. This counter only advances when the phase is seq scanning heap, index scanning heap or writing new heap"

0 commit comments

Comments
 (0)