aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/web/controller.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/web/controller.scm')
-rw-r--r--guix-data-service/web/controller.scm32
1 files changed, 32 insertions, 0 deletions
diff --git a/guix-data-service/web/controller.scm b/guix-data-service/web/controller.scm
index c9a6a04..580ae0e 100644
--- a/guix-data-service/web/controller.scm
+++ b/guix-data-service/web/controller.scm
@@ -174,6 +174,24 @@
#:labels '(table column))))
pg-stats-fields))
+ (resource-pools
+ `(("normal" . ,(connection-pool))
+ ("reserved" . ,(reserved-connection-pool))))
+
+ (resource-pool-metrics
+ `((resources . ,(make-gauge-metric
+ registry
+ "resource_pool_resources_total"
+ #:labels '(pool_name)))
+ (available . ,(make-gauge-metric
+ registry
+ "resource_pool_resources_available_total"
+ #:labels '(pool_name)))
+ (waiters . ,(make-gauge-metric
+ registry
+ "resource_pool_waiters_total"
+ #:labels '(pool_name)))))
+
(gc-metrics-updater
(get-gc-metrics-updater registry)))
@@ -214,6 +232,20 @@
(reserved-connection-pool)
select-load-new-guix-revision-job-metrics)))
+ (for-each
+ (match-lambda
+ ((name . pool)
+ (for-each
+ (match-lambda
+ ((stat . value)
+ (metric-set
+ (assq-ref resource-pool-metrics stat)
+ value
+ #:label-values
+ `((pool_name . ,name)))))
+ (resource-pool-stats pool))))
+ resource-pools)
+
(for-each (match-lambda
((name tablespace row-estimate
table-bytes toast-bytes)