From 4527f4c4b08ee423a708a0bb9ed352afa5fe7995 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Thu, 8 Aug 2019 13:04:38 -0700 Subject: [PATCH] etcdserver: add "etcd_server_snapshot_apply_inflights_total" Signed-off-by: Gyuho Lee --- etcdserver/metrics.go | 7 +++++++ etcdserver/server.go | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/etcdserver/metrics.go b/etcdserver/metrics.go index 10f8a475f..2fb07a554 100644 --- a/etcdserver/metrics.go +++ b/etcdserver/metrics.go @@ -54,6 +54,12 @@ var ( Name: "slow_apply_total", Help: "The total number of slow apply requests (likely overloaded from slow disk).", }) + applySnapshotInProgress = prometheus.NewGauge(prometheus.GaugeOpts{ + Namespace: "etcd", + Subsystem: "server", + Name: "snapshot_apply_in_progress_total", + Help: "1 if the server is applying the incoming snapshot. 0 if none.", + }) proposalsCommitted = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: "etcd", Subsystem: "server", @@ -131,6 +137,7 @@ func init() { prometheus.MustRegister(leaderChanges) prometheus.MustRegister(heartbeatSendFailures) prometheus.MustRegister(slowApplies) + prometheus.MustRegister(applySnapshotInProgress) prometheus.MustRegister(proposalsCommitted) prometheus.MustRegister(proposalsApplied) prometheus.MustRegister(proposalsPending) diff --git a/etcdserver/server.go b/etcdserver/server.go index 71e2bcf4b..c1ec3aa0e 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -866,9 +866,12 @@ func (s *EtcdServer) applySnapshot(ep *etcdProgress, apply *apply) { if raft.IsEmptySnap(apply.snapshot) { return } - + applySnapshotInProgress.Inc() plog.Infof("applying snapshot at index %d...", ep.snapi) - defer plog.Infof("finished applying incoming snapshot at index %d", ep.snapi) + defer func() { + plog.Infof("finished applying incoming snapshot at index %d", ep.snapi) + applySnapshotInProgress.Dec() + }() if apply.snapshot.Metadata.Index <= ep.appliedi { plog.Panicf("snapshot index [%d] should > appliedi[%d] + 1",