Instrument handling build events

This commit is contained in:
Christopher Baines 2023-11-24 16:11:42 +00:00
parent e13febc817
commit 241a704db1
2 changed files with 64 additions and 51 deletions

View file

@ -21,9 +21,11 @@
#:use-module (rnrs bytevectors) #:use-module (rnrs bytevectors)
#:use-module (json) #:use-module (json)
#:use-module (fibers) #:use-module (fibers)
#:use-module (prometheus)
#:use-module (guix-data-service utils) #:use-module (guix-data-service utils)
#:use-module (guix-data-service database) #:use-module (guix-data-service database)
#:use-module (guix-data-service substitutes) #:use-module (guix-data-service substitutes)
#:use-module (guix-data-service web server)
#:use-module (guix-data-service web render) #:use-module (guix-data-service web render)
#:use-module (guix-data-service web query-parameters) #:use-module (guix-data-service web query-parameters)
#:use-module (guix-data-service web controller) #:use-module (guix-data-service web controller)
@ -255,6 +257,10 @@
(render-json (render-json
'((error . "no token provided")) '((error . "no token provided"))
#:code 400) #:code 400)
(call-with-duration-metric
(%guix-data-service-metrics-registry)
"build_server_handle_events_submission_duration_seconds"
(lambda ()
(let ((provided-token (assq-ref parsed-query-parameters 'token)) (let ((provided-token (assq-ref parsed-query-parameters 'token))
(permitted-tokens (permitted-tokens
(with-resource-from-pool (reserved-connection-pool) conn (with-resource-from-pool (reserved-connection-pool) conn
@ -304,7 +310,7 @@
#:code 400))) #:code 400)))
(render-json (render-json
'((error . "error")) '((error . "error"))
#:code 403))))) #:code 403)))))))
(define (handle-signing-key-request id) (define (handle-signing-key-request id)
(render-html (render-html

View file

@ -35,7 +35,9 @@
#:use-module (guix-data-service database) #:use-module (guix-data-service database)
#:use-module (guix-data-service web controller) #:use-module (guix-data-service web controller)
#:use-module (guix-data-service web util) #:use-module (guix-data-service web util)
#:export (start-guix-data-service-web-server)) #:export (%guix-data-service-metrics-registry
start-guix-data-service-web-server))
(define (check-startup-completed startup-completed) (define (check-startup-completed startup-completed)
(if (atomic-box-ref startup-completed) (if (atomic-box-ref startup-completed)
@ -64,6 +66,9 @@
(check-startup-completed startup-completed) (check-startup-completed startup-completed)
render-metrics)))) render-metrics))))
(define %guix-data-service-metrics-registry
(make-parameter #f))
(define* (start-guix-data-service-web-server port host secret-key-base (define* (start-guix-data-service-web-server port host secret-key-base
startup-completed startup-completed
#:key postgresql-statement-timeout #:key postgresql-statement-timeout
@ -73,6 +78,8 @@
(%database-metrics-registry registry) (%database-metrics-registry registry)
(%guix-data-service-metrics-registry registry)
(let ((finished? (make-condition))) (let ((finished? (make-condition)))
(call-with-sigint (call-with-sigint
(lambda () (lambda ()