aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/metrics.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-10-09 19:35:31 +0100
committerChristopher Baines <mail@cbaines.net>2020-10-09 19:35:31 +0100
commit3cb8ce51fcc0b319f0e49d9a71cfef5bf46786fc (patch)
tree9f1d255c2d1bd4f0cfb7f65da9730f8fdcb88673 /guix-data-service/metrics.scm
parent6023aa8caf6e7098109b756ca490ca73d0cbe559 (diff)
downloaddata-service-3cb8ce51fcc0b319f0e49d9a71cfef5bf46786fc.tar
data-service-3cb8ce51fcc0b319f0e49d9a71cfef5bf46786fc.tar.gz
Include tablespace as a label for table metrics
As this will make it easier to tell where space is going.
Diffstat (limited to 'guix-data-service/metrics.scm')
-rw-r--r--guix-data-service/metrics.scm9
1 files changed, 7 insertions, 2 deletions
diff --git a/guix-data-service/metrics.scm b/guix-data-service/metrics.scm
index 19dc0d5..50be722 100644
--- a/guix-data-service/metrics.scm
+++ b/guix-data-service/metrics.scm
@@ -38,6 +38,7 @@ WITH RECURSIVE pg_inherit(inhrelid, inhparent) AS (
WHERE inhparent NOT IN (SELECT inhrelid FROM pg_inherit)
)
SELECT table_name,
+ COALESCE(pg_tablespace.spcname,'default') AS tablespace,
row_estimate,
table_bytes,
index_bytes,
@@ -48,6 +49,7 @@ FROM (
SELECT c.oid,
nspname AS table_schema,
relname AS table_name,
+ reltablespace AS tablespace_id,
SUM(c.reltuples) OVER (partition BY parent) AS row_estimate,
SUM(pg_total_relation_size(c.oid)) OVER (partition BY parent) AS total_bytes,
SUM(pg_indexes_size(c.oid)) OVER (partition BY parent) AS index_bytes,
@@ -58,6 +60,7 @@ FROM (
reltuples,
relname,
relnamespace,
+ reltablespace,
pg_class.reltoastrelid,
COALESCE(inhparent, pg_class.oid) parent
FROM pg_class
@@ -68,11 +71,13 @@ FROM (
) a
WHERE oid = parent
AND table_schema = 'guix_data_service'
-) a;")
+) a
+LEFT JOIN pg_tablespace ON tablespace_id = pg_tablespace.oid")
(map (match-lambda
- ((name row-estimate table-bytes index-bytes toast-bytes)
+ ((name tablespace row-estimate table-bytes index-bytes toast-bytes)
(list name
+ tablespace
(or (string->number row-estimate) 0)
(or (string->number table-bytes) 0)
(or (string->number index-bytes) 0)