mirror of
https://github.com/hashicorp/vault.git
synced 2026-02-03 20:40:45 -05:00
Fix a panic I observed in a sealed node running CollectMetrics (#21249)
This commit is contained in:
parent
fd1f95439d
commit
6b87a087af
2 changed files with 13 additions and 5 deletions
3
changelog/21249.txt
Normal file
3
changelog/21249.txt
Normal file
|
|
@ -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 a new issue