From dee06a92d9ddf120b38e79999acb8ed53a325721 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Tue, 21 Mar 2017 17:26:54 +0400 Subject: [PATCH] [tm-monitor] rewrite eventmeter to use go-kit/log --- tm-monitor/eventmeter/eventmeter.go | 20 +++++++++++++------- tm-monitor/glide.yaml | 1 - tm-monitor/mock/mock.go | 2 ++ tm-monitor/monitor/node.go | 2 ++ 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/tm-monitor/eventmeter/eventmeter.go b/tm-monitor/eventmeter/eventmeter.go index 5626ba13..dea4c1b1 100644 --- a/tm-monitor/eventmeter/eventmeter.go +++ b/tm-monitor/eventmeter/eventmeter.go @@ -6,16 +6,14 @@ import ( "sync" "time" + "github.com/go-kit/kit/log" "github.com/gorilla/websocket" + "github.com/pkg/errors" metrics "github.com/rcrowley/go-metrics" events "github.com/tendermint/go-events" client "github.com/tendermint/go-rpc/client" - log15 "github.com/tendermint/log15" ) -// Log allows you to set your own logger. -var Log log15.Logger - //------------------------------------------------------ // Generic system to subscribe to events and record their frequency //------------------------------------------------------ @@ -96,6 +94,8 @@ type EventMeter struct { unmarshalEvent EventUnmarshalFunc quit chan struct{} + + logger log.Logger } func NewEventMeter(addr string, unmarshalEvent EventUnmarshalFunc) *EventMeter { @@ -106,10 +106,16 @@ func NewEventMeter(addr string, unmarshalEvent EventUnmarshalFunc) *EventMeter { receivedPong: true, unmarshalEvent: unmarshalEvent, quit: make(chan struct{}), + logger: log.NewNopLogger(), } return em } +// SetLogger lets you set your own logger +func (em *EventMeter) SetLogger(l log.Logger) { + em.logger = l +} + func (em *EventMeter) String() string { return em.wsc.Address } @@ -225,11 +231,11 @@ func (em *EventMeter) receiveRoutine() { select { case <-pingTicker.C: if pingAttempts, err = em.pingForLatency(pingAttempts); err != nil { - Log.Error("Failed to write ping message on websocket", err) + em.logger.Log("err", errors.Wrap(err, "Failed to write ping message on websocket")) em.StopAndReconnect() return } else if pingAttempts >= maxPingsPerPong { - Log.Error(fmt.Sprintf("Have not received a pong in %v", time.Duration(pingAttempts)*pingTime)) + em.logger.Log("err", errors.Errorf("Have not received a pong in %v", time.Duration(pingAttempts)*pingTime)) em.StopAndReconnect() return } @@ -240,7 +246,7 @@ func (em *EventMeter) receiveRoutine() { } eventID, data, err := em.unmarshalEvent(r) if err != nil { - Log.Error(err.Error()) + em.logger.Log("err", err) continue } if eventID != "" { diff --git a/tm-monitor/glide.yaml b/tm-monitor/glide.yaml index 14bc82fb..f9bd303d 100644 --- a/tm-monitor/glide.yaml +++ b/tm-monitor/glide.yaml @@ -15,7 +15,6 @@ import: - package: github.com/tendermint/go-rpc subpackages: - client -- package: github.com/tendermint/log15 - package: github.com/go-kit/kit subpackages: - log diff --git a/tm-monitor/mock/mock.go b/tm-monitor/mock/mock.go index e765dbe1..b614e595 100644 --- a/tm-monitor/mock/mock.go +++ b/tm-monitor/mock/mock.go @@ -4,6 +4,7 @@ import ( "log" "reflect" + gokitlog "github.com/go-kit/kit/log" ctypes "github.com/tendermint/tendermint/rpc/core/types" em "github.com/tendermint/tools/tm-monitor/eventmeter" ) @@ -16,6 +17,7 @@ type EventMeter struct { func (e *EventMeter) Start() error { return nil } func (e *EventMeter) Stop() {} +func (e *EventMeter) SetLogger(l gokitlog.Logger) {} func (e *EventMeter) RegisterLatencyCallback(cb em.LatencyCallbackFunc) { e.latencyCallback = cb } func (e *EventMeter) RegisterDisconnectCallback(cb em.DisconnectCallbackFunc) { e.disconnectCallback = cb diff --git a/tm-monitor/monitor/node.go b/tm-monitor/monitor/node.go index 8f3071d1..72d404a4 100644 --- a/tm-monitor/monitor/node.go +++ b/tm-monitor/monitor/node.go @@ -98,6 +98,7 @@ func (n *Node) NotifyAboutDisconnects(ch chan<- bool) { // SetLogger lets you set your own logger func (n *Node) SetLogger(l log.Logger) { n.logger = l + n.em.SetLogger(l) } func (n *Node) Start() error { @@ -265,6 +266,7 @@ type eventMeter interface { RegisterDisconnectCallback(em.DisconnectCallbackFunc) Subscribe(string, em.EventCallbackFunc) error Unsubscribe(string) error + SetLogger(l log.Logger) } // UnmarshalEvent unmarshals a json event