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) +}