nimbus-eth1/nimbus/sync/beacon/worker/update/metrics.nim

78 lines
2.5 KiB
Nim

# Nimbus
# Copyright (c) 2023-2024 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at
# https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at
# https://www.apache.org/licenses/LICENSE-2.0).
# at your option. This file may not be copied, modified, or distributed
# except according to those terms.
{.push raises:[].}
import
pkg/metrics,
../../../../core/chain,
../../worker_desc,
".."/[blocks_staged, headers_staged]
declareGauge beacon_base, "" &
"Max block number of imported finalised blocks"
declareGauge beacon_latest, "" &
"Block number of latest imported blocks"
declareGauge beacon_coupler, "" &
"Max block number for header chain starting at genesis"
declareGauge beacon_dangling, "" &
"Starting/min block number for higher up headers chain"
declareGauge beacon_final, "" &
"Max number of finalised block in higher up headers chain"
declareGauge beacon_head, "" &
"Ending/max block number of higher up headers chain"
declareGauge beacon_target, "" &
"Block number of sync target (would be consensus header)"
declareGauge beacon_header_lists_staged, "" &
"Number of header list records staged for serialised processing"
declareGauge beacon_headers_unprocessed, "" &
"Number of block numbers ready to fetch and stage headers"
declareGauge beacon_block_lists_staged, "" &
"Number of block list records staged for importing"
declareGauge beacon_blocks_unprocessed, "" &
"Number of block numbers ready to fetch and stage block data"
declareGauge beacon_buddies, "" &
"Number of currently active worker instances"
template updateMetricsImpl*(ctx: BeaconCtxRef) =
metrics.set(beacon_base, ctx.chain.baseNumber().int64)
metrics.set(beacon_latest, ctx.chain.latestNumber().int64)
metrics.set(beacon_coupler, ctx.layout.coupler.int64)
metrics.set(beacon_dangling, ctx.layout.dangling.int64)
metrics.set(beacon_final, ctx.layout.final.int64)
metrics.set(beacon_head, ctx.layout.head.int64)
metrics.set(beacon_target, ctx.target.consHead.number.int64)
metrics.set(beacon_header_lists_staged, ctx.headersStagedQueueLen())
metrics.set(beacon_headers_unprocessed,
(ctx.headersUnprocTotal() + ctx.headersUnprocBorrowed()).int64)
metrics.set(beacon_block_lists_staged, ctx.blocksStagedQueueLen())
metrics.set(beacon_blocks_unprocessed,
(ctx.blocksUnprocTotal() + ctx.blocksUnprocBorrowed()).int64)
metrics.set(beacon_buddies, ctx.pool.nBuddies)
# End