Skip to content

Commit

Permalink
FEAT: Save metrics for sovereign committed block
Browse files Browse the repository at this point in the history
  • Loading branch information
mariusmihaic committed Oct 2, 2024
1 parent b5f3537 commit 319854e
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 4 deletions.
17 changes: 14 additions & 3 deletions process/block/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,21 +84,32 @@ func getMetricsFromHeader(
appStatusHandler.SetUInt64Value(common.MetricTxPoolLoad, numTxWithDst)
}

func saveMetricsForCommittedShardBlock(
func saveMetricsForCommittedShardAndCrossBlock(
nodesCoordinator nodesCoordinator.NodesCoordinator,
appStatusHandler core.AppStatusHandler,
currentBlockHash string,
highestFinalBlockNonce uint64,
metaBlock data.HeaderHandler,
shardHeader data.HeaderHandler,
managedPeersHolder common.ManagedPeersHolder,
) {
baseSaveMetricsForCommittedShardBlock(nodesCoordinator, appStatusHandler, currentBlockHash, highestFinalBlockNonce, shardHeader, managedPeersHolder)
appStatusHandler.SetStringValue(common.MetricCrossCheckBlockHeight, fmt.Sprintf("meta %d", metaBlock.GetNonce()))
appStatusHandler.SetUInt64Value(common.MetricCrossCheckBlockHeightMeta, metaBlock.GetNonce())
}

func baseSaveMetricsForCommittedShardBlock(
nodesCoordinator nodesCoordinator.NodesCoordinator,
appStatusHandler core.AppStatusHandler,
currentBlockHash string,
highestFinalBlockNonce uint64,
shardHeader data.HeaderHandler,
managedPeersHolder common.ManagedPeersHolder,
) {
incrementMetricCountConsensusAcceptedBlocks(shardHeader, shardHeader.GetEpoch(), nodesCoordinator, appStatusHandler, managedPeersHolder)
appStatusHandler.SetUInt64Value(common.MetricEpochNumber, uint64(shardHeader.GetEpoch()))
appStatusHandler.SetStringValue(common.MetricCurrentBlockHash, currentBlockHash)
appStatusHandler.SetUInt64Value(common.MetricHighestFinalBlock, highestFinalBlockNonce)
appStatusHandler.SetStringValue(common.MetricCrossCheckBlockHeight, fmt.Sprintf("meta %d", metaBlock.GetNonce()))
appStatusHandler.SetUInt64Value(common.MetricCrossCheckBlockHeightMeta, metaBlock.GetNonce())
}

func saveMetricsForCommitMetachainBlock(
Expand Down
2 changes: 1 addition & 1 deletion process/block/shardblock.go
Original file line number Diff line number Diff line change
Expand Up @@ -1043,7 +1043,7 @@ func (sp *shardProcessor) CommitBlock(
return err
}

saveMetricsForCommittedShardBlock(
saveMetricsForCommittedShardAndCrossBlock(
sp.nodesCoordinator,
sp.appStatusHandler,
logger.DisplayByteSlice(headerHash),
Expand Down
29 changes: 29 additions & 0 deletions process/block/sovereignChainBlock.go
Original file line number Diff line number Diff line change
Expand Up @@ -1508,6 +1508,13 @@ func (scbp *sovereignChainBlockProcessor) CommitBlock(headerHandler data.HeaderH
"nonce", highestFinalBlockNonce,
)

err = scbp.saveSovereignMetricsForCommittedBlock(
logger.DisplayByteSlice(headerHash),
highestFinalBlockNonce,
headerHandler)
if err != nil {
return err
}
// TODO: MX-15748 Analyse if !check.IfNil(lastMetaBlock) && lastMetaBlock.IsStartOfEpochBlock() from metablock.go
err = scbp.commonHeaderAndBodyCommit(headerHandler, body, headerHash, []data.HeaderHandler{lastSelfNotarizedHeader}, [][]byte{lastSelfNotarizedHeaderHash})
if err != nil {
Expand Down Expand Up @@ -1808,6 +1815,28 @@ func (scbp *sovereignChainBlockProcessor) saveExtendedShardHeader(header data.He
}
}

func (scbp *sovereignChainBlockProcessor) saveSovereignMetricsForCommittedBlock(
currentBlockHash string,
highestFinalBlockNonce uint64,
shardHeader data.HeaderHandler,
) error {
baseSaveMetricsForCommittedShardBlock(
scbp.nodesCoordinator,
scbp.appStatusHandler,
currentBlockHash,
highestFinalBlockNonce,
shardHeader,
scbp.managedPeersHolder,
)
lastMainChainHdr, _, err := scbp.blockTracker.GetLastCrossNotarizedHeader(core.MainChainShardId)
if err != nil {
return err
}

scbp.appStatusHandler.SetStringValue(common.MetricCrossCheckBlockHeight, fmt.Sprintf("mainChain %d", lastMainChainHdr.GetNonce()))
return nil
}

// RestoreBlockIntoPools restores block into pools
func (scbp *sovereignChainBlockProcessor) RestoreBlockIntoPools(header data.HeaderHandler, body data.BodyHandler) error {
scbp.restoreBlockBody(header, body)
Expand Down

0 comments on commit 319854e

Please sign in to comment.