Skip to content

Commit

Permalink
fix(metrics): num of validators that didn't sign is always 0 (#905)
Browse files Browse the repository at this point in the history
* fix(metrics): no of validators that didn't sign is always 0

* Update internal/consensus/state_apply_commit.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
  • Loading branch information
lklimek and coderabbitai[bot] authored Oct 15, 2024
1 parent 0574a15 commit 525544e
Showing 1 changed file with 26 additions and 6 deletions.
32 changes: 26 additions & 6 deletions internal/consensus/state_apply_commit.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,33 @@ func (c *ApplyCommitAction) Execute(ctx context.Context, stateEvent StateEvent)
}

func (c *ApplyCommitAction) RecordMetrics(stateData *StateData, height int64, block *types.Block, lastBlockMeta *types.BlockMeta) {
c.metrics.Validators.Set(float64(stateData.Validators.Size()))
c.metrics.ValidatorsPower.Set(float64(stateData.Validators.TotalVotingPower()))
totalValidators := stateData.Validators.Size()
totalValidatorsPower := stateData.Validators.TotalVotingPower()

c.metrics.Validators.Set(float64(totalValidators))
c.metrics.ValidatorsPower.Set(float64(totalValidatorsPower))

// Calculate validators that didn't sign

// We initialize with total validators count and power, and then decrement as we find the validators
// who have signed the precommit
missingValidators := totalValidators
missingValidatorsPower := totalValidatorsPower
precommits := stateData.Votes.Precommits(stateData.CommitRound)

for _, vote := range precommits.List() {
if val := stateData.Validators.GetByIndex(vote.ValidatorIndex); val != nil {
missingValidators--
missingValidatorsPower -= val.VotingPower
} else {
c.logger.Error("precommit received from invalid validator",
"val", val,
"vote", vote,
"height", vote.Height,
"round", vote.Round)
}
}

var (
missingValidators int
missingValidatorsPower int64
)
c.metrics.MissingValidators.Set(float64(missingValidators))
c.metrics.MissingValidatorsPower.Set(float64(missingValidatorsPower))

Expand Down

0 comments on commit 525544e

Please sign in to comment.