diff --git a/snow/consensus/snowman/metrics.go b/snow/consensus/snowman/metrics.go index 0a436662d5d..160cad253a9 100644 --- a/snow/consensus/snowman/metrics.go +++ b/snow/consensus/snowman/metrics.go @@ -54,8 +54,9 @@ type metrics struct { pollsRejected metric.Averager // rejected tracks the number of nanoseconds that an item was processing // before being rejected - latRejected metric.Averager - blockSizeRejectedSum prometheus.Gauge + latRejected metric.Averager + blockSizeRejectedSum prometheus.Gauge + unverifiedBlocksRejected prometheus.Counter // numFailedPolls keeps track of the number of polls that failed numFailedPolls prometheus.Counter @@ -152,6 +153,11 @@ func newMetrics( Name: "blks_rejected_container_size_sum", Help: "cumulative size of all rejected blocks", }), + unverifiedBlocksRejected: prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: namespace, + Name: "unverified_blks_rejected", + Help: "cumulative size of all rejected blocks", + }), numSuccessfulPolls: prometheus.NewCounter(prometheus.CounterOpts{ Namespace: namespace, @@ -177,6 +183,7 @@ func newMetrics( reg.Register(m.numProcessing), reg.Register(m.blockSizeAcceptedSum), reg.Register(m.blockSizeRejectedSum), + reg.Register(m.unverifiedBlocksRejected), reg.Register(m.numSuccessfulPolls), reg.Register(m.numFailedPolls), ) @@ -224,7 +231,7 @@ func (m *metrics) Accepted( m.blockSizeAcceptedSum.Add(float64(blockSize)) } -func (m *metrics) Rejected(blkID ids.ID, pollNumber uint64, blockSize int) { +func (m *metrics) Rejected(blkID ids.ID, verified bool, pollNumber uint64, blockSize int) { start, ok := m.processingBlocks.Get(blkID) if !ok { m.log.Warn("unable to measure latency", @@ -242,6 +249,10 @@ func (m *metrics) Rejected(blkID ids.ID, pollNumber uint64, blockSize int) { m.latRejected.Observe(float64(duration)) m.blockSizeRejectedSum.Add(float64(blockSize)) + + if !verified { + m.unverifiedBlocksRejected.Inc() + } } func (m *metrics) MeasureAndGetOldestDuration() time.Duration { diff --git a/snow/consensus/snowman/topological.go b/snow/consensus/snowman/topological.go index 3c33b93beb4..5489a276494 100644 --- a/snow/consensus/snowman/topological.go +++ b/snow/consensus/snowman/topological.go @@ -173,7 +173,7 @@ func (ts *Topological) Add(ctx context.Context, blk Block) error { if err := blk.Reject(ctx); err != nil { return err } - ts.metrics.Rejected(blkID, ts.pollNumber, len(blk.Bytes())) + ts.metrics.Rejected(blkID, false, ts.pollNumber, len(blk.Bytes())) return nil } @@ -652,7 +652,7 @@ func (ts *Topological) tryAcceptPreferredChild(ctx context.Context, blk *snowman if err := sibling.blk.Reject(ctx); err != nil { return false, err } - ts.metrics.Rejected(siblingID, ts.pollNumber, len(sibling.blk.Bytes())) + ts.metrics.Rejected(siblingID, sibling.verified, ts.pollNumber, len(sibling.blk.Bytes())) // Track which blocks have been directly rejected rejects = append(rejects, siblingID) @@ -687,7 +687,7 @@ func (ts *Topological) rejectTransitively(ctx context.Context, rejected []ids.ID if err := child.blk.Reject(ctx); err != nil { return err } - ts.metrics.Rejected(childID, ts.pollNumber, len(child.blk.Bytes())) + ts.metrics.Rejected(childID, child.verified, ts.pollNumber, len(child.blk.Bytes())) // add the newly rejected block to the end of the stack rejected = append(rejected, childID) diff --git a/vms/proposervm/pre_fork_block.go b/vms/proposervm/pre_fork_block.go index 9b2d07e8dae..676abb06c06 100644 --- a/vms/proposervm/pre_fork_block.go +++ b/vms/proposervm/pre_fork_block.go @@ -113,9 +113,6 @@ func (b *preForkBlock) verifyPreForkChild(ctx context.Context, child *preForkBlo zap.String("reason", "parent is an oracle block"), zap.Stringer("blkID", b.ID()), ) - if err := child.Block.VerifyProposer(ctx); err != nil { - return err - } return child.Block.Verify(ctx) }