aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-build-coordinator/utils.scm18
1 files changed, 15 insertions, 3 deletions
diff --git a/guix-build-coordinator/utils.scm b/guix-build-coordinator/utils.scm
index 8926fa8..69d5167 100644
--- a/guix-build-coordinator/utils.scm
+++ b/guix-build-coordinator/utils.scm
@@ -1321,15 +1321,27 @@ again."
metrics))))
(define (get-port-metrics-updater registry)
- (let ((count-metric
- (make-gauge-metric registry "guile_ports_total")))
+ (let ((ports-metric
+ (make-gauge-metric registry "guile_ports_total"))
+ (fds-metric
+ (make-gauge-metric registry "file_descriptors_total")))
(lambda ()
(let ((count 0))
(port-for-each
(lambda _
(set! count (+ 1 count))))
- (metric-set count-metric count)))))
+ (metric-set ports-metric count))
+
+ (metric-set
+ fds-metric
+ (length
+ ;; In theory 'scandir' cannot return #f, but in practice,
+ ;; we've seen it before.
+ (or (scandir "/proc/self/fd"
+ (lambda (file)
+ (not (member file '("." "..")))))
+ '()))))))
(define (get-guix-memory-metrics-updater registry)
(define %memoization-tables