diff --git a/libs/tendermint/state/execution.go b/libs/tendermint/state/execution.go index fd9a1c6cc..11c4b1a03 100644 --- a/libs/tendermint/state/execution.go +++ b/libs/tendermint/state/execution.go @@ -224,6 +224,7 @@ func (blockExec *BlockExecutor) ApplyBlock( now := time.Now().UnixNano() blockExec.metrics.IntervalTime.Set(float64(now-blockExec.metrics.lastBlockTime) / 1e6) blockExec.metrics.lastBlockTime = now + blockExec.metrics.CommittedHeight.Set(float64(block.Height)) }() if err := blockExec.ValidateBlock(state, block); err != nil { diff --git a/libs/tendermint/state/metrics.go b/libs/tendermint/state/metrics.go index ffa55c4c1..413372738 100644 --- a/libs/tendermint/state/metrics.go +++ b/libs/tendermint/state/metrics.go @@ -27,6 +27,8 @@ type Metrics struct { AbciTime metrics.Gauge // Time during commiting app state CommitTime metrics.Gauge + + CommittedHeight metrics.Gauge } // PrometheusMetrics returns Metrics build using Prometheus client library. @@ -64,6 +66,12 @@ func PrometheusMetrics(namespace string, labelsAndValues ...string) *Metrics { Name: "block_commit_time", Help: "Time during commiting app state in ms.", }, labels).With(labelsAndValues...), + CommittedHeight: prometheus.NewGaugeFrom(stdprometheus.GaugeOpts{ + Namespace: namespace, + Subsystem: MetricsSubsystem, + Name: "monitor_block_height", + Help: "The block height.", + }, labels).With(labelsAndValues...), } } @@ -75,5 +83,6 @@ func NopMetrics() *Metrics { lastBlockTime: time.Now().UnixNano(), AbciTime: discard.NewGauge(), CommitTime: discard.NewGauge(), + CommittedHeight: discard.NewGauge(), } }