diff options
author | Christopher Baines <mail@cbaines.net> | 2024-04-01 23:05:16 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2024-04-01 23:05:16 +0100 |
commit | e9d8f119b516248e341637ca1561b29174de7bb0 (patch) | |
tree | 152d6bc6b52b8dd56b9eaef343859787c489042e | |
parent | 2eea6e7f8ff823c47d611c6ceefea33f5bac67b5 (diff) | |
download | nar-herder-e9d8f119b516248e341637ca1561b29174de7bb0.tar nar-herder-e9d8f119b516248e341637ca1561b29174de7bb0.tar.gz |
Instrument the database and WAL file size
-rw-r--r-- | nar-herder/database.scm | 25 | ||||
-rw-r--r-- | nar-herder/server.scm | 1 |
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 |