mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
feat: add stagedsync headers metrics (#498)
* add dockerfile for reth * Add docker compose for prometheus * Add some metrics * Add p2p connection errors metric * Add dependency caching for dockerfile This reduces image build times by ~50% after the first one. Uses cargo-chef inside the image. More info in: https://morioh.com/p/987a2bda4526 * Add --metrics flag to docker-compose config file * add Cargo.lock * Move docker-compose.yml to docker directory * Apply formatting * Remove docker folder * Remove .dockerignore file * Add 'reth' prefix to metric names * Add headers errors and request time metrics * Modularize metrics exporter functionality and describe metrics * Format files * Add metrics documentation in metrics.md * Fix metrics doc title * Commit changes after rebase * Solve conflict * Modularize metrics describers * Add stages_metrics_describer * Rearrange header error metrics * Add update_headers_metrics function * Add one-line docs to describers * Remove commented line * Refactor metrics describer * Update metrics doc * Fix import * Add header metrics struct * add new metrics format in the headers execute method * Add default implementation for HeaderMetrics * Fix typo * Fix another typo * Fix more typos * Move new HeaderMetrics meathod to default * Solve conflicts * Fix test Co-authored-by: Tomás <tomas.gruner@lambdaclass.com>
This commit is contained in:
committed by
GitHub
parent
7ce22fd186
commit
b12939db47
@ -16,6 +16,9 @@ The main difference between metrics and traces is therefore that metrics are sys
|
||||
### How to add a metric
|
||||
|
||||
To add metrics use the [`metrics`][metrics] crate.
|
||||
1. Add the code emitting the metric.
|
||||
2. Add the metrics description in the crate's metrics describer module, e.g.: [stages metrics describer](https://github.com/paradigmxyz/reth/blob/main/crates/stages/src/stages_metrics_describer.rs).
|
||||
3. Document the metric in this file.
|
||||
|
||||
#### Metric anatomy
|
||||
|
||||
@ -53,6 +56,14 @@ How the metrics are exposed to the end-user is determined by the CLI.
|
||||
|
||||
[^1]: The top-level namespace is added by the CLI using [`metrics_util::layers::PrefixLayer`][metrics_util.PrefixLayer].
|
||||
|
||||
### Current metrics
|
||||
#### StagedSync Headers
|
||||
- `stages.headers.counter`: Number of headers successfully retrieved
|
||||
- `stages.headers.timeout_error`: Number of timeout errors while requesting headers
|
||||
- `stages.headers.validation_errors`: Number of validation errors while requesting headers
|
||||
- `stages.headers.unexpected_errors`: Number of unexpected errors while requesting headers
|
||||
- `stages.headers.request_time`: Elapsed time of successful header requests
|
||||
|
||||
[metrics]: https://docs.rs/metrics
|
||||
[metrics.Key]: https://docs.rs/metrics/latest/metrics/struct.Key.html
|
||||
[metrics.KeyName]: https://docs.rs/metrics/latest/metrics/struct.KeyName.html
|
||||
|
||||
Reference in New Issue
Block a user