chore: systematic syncthing_build_info metric

Signed-off-by: Jakob Borg <jakob@kastelo.net>
This commit is contained in:
Jakob Borg
2026-04-06 09:22:05 +02:00
parent e2cb283155
commit b594b7491f
8 changed files with 37 additions and 14 deletions

View File

@@ -101,6 +101,8 @@ func main() {
}
log.SetOutput(os.Stdout)
log.Println(build.LongVersionFor("stcrashreceiver"))
if err := http.ListenAndServe(params.Listen, mux); err != nil {
log.Fatalln("HTTP serve:", err)
}

View File

@@ -27,6 +27,7 @@ import (
"github.com/syncthing/syncthing/cmd/infra/strelaypoolsrv/auto"
"github.com/syncthing/syncthing/lib/assets"
"github.com/syncthing/syncthing/lib/build"
"github.com/syncthing/syncthing/lib/geoip"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/rand"
@@ -146,6 +147,8 @@ func main() {
flag.Parse()
log.Println(build.LongVersionFor("strelaypoolsrv"))
requests = make(chan request, requestQueueLen)
geoip, err := geoip.NewGeoLite2CityProvider(context.Background(), geoipAccountID, geoipLicenseKey, os.TempDir())
if err != nil {

View File

@@ -25,6 +25,7 @@ import (
"github.com/alecthomas/kong"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/syncthing/syncthing/internal/slogutil"
"github.com/syncthing/syncthing/lib/build"
"github.com/syncthing/syncthing/lib/httpcache"
"github.com/syncthing/syncthing/lib/upgrade"
)
@@ -44,6 +45,8 @@ func main() {
Level: slog.LevelInfo,
})))
slog.Info(build.LongVersionFor("stupgrades"))
if err := server(&params); err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)

View File

@@ -13,6 +13,7 @@ import (
"github.com/alecthomas/kong"
"github.com/syncthing/syncthing/cmd/infra/ursrv/serve"
"github.com/syncthing/syncthing/lib/build"
)
type CLI struct {
@@ -24,6 +25,8 @@ func main() {
Level: slog.LevelInfo,
})))
slog.Info(build.LongVersionFor("ursrv"))
var cli CLI
ctx := kong.Parse(&cli)
if err := ctx.Run(); err != nil {

View File

@@ -14,7 +14,6 @@ import (
"net/http"
"os"
"os/signal"
"runtime"
"time"
"github.com/alecthomas/kong"
@@ -96,8 +95,6 @@ func main() {
}
slog.Info(build.LongVersionFor("stdiscosrv"))
buildInfo.WithLabelValues(build.Version, runtime.Version(), build.User, build.Date.UTC().Format("2006-01-02T15:04:05Z")).Set(1)
var cert tls.Certificate
if !cli.HTTP {
var err error

View File

@@ -11,14 +11,6 @@ import (
)
var (
buildInfo = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: "syncthing",
Subsystem: "discovery",
Name: "build_info",
Help: "A metric with a constant '1' value labeled by version, goversion, builduser and builddate from which stdiscosrv was built.",
}, []string{"version", "goversion", "builduser", "builddate"})
apiRequestsTotal = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: "syncthing",
@@ -132,7 +124,7 @@ const (
)
func init() {
prometheus.MustRegister(buildInfo,
prometheus.MustRegister(
apiRequestsTotal, apiRequestsSeconds,
lookupRequestsTotal, announceRequestsTotal,
replicationSendsTotal, replicationRecvsTotal,

View File

@@ -16,8 +16,18 @@ import (
"strconv"
"strings"
"time"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
)
var buildInfo = promauto.NewGaugeVec(prometheus.GaugeOpts{
Namespace: "syncthing",
Subsystem: "build",
Name: "info",
Help: "A metric with a constant '1' value labeled by version information from when the binary was built.",
}, []string{"program", "version", "codename", "goversion", "builduser", "builddate", "tags"})
const Codename = "Hafnium Hornet"
var (
@@ -98,9 +108,22 @@ func LongVersionFor(program string) string {
date := Date.UTC().Format("2006-01-02 15:04:05 MST")
v := fmt.Sprintf(`%s %s "%s" (%s %s-%s) %s@%s %s`, program, Version, Codename, runtime.Version(), runtime.GOOS, runtime.GOARCH, User, Host, date)
if tags := TagsList(); len(tags) > 0 {
tags := TagsList()
if len(tags) > 0 {
v = fmt.Sprintf("%s [%s]", v, strings.Join(tags, ", "))
}
buildInfo.Reset()
buildInfo.With(prometheus.Labels{
"program": program,
"version": Version,
"codename": Codename,
"goversion": runtime.Version(),
"builduser": fmt.Sprintf("%s@%s", User, Host),
"builddate": Date.UTC().Format("2006-01-02 15:04:05 MST"),
"tags": strings.Join(tags, ","),
}).Set(1)
return v
}

View File

@@ -1,4 +1,4 @@
<configuration version="51">
<configuration version="52">
<folder id="default" label="" path="s2" type="sendreceive" rescanIntervalS="60" fsWatcherEnabled="false" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" introducedBy="">