From 58f0a8701569dbc15ee39bdd94ff5ea74ec84ad2 Mon Sep 17 00:00:00 2001 From: Aleksandr Bezobchuk Date: Thu, 3 Jun 2021 09:48:23 -0400 Subject: [PATCH] consensus: metrics --- internal/consensus/reactor.go | 7 ++++--- internal/consensus/state.go | 7 ++++--- {internal => metrics}/consensus/metrics.go | 0 node/node.go | 19 +++++-------------- node/setup.go | 3 ++- 5 files changed, 15 insertions(+), 21 deletions(-) rename {internal => metrics}/consensus/metrics.go (100%) diff --git a/internal/consensus/reactor.go b/internal/consensus/reactor.go index 41faae3e8..86aa925de 100644 --- a/internal/consensus/reactor.go +++ b/internal/consensus/reactor.go @@ -10,6 +10,7 @@ import ( tmevents "github.com/tendermint/tendermint/libs/events" "github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/service" + csmetrics "github.com/tendermint/tendermint/metrics/consensus" "github.com/tendermint/tendermint/p2p" tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" tmproto "github.com/tendermint/tendermint/proto/tendermint/types" @@ -104,7 +105,7 @@ type Reactor struct { state *State eventBus *types.EventBus - Metrics *Metrics + Metrics *csmetrics.Metrics mtx tmsync.RWMutex peers map[p2p.NodeID]*PeerState @@ -144,7 +145,7 @@ func NewReactor( state: cs, waitSync: waitSync, peers: make(map[p2p.NodeID]*PeerState), - Metrics: NopMetrics(), + Metrics: csmetrics.NopMetrics(), stateCh: stateCh, dataCh: dataCh, voteCh: voteCh, @@ -252,7 +253,7 @@ func (r *Reactor) WaitSync() bool { } // ReactorMetrics sets the reactor's metrics as an option function. -func ReactorMetrics(metrics *Metrics) ReactorOption { +func ReactorMetrics(metrics *csmetrics.Metrics) ReactorOption { return func(r *Reactor) { r.Metrics = metrics } } diff --git a/internal/consensus/state.go b/internal/consensus/state.go index 435a09054..ae42fc5e0 100644 --- a/internal/consensus/state.go +++ b/internal/consensus/state.go @@ -23,6 +23,7 @@ import ( tmmath "github.com/tendermint/tendermint/libs/math" tmos "github.com/tendermint/tendermint/libs/os" "github.com/tendermint/tendermint/libs/service" + csmetrics "github.com/tendermint/tendermint/metrics/consensus" "github.com/tendermint/tendermint/p2p" tmproto "github.com/tendermint/tendermint/proto/tendermint/types" sm "github.com/tendermint/tendermint/state" @@ -139,7 +140,7 @@ type State struct { evsw tmevents.EventSwitch // for reporting metrics - metrics *Metrics + metrics *csmetrics.Metrics // wait the channel event happening for shutting down the state gracefully onStopCh chan *cstypes.RoundState @@ -172,7 +173,7 @@ func NewState( wal: nilWAL{}, evpool: evpool, evsw: tmevents.NewEventSwitch(), - metrics: NopMetrics(), + metrics: csmetrics.NopMetrics(), onStopCh: make(chan *cstypes.RoundState), } @@ -211,7 +212,7 @@ func (cs *State) SetEventBus(b *types.EventBus) { } // StateMetrics sets the metrics. -func StateMetrics(metrics *Metrics) StateOption { +func StateMetrics(metrics *csmetrics.Metrics) StateOption { return func(cs *State) { cs.metrics = metrics } } diff --git a/internal/consensus/metrics.go b/metrics/consensus/metrics.go similarity index 100% rename from internal/consensus/metrics.go rename to metrics/consensus/metrics.go diff --git a/node/node.go b/node/node.go index 0ad511507..57f7220c7 100644 --- a/node/node.go +++ b/node/node.go @@ -29,6 +29,7 @@ import ( "github.com/tendermint/tendermint/libs/strings" "github.com/tendermint/tendermint/light" "github.com/tendermint/tendermint/mempool" + csmetrics "github.com/tendermint/tendermint/metrics/consensus" "github.com/tendermint/tendermint/p2p" "github.com/tendermint/tendermint/p2p/pex" "github.com/tendermint/tendermint/privval" @@ -985,16 +986,6 @@ func (n *Node) BlockStore() *store.BlockStore { return n.blockStore } -// ConsensusState returns the Node's ConsensusState. -func (n *Node) ConsensusState() *cs.State { - return n.consensusState -} - -// ConsensusReactor returns the Node's ConsensusReactor. -func (n *Node) ConsensusReactor() *cs.Reactor { - return n.consensusReactor -} - // MempoolReactor returns the Node's mempool reactor. func (n *Node) MempoolReactor() service.Service { return n.mempoolReactor @@ -1152,19 +1143,19 @@ func DefaultGenesisDocProviderFunc(config *cfg.Config) GenesisDocProvider { type Provider func(*cfg.Config, log.Logger) (*Node, error) // MetricsProvider returns a consensus, p2p and mempool Metrics. -type MetricsProvider func(chainID string) (*cs.Metrics, *p2p.Metrics, *mempool.Metrics, *sm.Metrics) +type MetricsProvider func(chainID string) (*csmetrics.Metrics, *p2p.Metrics, *mempool.Metrics, *sm.Metrics) // DefaultMetricsProvider returns Metrics build using Prometheus client library // if Prometheus is enabled. Otherwise, it returns no-op Metrics. func DefaultMetricsProvider(config *cfg.InstrumentationConfig) MetricsProvider { - return func(chainID string) (*cs.Metrics, *p2p.Metrics, *mempool.Metrics, *sm.Metrics) { + return func(chainID string) (*csmetrics.Metrics, *p2p.Metrics, *mempool.Metrics, *sm.Metrics) { if config.Prometheus { - return cs.PrometheusMetrics(config.Namespace, "chain_id", chainID), + return csmetrics.PrometheusMetrics(config.Namespace, "chain_id", chainID), p2p.PrometheusMetrics(config.Namespace, "chain_id", chainID), mempool.PrometheusMetrics(config.Namespace, "chain_id", chainID), sm.PrometheusMetrics(config.Namespace, "chain_id", chainID) } - return cs.NopMetrics(), p2p.NopMetrics(), mempool.NopMetrics(), sm.NopMetrics() + return csmetrics.NopMetrics(), p2p.NopMetrics(), mempool.NopMetrics(), sm.NopMetrics() } } diff --git a/node/setup.go b/node/setup.go index ab250fcab..250cf4d0b 100644 --- a/node/setup.go +++ b/node/setup.go @@ -26,6 +26,7 @@ import ( "github.com/tendermint/tendermint/mempool" mempoolv0 "github.com/tendermint/tendermint/mempool/v0" mempoolv1 "github.com/tendermint/tendermint/mempool/v1" + csmetrics "github.com/tendermint/tendermint/metrics/consensus" "github.com/tendermint/tendermint/p2p" "github.com/tendermint/tendermint/p2p/pex" protop2p "github.com/tendermint/tendermint/proto/tendermint/p2p" @@ -381,7 +382,7 @@ func createConsensusReactor( mp mempool.Mempool, evidencePool *evidence.Pool, privValidator types.PrivValidator, - csMetrics *cs.Metrics, + csMetrics *csmetrics.Metrics, waitSync bool, eventBus *types.EventBus, peerManager *p2p.PeerManager,