feat(metrics): Metrics derive macro (#592)

* feat(metrics): `Metrics` derive macro

* rename metrics to metrics-derive

* use fully qualified fmt path

* metric vec with capacity

* favor metrics over simple scope attr, simplify code

* pull metric description from doc comment

* rm debug log

* add more docs and sample usage

* link to metrics macros

* add tests for metrics derive macro

* clippy

* simplify path comparison

* cleanup

* remove unused dep

* rename stage metrics
This commit is contained in:
Roman Krasiuk
2022-12-27 00:27:24 +02:00
committed by GitHub
parent d2b4081849
commit 663efa8d2a
22 changed files with 814 additions and 86 deletions

View File

@ -27,12 +27,11 @@ use reth_network::{
use reth_primitives::{Account, Header, H256};
use reth_provider::{db_provider::ProviderImpl, BlockProvider, HeaderProvider};
use reth_stages::{
metrics::HeaderMetrics,
stages::{
bodies::BodyStage, execution::ExecutionStage, headers::HeaderStage,
sender_recovery::SenderRecoveryStage,
},
stages_metrics::HeaderMetrics,
stages_metrics_describer,
};
use std::{net::SocketAddr, path::Path, sync::Arc};
use tracing::{debug, info};
@ -98,7 +97,7 @@ impl Command {
if let Some(listen_addr) = self.metrics {
info!("Starting metrics endpoint at {}", listen_addr);
prometheus_exporter::initialize(listen_addr)?;
stages_metrics_describer::describe();
HeaderMetrics::describe();
}
let chain_id = self.chain.consensus.chain_id;