From 5265db0673f0f6d02a32cb2b9b11cd4c11ddfa53 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Thu, 14 Mar 2024 10:21:13 +0000 Subject: Instrument the recent changes count --- nar-herder/recent-changes.scm | 17 +++++++++++++++++ nar-herder/server.scm | 5 +++++ 2 files changed, 22 insertions(+) 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)) -- cgit v1.2.3