From 97bc5b260d52f26915b60bf9d583081c9ac57c8e Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Fri, 17 Jan 2014 16:26:14 -0800 Subject: [PATCH] feat(metrics): Publish peer heartbeat events as metrics --- server/peer_server.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/peer_server.go b/server/peer_server.go index bb736a85d..4e494b89b 100644 --- a/server/peer_server.go +++ b/server/peer_server.go @@ -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.ElectionTimeoutThresholdEventType, s.raftEventLogger) + s.raftServer.AddEventListener(raft.HeartbeatEventType, s.recordMetricEvent) + 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() { for { time.Sleep(s.snapConf.checkingInterval)