mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-25 14:52:17 +00:00
[tm-monitor] rewrite eventmeter to use go-kit/log
This commit is contained in:
parent
06e5b8c2df
commit
dee06a92d9
@ -6,16 +6,14 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/go-kit/kit/log"
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
|
"github.com/pkg/errors"
|
||||||
metrics "github.com/rcrowley/go-metrics"
|
metrics "github.com/rcrowley/go-metrics"
|
||||||
events "github.com/tendermint/go-events"
|
events "github.com/tendermint/go-events"
|
||||||
client "github.com/tendermint/go-rpc/client"
|
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
|
// Generic system to subscribe to events and record their frequency
|
||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
@ -96,6 +94,8 @@ type EventMeter struct {
|
|||||||
unmarshalEvent EventUnmarshalFunc
|
unmarshalEvent EventUnmarshalFunc
|
||||||
|
|
||||||
quit chan struct{}
|
quit chan struct{}
|
||||||
|
|
||||||
|
logger log.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewEventMeter(addr string, unmarshalEvent EventUnmarshalFunc) *EventMeter {
|
func NewEventMeter(addr string, unmarshalEvent EventUnmarshalFunc) *EventMeter {
|
||||||
@ -106,10 +106,16 @@ func NewEventMeter(addr string, unmarshalEvent EventUnmarshalFunc) *EventMeter {
|
|||||||
receivedPong: true,
|
receivedPong: true,
|
||||||
unmarshalEvent: unmarshalEvent,
|
unmarshalEvent: unmarshalEvent,
|
||||||
quit: make(chan struct{}),
|
quit: make(chan struct{}),
|
||||||
|
logger: log.NewNopLogger(),
|
||||||
}
|
}
|
||||||
return em
|
return em
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetLogger lets you set your own logger
|
||||||
|
func (em *EventMeter) SetLogger(l log.Logger) {
|
||||||
|
em.logger = l
|
||||||
|
}
|
||||||
|
|
||||||
func (em *EventMeter) String() string {
|
func (em *EventMeter) String() string {
|
||||||
return em.wsc.Address
|
return em.wsc.Address
|
||||||
}
|
}
|
||||||
@ -225,11 +231,11 @@ func (em *EventMeter) receiveRoutine() {
|
|||||||
select {
|
select {
|
||||||
case <-pingTicker.C:
|
case <-pingTicker.C:
|
||||||
if pingAttempts, err = em.pingForLatency(pingAttempts); err != nil {
|
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()
|
em.StopAndReconnect()
|
||||||
return
|
return
|
||||||
} else if pingAttempts >= maxPingsPerPong {
|
} 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()
|
em.StopAndReconnect()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -240,7 +246,7 @@ func (em *EventMeter) receiveRoutine() {
|
|||||||
}
|
}
|
||||||
eventID, data, err := em.unmarshalEvent(r)
|
eventID, data, err := em.unmarshalEvent(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Log.Error(err.Error())
|
em.logger.Log("err", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if eventID != "" {
|
if eventID != "" {
|
||||||
|
@ -15,7 +15,6 @@ import:
|
|||||||
- package: github.com/tendermint/go-rpc
|
- package: github.com/tendermint/go-rpc
|
||||||
subpackages:
|
subpackages:
|
||||||
- client
|
- client
|
||||||
- package: github.com/tendermint/log15
|
|
||||||
- package: github.com/go-kit/kit
|
- package: github.com/go-kit/kit
|
||||||
subpackages:
|
subpackages:
|
||||||
- log
|
- log
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
|
gokitlog "github.com/go-kit/kit/log"
|
||||||
ctypes "github.com/tendermint/tendermint/rpc/core/types"
|
ctypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||||
em "github.com/tendermint/tools/tm-monitor/eventmeter"
|
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) Start() error { return nil }
|
||||||
func (e *EventMeter) Stop() {}
|
func (e *EventMeter) Stop() {}
|
||||||
|
func (e *EventMeter) SetLogger(l gokitlog.Logger) {}
|
||||||
func (e *EventMeter) RegisterLatencyCallback(cb em.LatencyCallbackFunc) { e.latencyCallback = cb }
|
func (e *EventMeter) RegisterLatencyCallback(cb em.LatencyCallbackFunc) { e.latencyCallback = cb }
|
||||||
func (e *EventMeter) RegisterDisconnectCallback(cb em.DisconnectCallbackFunc) {
|
func (e *EventMeter) RegisterDisconnectCallback(cb em.DisconnectCallbackFunc) {
|
||||||
e.disconnectCallback = cb
|
e.disconnectCallback = cb
|
||||||
|
@ -98,6 +98,7 @@ func (n *Node) NotifyAboutDisconnects(ch chan<- bool) {
|
|||||||
// SetLogger lets you set your own logger
|
// SetLogger lets you set your own logger
|
||||||
func (n *Node) SetLogger(l log.Logger) {
|
func (n *Node) SetLogger(l log.Logger) {
|
||||||
n.logger = l
|
n.logger = l
|
||||||
|
n.em.SetLogger(l)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *Node) Start() error {
|
func (n *Node) Start() error {
|
||||||
@ -265,6 +266,7 @@ type eventMeter interface {
|
|||||||
RegisterDisconnectCallback(em.DisconnectCallbackFunc)
|
RegisterDisconnectCallback(em.DisconnectCallbackFunc)
|
||||||
Subscribe(string, em.EventCallbackFunc) error
|
Subscribe(string, em.EventCallbackFunc) error
|
||||||
Unsubscribe(string) error
|
Unsubscribe(string) error
|
||||||
|
SetLogger(l log.Logger)
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnmarshalEvent unmarshals a json event
|
// UnmarshalEvent unmarshals a json event
|
||||||
|
Loading…
x
Reference in New Issue
Block a user