diff --git a/plugins/metrics/message.go b/plugins/metrics/message.go
index 927ce519c53aa8da031b1dd116d69682885fefb2..72319d94ca197a0fb6b1d41657cbf3d25d641f3b 100644
--- a/plugins/metrics/message.go
+++ b/plugins/metrics/message.go
@@ -26,6 +26,9 @@ var (
 
 	// protect map from concurrent read/write.
 	messageCountPerPayloadMutex syncutils.RWMutex
+
+	// number of messages being requested by the message layer.
+	requestQueueSize atomic.Int64
 )
 
 ////// Exported functions to obtain metrics from outside //////
@@ -54,6 +57,11 @@ func MessageTips() uint64 {
 	return messageTips.Load()
 }
 
+// MessageRequestQueueSize returns the number of message requests the node currently has registered.
+func MessageRequestQueueSize() int64 {
+	return requestQueueSize.Load()
+}
+
 ////// Handling data updates and measuring //////
 
 func increasePerPayloadCounter(p payload.Type) {
@@ -93,3 +101,8 @@ func measureReceivedMPS() {
 	// trigger events for outside listeners
 	Events.ReceivedMPSUpdated.Trigger(sampledMPS)
 }
+
+func measureRequestQueueSize() {
+	size := int64(messagelayer.MessageRequester().RequestQueueSize())
+	requestQueueSize.Store(size)
+}