diff --git a/validator_client/src/http_metrics/metrics.rs b/validator_client/src/http_metrics/metrics.rs
index c9ad31feb..b4e400c3e 100644
--- a/validator_client/src/http_metrics/metrics.rs
+++ b/validator_client/src/http_metrics/metrics.rs
@@ -191,6 +191,10 @@ lazy_static::lazy_static! {
         "Round-trip latency for a simple API endpoint on each BN",
         &["endpoint"]
     );
+    pub static ref VC_BEACON_NODE_LATENCY_PRIMARY_ENDPOINT: Result<Histogram> = try_create_histogram(
+        "vc_beacon_node_latency_primary_endpoint",
+        "Round-trip latency for the primary BN endpoint",
+    );
 }
 
 pub fn gather_prometheus_metrics<T: EthSpec>(
diff --git a/validator_client/src/latency.rs b/validator_client/src/latency.rs
index 9ab9b630b..7e752f292 100644
--- a/validator_client/src/latency.rs
+++ b/validator_client/src/latency.rs
@@ -36,7 +36,7 @@ pub fn start_latency_service<T: SlotClock + 'static, E: EthSpec>(
             // Sleep until it's time to perform the measurement.
             sleep(sleep_time).await;
 
-            for measurement in beacon_nodes.measure_latency().await {
+            for (i, measurement) in beacon_nodes.measure_latency().await.iter().enumerate() {
                 if let Some(latency) = measurement.latency {
                     debug!(
                         log,
@@ -48,7 +48,13 @@ pub fn start_latency_service<T: SlotClock + 'static, E: EthSpec>(
                         &metrics::VC_BEACON_NODE_LATENCY,
                         &[&measurement.beacon_node_id],
                         latency,
-                    )
+                    );
+                    if i == 0 {
+                        metrics::observe_duration(
+                            &metrics::VC_BEACON_NODE_LATENCY_PRIMARY_ENDPOINT,
+                            latency,
+                        );
+                    }
                 }
             }
         }