branch: main commit dea68d4e795d8f4852f743ca8d4d3026ab6021a6 Author: Ludovic Courtès <l...@gnu.org> AuthorDate: Sun Jan 5 19:25:31 2025 +0100
templates: metrics: Show pending builds per system. * src/cuirass/templates.scm (bright-color): New procedure. (global-metrics-content): Add #:pending-builds-per-system. Add it to ‘pending-builds-chart’. Pass #:legend? #t and adjust the dataset argument, #:labels, and #:colors to include all the systems. * src/cuirass/http.scm (metrics-page): Pass #:pending-builds-per-system. --- src/cuirass/http.scm | 8 +++++++- src/cuirass/templates.scm | 21 +++++++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/cuirass/http.scm b/src/cuirass/http.scm index 25b9074..a943b2c 100644 --- a/src/cuirass/http.scm +++ b/src/cuirass/http.scm @@ -1,7 +1,7 @@ ;;;; http.scm -- HTTP API ;;; Copyright © 2016 Mathieu Lirzin <m...@gnu.org> ;;; Copyright © 2017, 2020, 2021 Mathieu Othacehe <othac...@gnu.org> -;;; Copyright © 2018-2020, 2023-2024 Ludovic Courtès <l...@gnu.org> +;;; Copyright © 2018-2020, 2023-2025 Ludovic Courtès <l...@gnu.org> ;;; Copyright © 2018 Clément Lassieur <clem...@lassieur.org> ;;; Copyright © 2018 Tatiana Sholokhova <tanja201...@gmail.com> ;;; Copyright © 2019, 2020 Ricardo Wurmus <rek...@elephly.net> @@ -363,6 +363,12 @@ Hydra format." #:pending-builds (db-get-metrics-with-id 'pending-builds #:limit 100) + #:pending-builds-per-system + (map (lambda (system) + (db-get-metrics-with-id 'pending-builds-per-system + #:value system + #:limit 100)) + %cuirass-supported-systems) #:percentage-failed-eval (list (db-get-metrics-with-id diff --git a/src/cuirass/templates.scm b/src/cuirass/templates.scm index ef7e241..6f3c2d1 100644 --- a/src/cuirass/templates.scm +++ b/src/cuirass/templates.scm @@ -1,6 +1,6 @@ ;;; templates.scm -- HTTP API ;;; Copyright © 2018 Tatiana Sholokhova <tanja201...@gmail.com> -;;; Copyright © 2018-2021, 2023-2024 Ludovic Courtès <l...@gnu.org> +;;; Copyright © 2018-2021, 2023-2025 Ludovic Courtès <l...@gnu.org> ;;; Copyright © 2019, 2020 Ricardo Wurmus <rek...@elephly.net> ;;; Copyright © 2020 Mathieu Othacehe <othac...@gnu.org> ;;; @@ -1941,6 +1941,13 @@ window.~a = new Chart\ });" id id (string-replace-substring (scm->json-string chart) "\"" "'")))))) +(define (bright-color str) + "Compute a bright color based on STR." + (let ((hash (string-hash str (expt 2 24)))) + (if (or (< hash #x303030) (> hash #xd0d0d0)) + (bright-color (string-append str "+")) + (format #f "#~6'0x" hash)))) + (define* (global-metrics-content #:key avg-eval-durations avg-eval-build-start-time @@ -1949,6 +1956,7 @@ window.~a = new Chart\ eval-completion-speed new-derivations-per-day pending-builds + pending-builds-per-system percentage-failed-eval) (define (avg-eval-duration-row . eval-durations) (let ((spec (match eval-durations @@ -2094,13 +2102,18 @@ completed builds divided by the time required to build them.") #:labels '("Completion speed") #:colors (list "#3e95cd")) ,@(make-line-chart pending-builds-chart - (list (builds->json-scm pending-builds)) + (cons (builds->json-scm pending-builds) + (map builds->json-scm + pending-builds-per-system)) #:time-x-axes? #t #:x-label "Day" #:y-label "Builds" #:title "Pending builds" - #:labels '("Pending builds") - #:colors (list "#3e95cd"))))) + #:legend? #t + #:labels (cons "Total" %cuirass-supported-systems) + #:colors (cons "#3e95cd" + (map bright-color + %cuirass-supported-systems)))))) (define system->color-class (let ((alist (map cons