aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/utils.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-04-27 12:19:53 +0200
committerChristopher Baines <mail@cbaines.net>2023-04-27 12:19:53 +0200
commitfb4332d436dfb730424008f68eef0e4dff6ba6ac (patch)
tree2b5bd37e05925ea3f09e199937a0da6cbb00e8d7 /guix-build-coordinator/utils.scm
parent6151b2e0e2c907eb847c5e1d5dc929f89008fdd1 (diff)
downloadbuild-coordinator-fb4332d436dfb730424008f68eef0e4dff6ba6ac.tar
build-coordinator-fb4332d436dfb730424008f68eef0e4dff6ba6ac.tar.gz
Try to instrument ports/file descriptors
I'm seeing "too many open file" errors, and while I'm not sure if port-for-each is directly connected, it sounds like it might be worth instrumenting.
Diffstat (limited to 'guix-build-coordinator/utils.scm')
-rw-r--r--guix-build-coordinator/utils.scm12
1 files changed, 12 insertions, 0 deletions
diff --git a/guix-build-coordinator/utils.scm b/guix-build-coordinator/utils.scm
index b044718..edcc129 100644
--- a/guix-build-coordinator/utils.scm
+++ b/guix-build-coordinator/utils.scm
@@ -88,6 +88,7 @@
running-on-the-hurd?
get-gc-metrics-updater
+ get-port-metrics-updater
get-guix-memory-metrics-updater
check-locale!
@@ -1334,6 +1335,17 @@ again."
(metric-set metric value))))
metrics))))
+(define (get-port-metrics-updater registry)
+ (let ((count-metric
+ (make-gauge-metric registry "guile_ports_total")))
+ (lambda ()
+ (let ((count 0))
+ (port-for-each
+ (lambda _
+ (set! count (+ 1 count))))
+
+ (metric-set count-metric count)))))
+
(define (get-guix-memory-metrics-updater registry)
(define %memoization-tables
(@@ (guix memoization) %memoization-tables))