From 3da449cfa391652000ba7543b4f94a6704c611c3 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Sun, 24 Aug 2025 16:53:50 +0200 Subject: [PATCH] chore(ursrv): count database engines --- cmd/infra/ursrv/serve/serve.go | 7 +++++++ lib/ur/contract/contract.go | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/cmd/infra/ursrv/serve/serve.go b/cmd/infra/ursrv/serve/serve.go index 41c606f28..01977f7ce 100644 --- a/cmd/infra/ursrv/serve/serve.go +++ b/cmd/infra/ursrv/serve/serve.go @@ -381,6 +381,13 @@ func (s *server) addReport(rep *contract.Report) bool { rep.DistOS = rep.OS rep.DistArch = rep.Arch + if strings.HasPrefix(rep.Version, "v2.") { + rep.Database.ModernCSQLite = strings.Contains(rep.LongVersion, "modernc-sqlite") + rep.Database.MattnSQLite = !rep.Database.ModernCSQLite + } else { + rep.Database.LevelDB = true + } + _, loaded := s.reports.LoadAndStore(rep.UniqueID, rep) return loaded } diff --git a/lib/ur/contract/contract.go b/lib/ur/contract/contract.go index 35a3438dc..45e972c88 100644 --- a/lib/ur/contract/contract.go +++ b/lib/ur/contract/contract.go @@ -188,6 +188,13 @@ type Report struct { DistDist string `json:"distDist" metric:"distribution,gaugeVec:distribution"` DistOS string `json:"distOS" metric:"distribution,gaugeVec:os"` DistArch string `json:"distArch" metric:"distribution,gaugeVec:arch"` + + // Database counts + Database struct { + ModernCSQLite bool `json:"modernCSQLite" metric:"database_engine{engine=modernc-sqlite},gauge"` + MattnSQLite bool `json:"mattnSQLite" metric:"database_engine{engine=mattn-sqlite},gauge"` + LevelDB bool `json:"levelDB" metric:"database_engine{engine=leveldb},gauge"` + } `json:"database"` } func New() *Report {