This repository tracks and standardizes metrics for the Ethereum Execution Layer (EL) nodes, with a focus on Prometheus-compatible metrics to monitor protocol performance, network health, and upgrade readiness. Metrics are essential for client teams to ensure interoperability, facilitate testing, identify bottlenecks, and support research into early EIP implementations (e.g., for features like PeerDAS, shorter slots, zkEVM, EL pairing, and performance networking).
The ethereum/beacon-metrics repository was originally created in August 2021 ahead of The Merge to propose a set of informative Prometheus metrics for beacon chain clients, including minimal interop metrics (e.g., libp2p_peers, beacon_head_slot) and additional proposals. Now, we are building on this foundation by standardizing metrics across clients, organizing them by protocol upgrades (hard forks and EIPs), and tracking implementation progress to enhance interoperability and testing.
- Standardization Effort: We are unifying metrics across CL clients and EL clients, starting with PeerDAS (EIP-7594) as part of the Fusaka upgrade. This includes a common set of significant metrics and standardized naming conventions for consistency. Clients are encouraged to implement these and track progress via linked issues/PRs.
- Link to Companion Repo: For Consenus Layer (CL) metrics (aka Beacon Metrics), visit ethereum/beacon-metrics.
- Relationship to Ethereum Upgrades: Metrics are organized by hard forks and EIPs, enabling targeted tracking for protocol changes. The primary goal is interoperability and better testing, not client benchmarking.
- Dashboards and Tooling: Use EthPandaOps for visualizations, including PeerDAS dashboards. Tools like Xatu or ethereum-metrics-exporter can unify metrics from JSON-RPC/Beacon API, but native Prometheus metrics provide granular, feature-specific data.
To contribute to metric standardization and tracking:
- Review and/or Propose: Review the proposed metrics in the relevant hard fork/EIP files and/or submit proposed metrics.
- Implement Standardized Metrics: Implement the metrics in your client codebase, ensuring they align with the standardized names, types, and units.
- Track Implementation: Open a tracking issue in your client's repository to monitor implementation progress (e.g., "Implement PeerDAS metrics from beacon-metrics repo").
- Update Implementation Status: Update the implementation status in the relevant EIP metrics files in this repository via a PR (e.g., change status to ✅ implemented, 📝 in progress, or □ not implemented). Client teams are encouraged to open these PRs directly as progress is made.
Fork | Epoch | Status | EIPs (SFI'd) | EIPs with Metrics |
---|---|---|---|---|
Fusaka (Osaka EL) | TBD (Late 2025) | 🚧 Testing | 13 EIPs | 1 EIP |
Glamsterdam (Amsterdam EL) | TBD | 📋 Planning | TBD | TBD |
Metrics in this repository (on each EIP page) are organized in tables grouped by Metric Type (e.g., Counters, Histograms, Gauges) for clarity and to align with Prometheus/OpenMetrics standards. For full details, refer to the OpenMetrics specification.
Type | Description |
---|---|
Gauge | Current measurements, such as bytes of memory used or items in a queue, where the absolute value is of interest. |
Counter | Measures discrete events, such as HTTP requests received, with focus on how quickly the value increases over time. |
StateSet | Represents a series of related boolean values, suitable for encoding ENUMs with multiple states that change over time. |
Info | Exposes textual information that should not change during process lifetime, such as application version or compiler version. |
Histogram | Measures distributions of discrete events, such as request latencies, with cumulative buckets and sum values. |
GaugeHistogram | Measures current distributions, such as queue wait times, with buckets and sum values treated as gauges. |
Summary | Measures distributions of discrete events, used when histograms are too expensive, with count, sum, and quantiles. |
Unknown | Used when it is impossible to determine the types of individual metrics from 3rd party systems, with a single value. |
All code and generated test vectors are public domain under CC0.