Skip to content

Commit

Permalink
metrics: Add server_version metric
Browse files Browse the repository at this point in the history
  • Loading branch information
jpbetz committed Dec 1, 2017
1 parent 5db3cdd commit 4cacbf1
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
6 changes: 6 additions & 0 deletions e2e/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@
package e2e

import (
"fmt"
"testing"

"github.com/coreos/etcd/version"
)

func TestV3MetricsSecure(t *testing.T) {
Expand All @@ -39,6 +42,9 @@ func metricsTest(cx ctlCtx) {
if err := cURLGet(cx.epc, cURLReq{endpoint: "/metrics", expected: `etcd_debugging_mvcc_keys_total 1`, metricsURLScheme: cx.cfg.metricsURLScheme}); err != nil {
cx.t.Fatalf("failed get with curl (%v)", err)
}
if err := cURLGet(cx.epc, cURLReq{endpoint: "/metrics", expected: fmt.Sprintf(`etcd_server_version{server_version="%s"} 1`, version.Version), metricsURLScheme: cx.cfg.metricsURLScheme}); err != nil {
cx.t.Fatalf("failed get with curl (%v)", err)
}
if err := cURLGet(cx.epc, cURLReq{endpoint: "/health", expected: `{"health":true}`, metricsURLScheme: cx.cfg.metricsURLScheme}); err != nil {
cx.t.Fatalf("failed get with curl (%v)", err)
}
Expand Down
13 changes: 13 additions & 0 deletions etcdserver/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"time"

"github.com/coreos/etcd/pkg/runtime"
"github.com/coreos/etcd/version"
"github.com/prometheus/client_golang/prometheus"
)

Expand Down Expand Up @@ -64,6 +65,13 @@ var (
Name: "lease_expired_total",
Help: "The total number of expired leases.",
})
currentVersion = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: "etcd",
Subsystem: "server",
Name: "version",
Help: "Which version is running. 1 for 'server_version' label with current version.",
},
[]string{"server_version"})
)

func init() {
Expand All @@ -74,6 +82,11 @@ func init() {
prometheus.MustRegister(proposalsPending)
prometheus.MustRegister(proposalsFailed)
prometheus.MustRegister(leaseExpired)
prometheus.MustRegister(currentVersion)

currentVersion.With(prometheus.Labels{
"server_version": version.Version,
}).Set(1)
}

func monitorFileDescriptor(done <-chan struct{}) {
Expand Down

0 comments on commit 4cacbf1

Please sign in to comment.