backport of commit 6b87a087afe24e8bd52a2b9ada4b506b20d4fc7e (#21254)
Co-authored-by: Nick Cabatoff <ncabatoff@hashicorp.com>
This commit is contained in:
parent
a5e6a4614d
commit
433197bf2b
|
@ -0,0 +1,3 @@
|
|||
```release-note:bug
|
||||
core: Fix panic in sealed nodes using raft storage trying to emit raft metrics
|
||||
```
|
|
@ -624,10 +624,13 @@ func (b *RaftBackend) DisableUpgradeMigration() (bool, bool) {
|
|||
}
|
||||
|
||||
func (b *RaftBackend) CollectMetrics(sink *metricsutil.ClusterMetricSink) {
|
||||
var stats map[string]string
|
||||
b.l.RLock()
|
||||
logstoreStats := b.stableStore.(*raftboltdb.BoltStore).Stats()
|
||||
fsmStats := b.fsm.Stats()
|
||||
stats := b.raft.Stats()
|
||||
if b.raft != nil {
|
||||
stats = b.raft.Stats()
|
||||
}
|
||||
b.l.RUnlock()
|
||||
b.collectMetricsWithStats(logstoreStats, sink, "logstore")
|
||||
b.collectMetricsWithStats(fsmStats, sink, "fsm")
|
||||
|
@ -637,10 +640,12 @@ func (b *RaftBackend) CollectMetrics(sink *metricsutil.ClusterMetricSink) {
|
|||
Value: b.localID,
|
||||
},
|
||||
}
|
||||
for _, key := range []string{"term", "commit_index", "applied_index", "fsm_pending"} {
|
||||
n, err := strconv.ParseUint(stats[key], 10, 64)
|
||||
if err == nil {
|
||||
sink.SetGaugeWithLabels([]string{"raft_storage", "stats", key}, float32(n), labels)
|
||||
if stats != nil {
|
||||
for _, key := range []string{"term", "commit_index", "applied_index", "fsm_pending"} {
|
||||
n, err := strconv.ParseUint(stats[key], 10, 64)
|
||||
if err == nil {
|
||||
sink.SetGaugeWithLabels([]string{"raft_storage", "stats", key}, float32(n), labels)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue