diff --git a/substrate/client/authority-discovery/src/lib.rs b/substrate/client/authority-discovery/src/lib.rs
index 2cf455f17bab6dfb43c0762f6a2ea75b7d56139b..91e8293dec824fafa2c0f58dc8b5fa9cdeed856c 100644
--- a/substrate/client/authority-discovery/src/lib.rs
+++ b/substrate/client/authority-discovery/src/lib.rs
@@ -475,6 +475,10 @@ where
 	fn update_peer_set_priority_group(&self) -> Result<()> {
 		let addresses = self.addr_cache.get_subset();
 
+		if let Some(metrics) = &self.metrics {
+			metrics.priority_group_size.set(addresses.len().try_into().unwrap_or(std::u64::MAX));
+		}
+
 		debug!(
 			target: LOG_TARGET,
 			"Applying priority group {:?} to peerset.", addresses,
@@ -599,6 +603,7 @@ pub(crate) struct Metrics {
 	amount_last_published: Gauge<U64>,
 	request: Counter<U64>,
 	dht_event_received: CounterVec<U64>,
+	priority_group_size: Gauge<U64>,
 }
 
 impl Metrics {
@@ -637,6 +642,13 @@ impl Metrics {
 				)?,
 				registry,
 			)?,
+			priority_group_size: register(
+				Gauge::new(
+					"authority_discovery_priority_group_size",
+					"Number of addresses passed to the peer set as a priority group."
+				)?,
+				registry,
+			)?,
 		})
 	}
 }