aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-06-19 20:57:16 +0100
committerChristopher Baines <mail@cbaines.net>2020-06-19 20:57:16 +0100
commit5a402642db769aaed61accba54c21708cbfd4978 (patch)
tree39af45294449a6cbf04ffd4b93888dad5143318f
parent9eaa55c0d00982dc28ec079d15132c5da57af318 (diff)
downloadbuild-coordinator-5a402642db769aaed61accba54c21708cbfd4978.tar
build-coordinator-5a402642db769aaed61accba54c21708cbfd4978.tar.gz
Report builds by derivation system
-rw-r--r--guix-build-coordinator/agent-messaging/http.scm12
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm12
2 files changed, 18 insertions, 6 deletions
diff --git a/guix-build-coordinator/agent-messaging/http.scm b/guix-build-coordinator/agent-messaging/http.scm
index f7459ad..9448201 100644
--- a/guix-build-coordinator/agent-messaging/http.scm
+++ b/guix-build-coordinator/agent-messaging/http.scm
@@ -154,7 +154,8 @@ port. Also, the port used can be changed by passing the --port option.\n"
(let ((builds-total
(make-gauge-metric registry
(string-append namespace
- "_builds_total")))
+ "_builds_total")
+ #:labels '(system)))
(allocated-builds-total
(make-gauge-metric registry
(string-append namespace
@@ -189,8 +190,13 @@ port. Also, the port used can be changed by passing the --port option.\n"
(datastore-list-agents datastore)))
(lambda ()
- (metric-set builds-total
- (datastore-count-builds datastore))
+ (for-each (match-lambda
+ ((system . count)
+ (metric-set builds-total
+ count
+ #:label-values
+ `((system . ,system)))))
+ (datastore-count-builds datastore))
(zero-metric-for-agents allocated-builds-total)
(for-each (match-lambda
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index 0497bab..aa65411 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -734,11 +734,17 @@ WHERE setup_failure_id = :id")))
(sqlite-prepare
db
"
-SELECT COUNT(*) FROM builds")))
+SELECT derivations.system, COUNT(*)
+FROM builds
+INNER JOIN derivations
+ ON builds.derivation_name = derivations.name")))
(let ((result
- (match (sqlite-step statement)
- (#(count) count))))
+ (sqlite-map
+ (match-lambda
+ (#(system count)
+ (cons system count)))
+ statement)))
(sqlite-reset statement)
result)))))