diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index e4bbb5cac..ff5c75f98 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -290,9 +290,13 @@ where let (payload, fb_payload) = build_block(&mut state, &ctx, &mut info)?; best_payload.set(payload.clone()); - self.ws_pub + let flashblock_byte_size = self + .ws_pub .publish(&fb_payload) .map_err(PayloadBuilderError::other)?; + ctx.metrics + .flashblock_byte_size_histogram + .record(flashblock_byte_size as f64); info!( target: "payload_builder", @@ -520,7 +524,8 @@ where ); return Ok(()); } - self.ws_pub + let flashblock_byte_size = self + .ws_pub .publish(&fb_payload) .map_err(PayloadBuilderError::other)?; @@ -530,7 +535,7 @@ where .record(flashblock_build_start_time.elapsed()); ctx.metrics .flashblock_byte_size_histogram - .record(new_payload.block().size() as f64); + .record(flashblock_byte_size as f64); ctx.metrics .flashblock_num_tx_histogram .record(info.executed_transactions.len() as f64); diff --git a/crates/op-rbuilder/src/builders/flashblocks/wspub.rs b/crates/op-rbuilder/src/builders/flashblocks/wspub.rs index 3329478be..aa34ecd7f 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/wspub.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/wspub.rs @@ -62,7 +62,7 @@ impl WebSocketPublisher { }) } - pub fn publish(&self, payload: &FlashblocksPayloadV1) -> io::Result<()> { + pub fn publish(&self, payload: &FlashblocksPayloadV1) -> io::Result { // Serialize the payload to a UTF-8 string // serialize only once, then just copy around only a pointer // to the serialized data for each subscription. @@ -76,12 +76,12 @@ impl WebSocketPublisher { let serialized = serde_json::to_string(payload)?; let utf8_bytes = Utf8Bytes::from(serialized); - + let size = utf8_bytes.len(); // Send the serialized payload to all subscribers self.pipe .send(utf8_bytes) .map_err(|e| io::Error::new(io::ErrorKind::ConnectionAborted, e))?; - Ok(()) + Ok(size) } } diff --git a/crates/op-rbuilder/src/metrics.rs b/crates/op-rbuilder/src/metrics.rs index cb8aa94dc..cd0da11f7 100644 --- a/crates/op-rbuilder/src/metrics.rs +++ b/crates/op-rbuilder/src/metrics.rs @@ -49,7 +49,7 @@ pub struct OpRBuilderMetrics { pub total_block_built_gauge: Gauge, /// Histogram of the time taken to build a Flashblock pub flashblock_build_duration: Histogram, - /// Flashblock byte size histogram + /// Flashblock UTF8 payload byte size histogram pub flashblock_byte_size_histogram: Histogram, /// Histogram of transactions in a Flashblock pub flashblock_num_tx_histogram: Histogram,