aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-08-20 12:21:22 +0100
committerChristopher Baines <mail@cbaines.net>2023-08-20 12:21:22 +0100
commit901b015864ebc9cf6224341ffd5ff91bb8801244 (patch)
tree649b84de328e37bc83f5cc752dce877a6408f3d9
parentf20372302f0361d64a7d44a7bf988e20d9ebf3f4 (diff)
downloadbuild-coordinator-901b015864ebc9cf6224341ffd5ff91bb8801244.tar
build-coordinator-901b015864ebc9cf6224341ffd5ff91bb8801244.tar.gz
Include metric for file descriptors
-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