aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-03-14 10:21:13 +0000
committerChristopher Baines <mail@cbaines.net>2024-03-14 10:21:13 +0000
commit5265db0673f0f6d02a32cb2b9b11cd4c11ddfa53 (patch)
tree7049541094efbd57e316c22d69b2acceec271d37
parent71507b3f0d9d5b3cb4fb4b35b967792dc5aa4607 (diff)
downloadnar-herder-5265db0673f0f6d02a32cb2b9b11cd4c11ddfa53.tar
nar-herder-5265db0673f0f6d02a32cb2b9b11cd4c11ddfa53.tar.gz
Instrument the recent changes count
-rw-r--r--nar-herder/recent-changes.scm17
-rw-r--r--nar-herder/server.scm5
2 files changed, 22 insertions, 0 deletions
diff --git a/nar-herder/recent-changes.scm b/nar-herder/recent-changes.scm
index 0ded58d..d95410e 100644
--- a/nar-herder/recent-changes.scm
+++ b/nar-herder/recent-changes.scm
@@ -23,6 +23,7 @@
#:use-module (fibers)
#:use-module (fibers channels)
#:use-module (logging logger)
+ #:use-module (prometheus)
#:use-module (web uri)
#:use-module (guix narinfo)
#:use-module (nar-herder database)
@@ -30,6 +31,7 @@
start-recent-change-listener-fiber))
(define (start-recent-change-removal-and-database-dump-fiber database
+ metrics-registry
database-dump-filename
check-interval
recent-changes-limit)
@@ -49,6 +51,9 @@
(simple-format (current-error-port)
"updated database dump\n")))
+ (define recent-changes-count-metric
+ (metrics-registry-fetch-metric metrics-registry "recent_changes_count"))
+
(spawn-fiber
(lambda ()
(while #t
@@ -74,6 +79,10 @@
(database-delete-recent-changes-with-id-below
database
recent-changes-id-for-deletion)))))
+
+ (metric-decrement recent-changes-count-metric
+ #:by deleted-recent-changes)
+
(simple-format (current-error-port)
"deleted ~A recent changes\n"
deleted-recent-changes)))
@@ -82,8 +91,12 @@
#:unwind? #t)))))
(define (start-recent-change-listener-fiber database
+ metrics-registry
addition-channel
removal-channel)
+ (define recent-changes-count-metric
+ (metrics-registry-fetch-metric metrics-registry "recent_changes_count"))
+
(define (process-addition-change change-details)
(let ((narinfo
(call-with-input-string
@@ -121,6 +134,10 @@
(lambda ()
(let ((recent-changes
(database-select-recent-changes database after)))
+
+ (metric-increment recent-changes-count-metric
+ #:by (length recent-changes))
+
(for-each
(lambda (change-details)
(when (not (member change-details
diff --git a/nar-herder/server.scm b/nar-herder/server.scm
index a978ce2..9b9ecbe 100644
--- a/nar-herder/server.scm
+++ b/nar-herder/server.scm
@@ -611,6 +611,9 @@
#f)
(download-database)))))
+ ;; Used elsewhere
+ (make-gauge-metric metrics-registry "recent_changes_count")
+
(let ((recent-changes-metric
(make-gauge-metric metrics-registry "recent_changes_limit")))
(metric-set recent-changes-metric (assq-ref opts 'recent-changes-limit)))
@@ -691,6 +694,7 @@
(start-recent-change-removal-and-database-dump-fiber
database
+ metrics-registry
(let ((filename (assq-ref opts 'database-dump)))
(if (string=? filename "disabled")
#f
@@ -760,6 +764,7 @@
(start-recent-change-listener-fiber
database
+ metrics-registry
addition-channel
removal-channel))