aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)))))