mirror of
https://github.com/tendermint/tendermint.git
synced 2026-02-12 06:41:31 +00:00
consensus: metrics
This commit is contained in:
@@ -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 }
|
||||
}
|
||||
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
|
||||
|
||||
19
node/node.go
19
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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user