mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
feat(metrics): Publish peer heartbeat events as metrics
This commit is contained in:
@@ -122,6 +122,8 @@ func NewPeerServer(name string, path string, url string, bindAddr string, tlsCon
|
|||||||
s.raftServer.AddEventListener(raft.HeartbeatTimeoutEventType, s.raftEventLogger)
|
s.raftServer.AddEventListener(raft.HeartbeatTimeoutEventType, s.raftEventLogger)
|
||||||
s.raftServer.AddEventListener(raft.ElectionTimeoutThresholdEventType, s.raftEventLogger)
|
s.raftServer.AddEventListener(raft.ElectionTimeoutThresholdEventType, s.raftEventLogger)
|
||||||
|
|
||||||
|
s.raftServer.AddEventListener(raft.HeartbeatEventType, s.recordMetricEvent)
|
||||||
|
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -499,6 +501,12 @@ func (s *PeerServer) raftEventLogger(event raft.Event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *PeerServer) recordMetricEvent(event raft.Event) {
|
||||||
|
name := fmt.Sprintf("raft.event.%s", event.Type())
|
||||||
|
value := event.Value().(time.Duration)
|
||||||
|
(*s.metrics).Timer(name).Update(value)
|
||||||
|
}
|
||||||
|
|
||||||
func (s *PeerServer) monitorSnapshot() {
|
func (s *PeerServer) monitorSnapshot() {
|
||||||
for {
|
for {
|
||||||
time.Sleep(s.snapConf.checkingInterval)
|
time.Sleep(s.snapConf.checkingInterval)
|
||||||
|
|||||||
Reference in New Issue
Block a user