diff --git a/etcdserver/metrics.go b/etcdserver/metrics.go index 176c1b20c..10f8a475f 100644 --- a/etcdserver/metrics.go +++ b/etcdserver/metrics.go @@ -90,6 +90,12 @@ var ( Name: "slow_read_indexes_total", Help: "The total number of pending read indexes not in sync with leader's or timed out read index requests.", }) + readIndexFailed = prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: "etcd", + Subsystem: "server", + Name: "read_indexes_failed_total", + Help: "The total number of failed read indexes seen.", + }) quotaBackendBytes = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: "etcd", Subsystem: "server", @@ -131,6 +137,7 @@ func init() { prometheus.MustRegister(proposalsFailed) prometheus.MustRegister(leaseExpired) prometheus.MustRegister(slowReadIndex) + prometheus.MustRegister(readIndexFailed) prometheus.MustRegister(quotaBackendBytes) prometheus.MustRegister(currentVersion) prometheus.MustRegister(currentGoVersion) diff --git a/etcdserver/v3_server.go b/etcdserver/v3_server.go index ea79d97d3..f214a1926 100644 --- a/etcdserver/v3_server.go +++ b/etcdserver/v3_server.go @@ -634,6 +634,7 @@ func (s *EtcdServer) linearizableReadLoop() { return } plog.Errorf("failed to get read index from raft: %v", err) + readIndexFailed.Inc() nr.notify(err) continue }