Browse Source

etcdserver: add "etcd_server_go_version" metric

Currently, one has to look at server logs manually,
to see what Go version was used to build etcd server.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
Gyuho Lee 7 years ago
parent
commit
643d791a11
1 changed files with 12 additions and 0 deletions
  1. 12 0
      etcdserver/metrics.go

+ 12 - 0
etcdserver/metrics.go

@@ -15,6 +15,7 @@
 package etcdserver
 package etcdserver
 
 
 import (
 import (
+	goruntime "runtime"
 	"time"
 	"time"
 
 
 	"github.com/coreos/etcd/pkg/runtime"
 	"github.com/coreos/etcd/pkg/runtime"
@@ -104,6 +105,13 @@ var (
 		Help:      "Which version is running. 1 for 'server_version' label with current version.",
 		Help:      "Which version is running. 1 for 'server_version' label with current version.",
 	},
 	},
 		[]string{"server_version"})
 		[]string{"server_version"})
+	currentGoVersion = prometheus.NewGaugeVec(prometheus.GaugeOpts{
+		Namespace: "etcd",
+		Subsystem: "server",
+		Name:      "go_version",
+		Help:      "Which Go version server is running with. 1 for 'server_go_version' label with current version.",
+	},
+		[]string{"server_go_version"})
 )
 )
 
 
 func init() {
 func init() {
@@ -120,10 +128,14 @@ func init() {
 	prometheus.MustRegister(leaseExpired)
 	prometheus.MustRegister(leaseExpired)
 	prometheus.MustRegister(quotaBackendBytes)
 	prometheus.MustRegister(quotaBackendBytes)
 	prometheus.MustRegister(currentVersion)
 	prometheus.MustRegister(currentVersion)
+	prometheus.MustRegister(currentGoVersion)
 
 
 	currentVersion.With(prometheus.Labels{
 	currentVersion.With(prometheus.Labels{
 		"server_version": version.Version,
 		"server_version": version.Version,
 	}).Set(1)
 	}).Set(1)
+	currentGoVersion.With(prometheus.Labels{
+		"server_go_version": goruntime.Version(),
+	}).Set(1)
 }
 }
 
 
 func monitorFileDescriptor(lg *zap.Logger, done <-chan struct{}) {
 func monitorFileDescriptor(lg *zap.Logger, done <-chan struct{}) {