aboutsummaryrefslogtreecommitdiff
path: root/bffe/manage-builds.scm
diff options
context:
space:
mode:
Diffstat (limited to 'bffe/manage-builds.scm')
-rw-r--r--bffe/manage-builds.scm30
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