aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bffe.scm47
-rw-r--r--bffe/config.scm.in1
-rw-r--r--bffe/manage-builds.scm30
-rw-r--r--bffe/server.scm12
-rw-r--r--bffe/view/activity.scm1
-rw-r--r--bffe/view/agent.scm4
-rw-r--r--bffe/view/build.scm4
-rw-r--r--bffe/view/home.scm4
-rw-r--r--bffe/view/util.scm8
9 files changed, 48 insertions, 63 deletions
diff --git a/bffe.scm b/bffe.scm
index 5b3d428..beba5c4 100644
--- a/bffe.scm
+++ b/bffe.scm
@@ -17,6 +17,7 @@
;;; <http://www.gnu.org/licenses/>.
(define-module (bffe)
+ #:use-module (srfi srfi-1)
#:use-module (ice-9 format)
#:use-module (oop goops)
#:use-module (prometheus)
@@ -45,11 +46,14 @@
(port-log (make <port-log>
#:port (current-output-port)
#:formatter
- (lambda (lvl time str)
+ ;; In guile-lib v0.2.8 onwards, the formatter is
+ ;; called with more arguments
+ (lambda args ; lvl, time, str
(format #f "~a (~5a): ~a~%"
- (strftime "%F %H:%M:%S" (localtime time))
- lvl
- str)))))
+ (strftime "%F %H:%M:%S" (localtime
+ (second args)))
+ (first args)
+ (third args))))))
(setvbuf (current-output-port) 'line)
@@ -57,20 +61,23 @@
(open-log! lgr)
(set-default-logger! lgr)
- (let ((finished? (make-condition)))
- (call-with-sigint
- (lambda ()
- (run-fibers
- (lambda ()
- (for-each start-submit-builds-fibers
- build)
+ (with-fluids ((%file-port-name-canonicalization 'none))
+ (let ((finished? (make-condition)))
+ (call-with-sigint
+ (lambda ()
+ (run-fibers
+ (lambda ()
+ (for-each
+ (lambda (spec)
+ (start-submit-builds-fibers metrics-registry spec))
+ build)
- (when web-server-args
- (apply start-bffe-web-server
- `(,@web-server-args
- #:pid-file ,pid-file
- #:metrics-registry ,metrics-registry)))
- (wait finished?))
- #:hz 0
- #:parallelism 1))
- finished?))))
+ (when web-server-args
+ (apply start-bffe-web-server
+ `(,@web-server-args
+ #:pid-file ,pid-file
+ #:metrics-registry ,metrics-registry)))
+ (wait finished?))
+ #:hz 0
+ #:parallelism 1))
+ finished?)))))
diff --git a/bffe/config.scm.in b/bffe/config.scm.in
index 19e5832..7af9d4d 100644
--- a/bffe/config.scm.in
+++ b/bffe/config.scm.in
@@ -17,7 +17,6 @@
;;; <http://www.gnu.org/licenses/>.
(define-module (bffe config)
- #:use-module (guix store)
#:export (%config))
(define %config
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
diff --git a/bffe/server.scm b/bffe/server.scm
index dc9a06d..eae7291 100644
--- a/bffe/server.scm
+++ b/bffe/server.scm
@@ -24,12 +24,9 @@
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-71)
#:use-module (ice-9 vlist)
- #:use-module (ice-9 threads)
#:use-module (ice-9 match)
#:use-module (ice-9 atomic)
#:use-module (ice-9 textual-ports)
- #:use-module (rnrs bytevectors)
- #:use-module (web http)
#:use-module (web client)
#:use-module (web request)
#:use-module (web response)
@@ -38,18 +35,11 @@
#:use-module (prometheus)
#:use-module (system repl error-handling)
#:use-module (fibers)
- #:use-module (fibers scheduler)
#:use-module (fibers channels)
- #:use-module (fibers conditions)
- #:use-module (fibers web server)
#:use-module ((guix store) #:select (%store-prefix))
- #:use-module ((guix build utils) #:select (dump-port))
#:use-module (guix-data-service web util)
- #:use-module ((guix-build-coordinator utils)
- #:select (with-time-logging call-with-delay-logging))
#:use-module ((guix-build-coordinator utils fibers)
#:select (run-server/patched retry-on-error))
- #:use-module (guix-build-coordinator client-communication)
#:use-module (bffe config)
#:use-module (bffe view util)
#:use-module (bffe view home)
@@ -154,7 +144,7 @@
(lambda ()
(with-throw-handler #t
(lambda ()
- (let ((response
+ (let ((_
body
(http-get*
(string->uri
diff --git a/bffe/view/activity.scm b/bffe/view/activity.scm
index 1621872..5a97bd2 100644
--- a/bffe/view/activity.scm
+++ b/bffe/view/activity.scm
@@ -2,7 +2,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19)
#:use-module (ice-9 match)
- #:use-module (ice-9 format)
#:use-module (bffe view util)
#:use-module ((guix store) #:select (%store-prefix))
#:export (activity))
diff --git a/bffe/view/agent.scm b/bffe/view/agent.scm
index e210402..1de2f71 100644
--- a/bffe/view/agent.scm
+++ b/bffe/view/agent.scm
@@ -1,10 +1,6 @@
(define-module (bffe view agent)
#:use-module (srfi srfi-1)
- #:use-module (srfi srfi-19)
- #:use-module (ice-9 match)
- #:use-module (ice-9 format)
#:use-module (bffe view util)
- #:use-module ((guix store) #:select (%store-prefix))
#:export (agent))
(define (agent title agent-details)
diff --git a/bffe/view/build.scm b/bffe/view/build.scm
index ded00ef..c061668 100644
--- a/bffe/view/build.scm
+++ b/bffe/view/build.scm
@@ -1,10 +1,6 @@
(define-module (bffe view build)
#:use-module (srfi srfi-1)
- #:use-module (srfi srfi-19)
- #:use-module (ice-9 match)
- #:use-module (ice-9 format)
#:use-module (bffe view util)
- #:use-module ((guix store) #:select (%store-prefix))
#:export (build))
(define (build title build-details derivation-link-target tag-link-target)
diff --git a/bffe/view/home.scm b/bffe/view/home.scm
index 820f75f..3f3b1de 100644
--- a/bffe/view/home.scm
+++ b/bffe/view/home.scm
@@ -1,8 +1,4 @@
(define-module (bffe view home)
- #:use-module (srfi srfi-1)
- #:use-module (srfi srfi-19)
- #:use-module (ice-9 match)
- #:use-module (ice-9 format)
#:use-module (bffe view util)
#:export (home))
diff --git a/bffe/view/util.scm b/bffe/view/util.scm
index 9b4a676..c6b89b0 100644
--- a/bffe/view/util.scm
+++ b/bffe/view/util.scm
@@ -17,23 +17,15 @@
;;; <http://www.gnu.org/licenses/>.
(define-module (bffe view util)
- #:use-module (guix-data-service config)
- #:use-module (guix-data-service web query-parameters)
#:use-module (guix-data-service web util)
- #:use-module (guix-data-service web html-utils)
#:use-module ((guix-data-service web render) #:prefix guix-data-service:)
#:use-module (ice-9 ftw)
- #:use-module (ice-9 vlist)
#:use-module (ice-9 match)
#:use-module (ice-9 binary-ports)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
- #:use-module (web uri)
#:use-module (web response)
- #:use-module (texinfo)
- #:use-module (texinfo html)
- #:use-module (json)
#:export (layout
header
form-horizontal-control