We have cases where for queueXYZ, there is a separate queueXYZ_reject to capture rejected messages. We want to monitor the queue and it’s corresponding reject queue as well. So if there are 1500 queues with their respective 1500 _reject queues, then the total easily exceeds the 2000 max.
I did come across the fact that the newrelic rabbitmq integration supports only up to 2000 queues, for a rabbitmq integration configured on a single host i.e single instance of rabbitmq.
/var/db/newrelic-infra/newrelic-integrations/bin/nri-rabbitmq -hostname localhost -username infra-username -password zzzzzzzzzzz -pretty [ERR] There are 4287 queues in collection, the maximum amount of queues to collect is 2000. Use the queue whitelist or regex configuration parameter to limit collection size.
I tried to limit the number of queues by excluding those that belong to vhosts whose names end with “-XYZ”, using lookaround assertion. That results in the below error.
/var/db/newrelic-infra/newrelic-integrations/bin/nri-rabbitmq -queues_regexes '["queue.*"]' -vhosts_regexes '["^((?!-XYZ).)*$"]' -hostname localhost -username infra-username -password zzzz -pretty [ERR] Error parsing arguments [VhostsRegexes]: error parsing regexp: invalid or unsupported Perl syntax: `(?!`
How can this be solved?
It seems that the assertion is not supported in Go, based on the few references i found for the error message.
Will the newrelic integration in future support more than 2000 queues?