aboutsummaryrefslogtreecommitdiff
path: root/nar-herder/database.scm
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 /nar-herder/database.scm
parent2eea6e7f8ff823c47d611c6ceefea33f5bac67b5 (diff)
downloadnar-herder-e9d8f119b516248e341637ca1561b29174de7bb0.tar
nar-herder-e9d8f119b516248e341637ca1561b29174de7bb0.tar.gz
Instrument the database and WAL file size
Diffstat (limited to 'nar-herder/database.scm')
-rw-r--r--nar-herder/database.scm25
1 files changed, 25 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