Просмотр исходного кода

cmd/stdiscorv: Expose build info in metrics

Jakob Borg 2 лет назад
Родитель
Сommit
aaee0c126b
2 измененных файлов с 13 добавлено и 1 удалено
  1. 3 0
      cmd/stdiscosrv/main.go
  2. 10 1
      cmd/stdiscosrv/stats.go

+ 3 - 0
cmd/stdiscosrv/main.go

@@ -14,6 +14,7 @@ import (
 	"net"
 	"net/http"
 	"os"
+	"runtime"
 	"strings"
 	"time"
 
@@ -102,6 +103,8 @@ func main() {
 		return
 	}
 
+	buildInfo.WithLabelValues(build.Version, runtime.Version(), build.User, build.Date.UTC().Format("2006-01-02T15:04:05Z")).Set(1)
+
 	if largeDB {
 		levelDBOptions.BlockCacheCapacity = 64 << 20
 		levelDBOptions.BlockSize = 64 << 10

+ 10 - 1
cmd/stdiscosrv/stats.go

@@ -14,6 +14,14 @@ 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",
@@ -112,7 +120,8 @@ const (
 )
 
 func init() {
-	prometheus.MustRegister(apiRequestsTotal, apiRequestsSeconds,
+	prometheus.MustRegister(buildInfo,
+		apiRequestsTotal, apiRequestsSeconds,
 		lookupRequestsTotal, announceRequestsTotal,
 		replicationSendsTotal, replicationRecvsTotal,
 		databaseKeys, databaseStatisticsSeconds,