From ab61cd281ec14440a74f18f998283d65ca0effb5 Mon Sep 17 00:00:00 2001 From: Dmytro Haidashenko Date: Mon, 10 Feb 2025 21:45:22 +0100 Subject: [PATCH] measure block sorter queue size --- pkg/solana/logpoller/blocks_sorter.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/solana/logpoller/blocks_sorter.go b/pkg/solana/logpoller/blocks_sorter.go index d3dfdb1e3..5af44d865 100644 --- a/pkg/solana/logpoller/blocks_sorter.go +++ b/pkg/solana/logpoller/blocks_sorter.go @@ -5,12 +5,20 @@ import ( "context" "sync" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promauto" + "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/services" ) const blocksChBuffer = 16 +var promPoolRPCNodeHighestSeenBlock = promauto.NewGaugeVec(prometheus.GaugeOpts{ + Name: "block_sorter_queue", + Help: "The highest seen block for the given RPC node", +}, []string{}) + type blocksSorter struct { // service state management services.Service @@ -69,6 +77,7 @@ func (p *blocksSorter) readBlocks(ctx context.Context) { } p.mu.Lock() + promPoolRPCNodeHighestSeenBlock.WithLabelValues().Set(float64(len(p.readyBlocks))) p.readyBlocks[block.SlotNumber] = block p.mu.Unlock() // try leaving a msg that new block is ready @@ -110,6 +119,7 @@ func (p *blocksSorter) readNextReadyBlock() *Block { slotNumber := element.Value.(uint64) block, ok := p.readyBlocks[slotNumber] + promPoolRPCNodeHighestSeenBlock.WithLabelValues().Set(float64(len(p.readyBlocks))) if !ok { return nil }