diff options
author | Christopher Baines <mail@cbaines.net> | 2024-03-14 10:21:13 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2024-03-14 10:21:13 +0000 |
commit | 5265db0673f0f6d02a32cb2b9b11cd4c11ddfa53 (patch) | |
tree | 7049541094efbd57e316c22d69b2acceec271d37 | |
parent | 71507b3f0d9d5b3cb4fb4b35b967792dc5aa4607 (diff) | |
download | nar-herder-5265db0673f0f6d02a32cb2b9b11cd4c11ddfa53.tar nar-herder-5265db0673f0f6d02a32cb2b9b11cd4c11ddfa53.tar.gz |
Instrument the recent changes count
-rw-r--r-- | nar-herder/recent-changes.scm | 17 | ||||
-rw-r--r-- | nar-herder/server.scm | 5 |
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)) |