From e9d8f119b516248e341637ca1561b29174de7bb0 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 1 Apr 2024 23:05:16 +0100 Subject: Instrument the database and WAL file size --- nar-herder/database.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'nar-herder/database.scm') 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 -- cgit v1.2.3