consensus: metrics

This commit is contained in:
Aleksandr Bezobchuk
2021-06-03 09:48:23 -04:00
parent f8775952c3
commit 58f0a87015
5 changed files with 15 additions and 21 deletions

View File

@@ -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 }
}

View File

@@ -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 }
}

View File

@@ -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()
}
}

View File

@@ -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,