diff options
Diffstat (limited to 'guix-data-service/web/controller.scm')
-rw-r--r-- | guix-data-service/web/controller.scm | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/guix-data-service/web/controller.scm b/guix-data-service/web/controller.scm index c06b24c..bc489b5 100644 --- a/guix-data-service/web/controller.scm +++ b/guix-data-service/web/controller.scm @@ -544,7 +544,28 @@ (or (render-static-asset (string-join rest "/") (request-headers request)) (not-found (request-uri request)))) - + ((GET "healthcheck") + (let ((database-status + (catch + #t + (lambda () + (with-postgresql-connection + (lambda (conn) + (number? + (string->number + (first + (count-guix-revisions conn))))))) + (lambda (key . args) + (peek key args) + #f)))) + (render-json + `((status . ,(if database-status + "ok" + "not ok"))) + #:code (if (eq? database-status + #t) + 200 + 500)))) (_ (with-postgresql-connection (lambda (conn) |