From 4066ad4cc58b5d75c0399c7cde50f294eae51504 Mon Sep 17 00:00:00 2001 From: Dan Cline <6798349+Rjected@users.noreply.github.com> Date: Thu, 6 Feb 2025 17:35:03 -0500 Subject: [PATCH] feat: add newPayload latency gauge metric (#14287) --- crates/rpc/rpc-engine-api/src/metrics.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/rpc/rpc-engine-api/src/metrics.rs b/crates/rpc/rpc-engine-api/src/metrics.rs index 9325ce267..6a7cf7ce3 100644 --- a/crates/rpc/rpc-engine-api/src/metrics.rs +++ b/crates/rpc/rpc-engine-api/src/metrics.rs @@ -2,7 +2,7 @@ use std::time::Duration; use crate::EngineApiError; use alloy_rpc_types_engine::{ForkchoiceUpdated, PayloadStatus, PayloadStatusEnum}; -use metrics::{Counter, Histogram}; +use metrics::{Counter, Gauge, Histogram}; use reth_metrics::Metrics; /// All beacon consensus engine metrics @@ -100,6 +100,8 @@ pub(crate) struct NewPayloadStatusResponseMetrics { pub(crate) new_payload_total_gas: Histogram, /// The gas per second of valid new payload messages received. pub(crate) new_payload_gas_per_second: Histogram, + /// Latency for the last `engine_newPayloadV*` call + pub(crate) new_payload_last: Gauge, } impl NewPayloadStatusResponseMetrics { @@ -110,6 +112,7 @@ impl NewPayloadStatusResponseMetrics { gas_used: u64, time: Duration, ) { + self.new_payload_last.set(time); match result { Ok(status) => match status.status { PayloadStatusEnum::Valid => {