diff options
Diffstat (limited to 'bffe/manage-builds.scm')
-rw-r--r-- | bffe/manage-builds.scm | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/bffe/manage-builds.scm b/bffe/manage-builds.scm index 16484c3..b5d95bd 100644 --- a/bffe/manage-builds.scm +++ b/bffe/manage-builds.scm @@ -21,20 +21,17 @@ #:use-module (srfi srfi-71) #:use-module (ice-9 match) #:use-module (ice-9 exceptions) - #:use-module (rnrs bytevectors) #:use-module (ice-9 textual-ports) #:use-module (logging logger) - #:use-module (logging port-log) + #:use-module (prometheus) #:use-module (zlib) #:use-module (json) #:use-module (fibers) #:use-module (fibers channels) #:use-module (guix records) #:use-module (web uri) - #:use-module (web client) #:use-module (web response) #:use-module (guix-build-coordinator client-communication) - #:use-module ((guix-build-coordinator utils) #:select (create-work-queue)) #:use-module ((guix-build-coordinator utils fibers) #:select (retry-on-error)) #:use-module (bffe server) #:export (build-from-guix-data-service @@ -67,7 +64,9 @@ (default #f)) (revision-parameters build-from-guix-data-service-revision-parameters - (default '()))) + (default '())) + (parallelism build-from-guix-data-service-parallelism + (default 2))) (define-exception-type &guix-data-service-error &error make-guix-data-service-error @@ -418,12 +417,19 @@ " package builds for " log-suffix)))) (define (submit-builds-pass + metrics-registry submit-build/fiberized guix-data-service specification processed-commits-hash record-revision-as-processed systems-and-targets) + (define unseen-revisions-metric + (or (metrics-registry-fetch-metric + metrics-registry "unseen_revisions_total") + (make-gauge-metric metrics-registry + "unseen_revisions_total"))) + (fibers-for-each (lambda (repository-id) (fibers-for-each @@ -451,6 +457,7 @@ "revisions"))))) (log-msg 'DEBUG (length unseen-revisions) " unseen revisions") + (metric-set unseen-revisions-metric (length unseen-revisions)) (for-each (lambda (commit) (log-msg 'INFO "looking at revision " commit) @@ -492,6 +499,7 @@ systems-and-targets) (log-msg 'INFO "finished looking at revision " commit) + (metric-decrement unseen-revisions-metric) (record-revision-as-processed commit)) (reverse unseen-revisions)))) (let ((all-branches (all-repository-branches guix-data-service @@ -505,7 +513,8 @@ (sleep 60)) -(define* (start-submit-builds-fibers specification +(define* (start-submit-builds-fibers metrics-registry + specification #:key processed-commits-file) (define processed-commits-hash @@ -519,7 +528,7 @@ (simple-format port "~A\n" commit) (close-port port)))) -(define* (submit-build coordinator guix-data-service derivation + (define* (submit-build coordinator guix-data-service derivation #:key (priority 0) (log-prefix "") (tags '())) (retry-on-error @@ -572,8 +581,8 @@ (let ((submit-build/fiberized (fiberize submit-build - #:parallelism 8))) - + #:parallelism (build-from-guix-data-service-parallelism + specification)))) (spawn-fiber (lambda () (while #t @@ -587,7 +596,8 @@ (lambda () (with-throw-handler #t (lambda () - (submit-builds-pass submit-build/fiberized + (submit-builds-pass metrics-registry + submit-build/fiberized guix-data-service specification processed-commits-hash |