rabbitmq-java-client icon indicating copy to clipboard operation
rabbitmq-java-client copied to clipboard

Enhance the MetricsCollector to distinguish metrics for NACK (requeue = true) vs NACK (requeue = false)

Open matsev opened this issue 4 months ago • 1 comments

Is your feature request related to a problem? Please describe.

To my understanding there are currently no metrics emitted that distinguish whether or not a message was requeued when it was NACK:ed by the consumer

Describe the solution you'd like

One suggestion is to enhance the MetricsCollector with a new methods:

    default public void basicNack(Channel channel, long deliveryTag, boolean requeue) {
    }

    default public void basicReject(Channel channel, long deliveryTag, boolean requeue) {
    }

These methods would then be called with the requeue parameter provided whenever a messages is NACK:ed. Moreover, existing implementation such as the MicrometerMetricsCollector should implement the methods so that the metrics emitted also has knowledge about the requeue state

Describe alternatives you've considered

Application developers can implement their own custom metrics

Additional context

Related question at Stack Overflow: https://stackoverflow.com/questions/79069702/reactive-rabbitmq-metrics-for-ack-nack-requeue-false-and-nack-requeue-t

matsev avatar Oct 09 '24 10:10 matsev