From 2ae15aa4546b8cf76cd6077303aa6b97e2e043ee Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Fri, 24 Nov 2023 09:05:57 +0100 Subject: [PATCH] cmd/stcrashreceiver: Add metrics for diskstore inventory --- cmd/stcrashreceiver/diskstore.go | 11 +++++++++++ cmd/stcrashreceiver/metrics.go | 15 +++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/cmd/stcrashreceiver/diskstore.go b/cmd/stcrashreceiver/diskstore.go index 1073dee14..124d77d4a 100644 --- a/cmd/stcrashreceiver/diskstore.go +++ b/cmd/stcrashreceiver/diskstore.go @@ -12,6 +12,7 @@ import ( "context" "io" "log" + "math" "os" "path/filepath" "sort" @@ -147,6 +148,11 @@ func (d *diskStore) clean() { if len(d.currentFiles) > 0 { oldest = time.Since(time.Unix(d.currentFiles[0].mtime, 0)).Truncate(time.Minute) } + + metricDiskstoreFilesTotal.Set(float64(len(d.currentFiles))) + metricDiskstoreBytesTotal.Set(float64(d.currentSize)) + metricDiskstoreOldestAgeSeconds.Set(math.Round(oldest.Seconds())) + log.Printf("Clean complete: %d files, %d MB, oldest is %v ago", len(d.currentFiles), d.currentSize>>20, oldest) } @@ -178,6 +184,11 @@ func (d *diskStore) inventory() error { if len(d.currentFiles) > 0 { oldest = time.Since(time.Unix(d.currentFiles[0].mtime, 0)).Truncate(time.Minute) } + + metricDiskstoreFilesTotal.Set(float64(len(d.currentFiles))) + metricDiskstoreBytesTotal.Set(float64(d.currentSize)) + metricDiskstoreOldestAgeSeconds.Set(math.Round(oldest.Seconds())) + log.Printf("Inventory complete: %d files, %d MB, oldest is %v ago", len(d.currentFiles), d.currentSize>>20, oldest) return err } diff --git a/cmd/stcrashreceiver/metrics.go b/cmd/stcrashreceiver/metrics.go index a7539d816..8ccbc8fa3 100644 --- a/cmd/stcrashreceiver/metrics.go +++ b/cmd/stcrashreceiver/metrics.go @@ -22,4 +22,19 @@ var ( Subsystem: "crashreceiver", Name: "failure_reports_total", }, []string{"result"}) + metricDiskstoreFilesTotal = promauto.NewGauge(prometheus.GaugeOpts{ + Namespace: "syncthing", + Subsystem: "crashreceiver", + Name: "diskstore_files_total", + }) + metricDiskstoreBytesTotal = promauto.NewGauge(prometheus.GaugeOpts{ + Namespace: "syncthing", + Subsystem: "crashreceiver", + Name: "diskstore_bytes_total", + }) + metricDiskstoreOldestAgeSeconds = promauto.NewGauge(prometheus.GaugeOpts{ + Namespace: "syncthing", + Subsystem: "crashreceiver", + Name: "diskstore_oldest_age_seconds", + }) )