p2p metric, make height and totalTxs gauges

This commit is contained in:
Anton Kaliaev
2018-06-20 12:38:45 +04:00
parent 0cb50c05fc
commit 19699d644f
8 changed files with 125 additions and 89 deletions
+17
View File
@@ -0,0 +1,17 @@
package p2p
import "github.com/go-kit/kit/metrics"
import "github.com/go-kit/kit/metrics/discard"
// Metrics contains metrics exposed by this package.
// see MetricsProvider for descriptions.
type Metrics struct {
Peers metrics.Gauge
}
// NopMetrics returns no-op Metrics.
func NopMetrics() *Metrics {
return &Metrics{
Peers: discard.NewGauge(),
}
}
+6 -1
View File
@@ -73,10 +73,12 @@ type Switch struct {
mConfig conn.MConnConfig
rng *cmn.Rand // seed for randomizing dial times and orders
metrics *Metrics
}
// NewSwitch creates a new Switch with the given config.
func NewSwitch(cfg *config.P2PConfig) *Switch {
func NewSwitch(cfg *config.P2PConfig, metrics *Metrics) *Switch {
sw := &Switch{
config: cfg,
reactors: make(map[string]Reactor),
@@ -85,6 +87,7 @@ func NewSwitch(cfg *config.P2PConfig) *Switch {
peers: NewPeerSet(),
dialing: cmn.NewCMap(),
reconnecting: cmn.NewCMap(),
metrics: metrics,
}
// Ensure we have a completely undeterministic PRNG.
@@ -279,6 +282,7 @@ func (sw *Switch) StopPeerGracefully(peer Peer) {
func (sw *Switch) stopAndRemovePeer(peer Peer, reason interface{}) {
sw.peers.Remove(peer)
sw.metrics.Peers.Add(float64(-1))
peer.Stop()
for _, reactor := range sw.reactors {
reactor.RemovePeer(peer, reason)
@@ -623,6 +627,7 @@ func (sw *Switch) addPeer(pc peerConn) error {
if err := sw.peers.Add(peer); err != nil {
return err
}
sw.metrics.Peers.Add(float64(1))
sw.Logger.Info("Added peer", "peer", peer)
return nil
+1 -1
View File
@@ -137,7 +137,7 @@ func MakeSwitch(cfg *config.P2PConfig, i int, network, version string, initSwitc
nodeKey := &NodeKey{
PrivKey: crypto.GenPrivKeyEd25519(),
}
sw := NewSwitch(cfg)
sw := NewSwitch(cfg, NopMetrics())
sw.SetLogger(log.TestingLogger())
sw = initSwitch(i, sw)
ni := NodeInfo{