aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-04-01 23:05:16 +0100
committerChristopher Baines <mail@cbaines.net>2024-04-01 23:05:16 +0100
commite9d8f119b516248e341637ca1561b29174de7bb0 (patch)
tree152d6bc6b52b8dd56b9eaef343859787c489042e
parent2eea6e7f8ff823c47d611c6ceefea33f5bac67b5 (diff)
downloadnar-herder-e9d8f119b516248e341637ca1561b29174de7bb0.tar
nar-herder-e9d8f119b516248e341637ca1561b29174de7bb0.tar.gz
Instrument the database and WAL file size
-rw-r--r--nar-herder/database.scm25
-rw-r--r--nar-herder/server.scm1
2 files changed, 26 insertions, 0 deletions
diff --git a/nar-herder/database.scm b/nar-herder/database.scm
index 75cd049..2db561a 100644
--- a/nar-herder/database.scm
+++ b/nar-herder/database.scm
@@ -33,6 +33,7 @@
#:use-module (guix derivations)
#:use-module (nar-herder utils)
#:export (setup-database
+ update-database-metrics!
database-optimize
database-spawn-fibers
@@ -384,6 +385,30 @@ CREATE TABLE scheduled_cached_narinfo_removal (
writer-thread-channel
metrics-registry)))
+(define (update-database-metrics! database)
+ (let* ((db-filename (database-file database))
+ (db-wal-filename
+ (string-append db-filename "-wal"))
+
+ (registry (database-metrics-registry database))
+ (db-bytes
+ (or (metrics-registry-fetch-metric registry
+ "database_bytes")
+ (make-gauge-metric
+ registry "database_bytes"
+ #:docstring "Size of the SQLite database file")))
+ (db-wal-bytes
+ (or (metrics-registry-fetch-metric registry
+ "database_wal_bytes")
+ (make-gauge-metric
+ registry "database_wal_bytes"
+ #:docstring "Size of the SQLite Write Ahead Log file"))))
+
+
+ (metric-set db-bytes (stat:size (stat db-filename)))
+ (metric-set db-wal-bytes (stat:size (stat db-wal-filename))))
+ #t)
+
(define (db-optimize db db-filename)
(define (wal-size)
(let ((db-wal-filename
diff --git a/nar-herder/server.scm b/nar-herder/server.scm
index e352737..b3418cc 100644
--- a/nar-herder/server.scm
+++ b/nar-herder/server.scm
@@ -539,6 +539,7 @@
(gc-metrics-updater)
(process-metrics-updater)
(guile-time-metrics-updater)
+ (update-database-metrics! database)
(increment-request-metric "metrics" "200")
(values (build-response